Discovering Jpalardy's Like Slime, for Vim was a revelation to me. I could have any repl in my editor? Whether it knew it was there or not? It also served as the basis for my daily driver for writing Common Lisp more recently. As I wrote in that post, not only were for-purpose REPL tools complicated, they simply didn't measure up to the functionality I could get out of vim-slime
.
I missed this switch-out-a-repl functionality when I started moving into the AI era with my hobby coding. I wrote about how frustrating it was to write Common Lisp. Looking back, it was mostly because I couldn't effectively have the AI interact with the REPL. Folks on reddit from when I posted that turned me on to cl-mcp, and I have since learned there were others like it. That worked well enough, but after reading Mario's post about skills-over-mcp AND trying freebuff for the first time (it doesn't support MCP), I finally figured I needed a CLI solution.
First, I wrote swanky, and that worked a treat, but it required a lisp Swank server running. This had a couple problems. First, if my lisp code printed to standard out, it wouldn't get captured, or it didn't seem so. Second, I had to keep spinning up swank servers and staying on top of making sure the AI had one available. That got old.
I had previously tried building an MCP server for interacting with REPLs over MCP called tmux-repl-mcp. It worked, but I hadn't quite gotten the chops in my AI journey yet around getting the AI to use it right. I didn't realize when I wrote it that you needed to write a skill or the AI wouldn't use the tool right.
The time was right to make that a CLI tool, so I had the AI rewrite it in Rust this morning. The new tool is called muxxy, and it works really well!
It comes with a skill in its .agents
folder that tells the AI how to use it. It is capable of spinning up SBCL, Python, iPython, and Ruby shells out of the box, but there's also a custom --prompt
flag the AI can use to tell the AI what output to look for when scraping from tmux.
I look forward to using this tool for many of my projects, including REPL-intensive ones like Common Lisp, but it would work equally well for anything else -- Clojure, Janet, Julia, Python, Elixir, a custom CL implementation. That old "possibilities are endless" feeling of excitement I felt when I discovered vim-slime
is back!