announcements 2026-09-27

Andrey Bogoyavlenskiy 2026-09-27T21:13:16.544429Z

Hi! I’d like to share a project I’ve been working on lately: https://github.com/abogoyavlensky/clj-pulse, a language server for Clojure with a fast index of the project’s files and its dependencies. The idea is that you open a project and can right away jump to function definitions, read their implementation, and so on. On a large project you can navigate its own files within a couple of seconds of a cold start, and all dependencies a couple of seconds later (details in the https://github.com/abogoyavlensky/clj-pulse#performance). The server doesn’t use clj-kondo’s analysis, it builds its own index; clj-kondo is optional and only used for more advanced linting. A couple of other things it does: navigation through Integrant edn configs (jump from a system key to the component’s definition), and monorepos with several sub-projects. Install with one command: brew install abogoyavlensky/tap/clj-pulse or mise use -g github:abogoyavlensky/clj-pulse. Setup for the editors I’ve tested is in https://github.com/abogoyavlensky/clj-pulse/blob/master/docs/EDITORS.md. Others should work too. There are surely gaps (at the very least: ClojureScript and Java support are partial, refactoring is limited to rename and auto-require), but it’s already usable day to day - I’m daily-driving it last 2 months. I’d be glad to hear any comments, feedback, or issues on GitHub. 🙏

👍 10
1
👀 2

I like the idea of doing static analysis of Clojure code with Rust, similar to what the Astral tools did for Python, but the fact this seems to be vibe-coded mostly AI-written puts me off 😕

How else does it compare to clojure-lsp, aside from the fast indexing?

Andrey Bogoyavlenskiy 2026-09-28T21:30:31.462859Z

@neumann Besides indexing speed: • less memory consumption (~430mb on metabase repo) • gradual indexing: project’s files -> project’s deps -> deep lint analysis by a separate, optional clj-kondo process - so each layer becomes available as soon as possible • Integrant key navigation, let-go/lgx support Where clojure-lsp is ahead: • fuller analysis • a much larger refactoring set • better ClojureScript and Java support

1