Liking cljdoc? Tell your friends :D

General Overview

The Guardrails Analyzer runs directly in your REPL, giving it full access to your application’s runtime environment — specs, loaded code, and all dependencies. It connects to a shared daemon process that bridges communication between the analyzer and your editor(s).

The daemon serves several roles:

  • An LSP (language server protocol) server for standard editors (Emacs, Vim, Calva, etc.)

  • A WebSocket API for the IntelliJ plugin

  • Runtime file I/O support

  • A central place for configuration and control

The overall system diagram looks like this:

  +------------------+
  | Your REPL        |
  | (analyzer)       |
  +--------+---------+
           |
           | WebSocket
           v
       +--------+
       | Daemon |  (shared, auto-launched)
       +--------+
           ^
           |
    +------+------+
    |      |      |
    v      v      v
 +------+ +------+
 |Editor| |Editor| ...
 +------+ +------+

The daemon auto-launches when you start the analyzer. One daemon serves all projects — you only need a single daemon running regardless of how many REPLs or editors you have open.

The IntelliJ plugin connects to the daemon automatically. Other editors use the LSP server. See the relevant chapters in this guide for setup details.

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close