Version 1.22.1 of package Cider has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Cider describes itself as: ====================================================== Clojure Interactive Development Environment that Rocks ====================================================== More at https://elpa.nongnu.org/nongnu/cider.html ## Summary: Provides a Clojure interactive development environment for Emacs, built on top of nREPL. See https://docs.cider.mx for more details. ## Recent NEWS: # Changelog ## master (unreleased) ## 1.22.0 (2026-06-16) ### New features - [#3645](https://github.com/clojure-emacs/cider/issues/3645): Show a spinner in the mode line while tests are running. - [#3865](https://github.com/clojure-emacs/cider/pull/3865): Add default session feature to bypass sesman's project-based dispatch (`cider-set-default-session`, `cider-clear-default-session`). - [#3930](https://github.com/clojure-emacs/cider/pull/3930): Inspector: add help message with keybindings. - [#3884](https://github.com/clojure-emacs/cider/pull/3884): Introduce `cider-jack-in-tools` and `cider-register-jack-in-tool` so third-party packages can register new project tools for `cider-jack-in` and `cider-jack-in-universal`. - [#3888](https://github.com/clojure-emacs/cider/pull/3888): Cache the result of `cider--running-nrepl-paths` (used by `cider-locate-running-nrepl-ports`) for `cider-running-nrepl-paths-cache-ttl` seconds (default 5). Repeated `cider-connect` completions no longer re-spawn a fresh round of `ps`/`lsof` subprocesses each time. `cider-clear-running-nrepl-paths-cache` discards the cache on demand. - [#3890](https://github.com/clojure-emacs/cider/pull/3890): New `nrepl-make-eval-handler` with a keyword-arg API: - Keyword slots: `:on-value`, `:on-stdout`, `:on-stderr`, `:on-done`, `:on-eval-error`, `:on-content-type`, `:on-truncated`. - Sub-handlers no longer take a buffer argument; they close over whatever they need. - `nrepl-make-response-handler`, the legacy 7-positional-arg form, is preserved as an obsolete shim that adapts the old `(buffer x)` lambdas to the new `(x)` lambdas, so existing extensions keep working. - [#3929](https://github.com/clojure-emacs/cider/pull/3929): Keyword-argument forms for several low-level request APIs, so callers no longer pad arguments with `nil` to reach a later one. In every case the legacy positional function is kept as a thin shim that delegates to the new one, so existing callers (including third-party packages) keep working unchanged: - Eval requests: `nrepl-send-eval-request` (shim: `nrepl-request:eval`) and `cider-nrepl-send-eval-request` (shim: `cider-nrepl-request:eval`), with `:ns`, `:line`, `:column`, `:additional-params`, plus `:tooling` at the nREPL level and `:connection` at the CIDER level. - Sync requests: `nrepl-sync-request` (shim: `nrepl-send-sync-request`) and `cider-nrepl-sync-request` (shim: `cider-nrepl-send-sync-request`), with `:abort-on-input`, `:tooling`/`:connection`, and `:callback`. - Op helpers: `cider-info-request` (shim: `cider-sync-request:info`), `cider-eldoc-request` (shim: `cider-sync-request:eldoc`), `cider-apropos-request` (shim: `cider-sync-request:apropos`), and `cider-load-file-request` (shim: `cider-request:load-file`). - [#3921](https://github.com/clojure-emacs/cider/pull/3921): New `cider-repl-history-doctor` command: walks `cider-repl-input-history` looking for entries whose parens don't balance under Clojure syntax, shows each in a side buffer, and asks whether to delete it. When done, rewrites `cider-repl-history-file` if one is configured. Useful for cleaning up history after a typo got committed that breaks `cider-repl-history` rendering (see [#3915](https://github.com/clojure-emacs/cider/issues/3915)). - [#3926](https://github.com/clojure-emacs/cider/pull/3926): Recognize [let-go](https://github.com/nooga/let-go) (a Clojure dialect implemented in Go) as a known nREPL runtime. `cider-runtime` returns `let-go` for these connections and the connection info line shows the runtime version, e.g. `CLJ project@localhost:2137 (let-go 1.0)`. - [#3892](https://github.com/clojure-emacs/cider/pull/3892): Decouple the nREPL transport layer from CIDER's UI layer (closes [#1099](https://github.com/clojure-emacs/cider/issues/1099)): - `nrepl-make-eval-handler` is now CIDER-agnostic. It no longer references `nrepl-namespace-handler-function`, `nrepl-err-handler-function`, `nrepl-need-input-handler-function`, or any hardcoded UI strings. ... ...
