Show HN: Juggler – an open-source GUI coding agent, by the creator of JUCE (github.com)
I'm a long-term C++ dev, and over 30+ years I've created some successful audio dev tools (JUCE, the Tracktion DAW, the Cmajor DSP language). All of these came from me getting annoyed with something I had to use, and deciding to have a go at my own take on whatever it was.
So Juggler is my attempt at an AI code agent, after spending too many hours loving what the models could do, but hating the CLI experience, and having some opinions of what a better UX might be for this stuff.
Lots more blurb on the website and github, but a quick tech dump which might grab your attention if you're into these things:
A session is a document, not a log file. Each conversation is a Yjs CRDT tree. It can branch into sub-threads (recursively), and you can drill down, backtrack, edit, undo/redo, and inspect everything: tool calls, approvals, and the raw context JSON going to the model, etc. The UI is based around Finder-style Miller columns rather than a big doom-scroll, and is quick to navigate.
Because it's a CRDT behind a local web server, multiple clients can attach P2P to a live session: the native desktop app, a browser tab, or your phone. Run the headless server on the box where the code lives, view it from wherever.
Almost everything is a JavaScript plugin: every item in the context (read/write/bash/etc.), the LLM loop strategies, slash commands, and their UIs. You can inspect, fork, or replace any of them. I don't do much agent customisation myself, but lots of people do, and I'd love to see what they think of with this plugin API.
Go backend, Wails for windowing (no Electron), plain type-checked JS (strict JSDoc), Yjs for the documents. Usual BYOK provider support: Claude (CLI or API), OpenAI/Codex, Gemini, Ollama, OpenRouter, DeepSeek, etc.
The app's AGPLv3; the extension SDK and bundled extensions are Apache-2.0, so extensions have no copyleft strings attached. No signup, no telemetry, trying to make it frictionless for people to try it out..
It's very much a beta, and is a one-man side project. It hasn't yet had a proper kicking from the real world, but I'm confident some people with similar preferences to my own will like it!
58 comments
[ 3.8 ms ] story [ 57.8 ms ] threadIn terms of who might be interested in this: I've watched amazing communities spring up around open agents like Opencode and Pi. People are getting into those because of their extensibility and being model-independant. They're great projects, but like many people I know, I really hate being stuck in the terminal for this kind of tool. I also had some ideas around what an agent's UX could be like if every item in the context was a plugin (with its own custom UI).
So I guess if you're a claude/codex user but want to escape the terminal (and let's face it, their GUI apps are also basically the same UX as a terminal but with nicer fonts), I'm trying to do something different here, would be really keen to hear what the enthusiasts think of it!
PS: I agree that tree is a better approach than scroll chat, and other ideas Juggler has.
On the site you also mention being pretty opinionated about the tools you use / build, which I imagine is part of the reason why you spend more time on this before releasing it. What was your experience using ai to build a larger project with a very specific idea / taste in mind?
Cool project actually, but I noticed the author said "No Electron" as if Electron is synonymous with JavaScript.
My biggest concern about it actually is using Go to render web front-ends in HTML/CSS hahah so I'm not sure "No electron" is selling me.
Got fed up with Zed, Cursor, and the other GUI agentic tools and created a console TUI agent for my own use.
I’m generally happy with my agent and want to keep that, but I do think the UI could be better and this looks like a neat step that way.
I've got my own attempt with OrcaBot (short for orchestration of bots). It's also been a 6 month solo build experiment. I'm not trying to plug.. just that I'm also neck deep in Steve Yegge's Stage 8 AI-assisted coding chart and understand how much thought and effort went into this.
Thinking about where this is all going with talking to AI like fully autonomous employees similar to @Claude can you see a comms app type approach that combines something like slack with your tree/thread structure? It's somewhat orthogonal to your "inspect everything" but could intersect by bringing click through/open in options...
``` LLM error: POST "https://api.deepseek.com/v1/chat/completions": 400 Bad Request {"message":"The `reasoning_content` in the thinking mode must be passed back to the API.","type":"invalid_request_error","param":null,"code":"invalid_request_error"} ```
I'm unsure about putting my Anthropic key in there as I've lost track of what they ban you for or whether that eats money from outside of my subscription.
Oooh, and nicer support for codefences would be good.
~~edit~~
wait, are you doing that? Love JUCE btw
Also when I opened a new session (in the Juggler GUI) at my root where all my projects live, my instinct was to navigate to a project directory first or to have it open there. Not sure how to do this, without changing the global setting for my projects root. That's how I think through claude code/codex coding sessions via the terminal wondering if that mental model is wrong.
I asked which skills it could access, and it turns out it couldn't access any of my global skills already - I thought that part would just work since it accesses my codex subscription. is that something you plan to add.
I've kind of followed the claude model where you have to give it a project folder, and at the moment I've made it so that it has one project/session per window.
I'm pondering whether to let a window contain tabs which each have a different project folder.. this would be easy to do, but feels somehow messier. Opinions welcome on that.
And yeah, I need to make it scan for skills - it's probably an hour's work to implement that, just haven't had time to do it yet! Probably will be done this week
I definitely wouldn't use any coding agent, GUI (yours included) without my skills. They are where most of my effort has gone, and what make the session effective. Without them, I'm spending a lot more time hand-holding and re-doing work with the AI.
So I created a system that seems a bit opposed to yours, or at least I'll take inspiration from you and probably update it. It's an overlay that I can resize, and an accompanying web view, of all my running coding agent terminal sessions. I can find old ones too, but mostly I want to know when something finished running or if it's waiting for me on something and if so what. It's not published anywhere but if you want to try it or see screenshots I can share.
I think that’s the secret to stability. I see too many projects that try to embed the harness into their UI. I think that’s completely wrong because it leaves no interface for changing or reasoning about the system.
The harness needs a lot of love and it should be as small and as possible (at least somewhat). I dream of a world in which we have some standard interfaces here, including for the UI.
Edit: seems like the remote connection feature may not work...
Awesome.
> AGPL
Even more awesome.