I bet you're just treating it like any other (non-homoiconic) language. An agent that edits files and re-runs `clj` is doing something fundamentally different from what a Clojure developer typically does. When you give the agent a REPL - things get far more interesting.
Well, that's not how a Clojure dev normally would write it. If you're not using the REPL (with or without AI) - you're missing the point/misusing the tool. Therefore "remains shockingly bad" perspective is unfair - it's like using a screwdriver to remove nails while complaining that it keeps bending.
I'm happy to hear any thoughts you have on the best way to make use of it. Presently I use emacs and cider but I'm not altogether unhappy with IntelliJ or VSCode
So yes, you're already using Clojure REPL with CIDER, right? Then why not make AI use it as well? You can do that directly from Emacs, with ECA¹ for example. Which on its own won't change anything - it still be in that batch-style mode - LLM spawns process -> reads stdout/stderr -> spawns next process. What you'd need on top of that is an MCP that "understands" nrepl. You can find many different ones, I built my own (written in Clojure, runs with babashka)²
Alternatively, you can use Dmitry Sotnikov's agentic tool³. Dima is a well-known Clojurista (with published books, etc.) I have not tried that myself because I prefer staying in Emacs, but it might be even easier choice for someone else.