Show HN: Juggler – an open-source GUI coding agent, by the creator of JUCE (github.com)

280 points by julesrms ↗ HN
Hello HN, I don't post on here much, but wanted to get some eyes on a new project I'm just launching. I think we definitely need one more AI code agent..

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!

https://juggler.studio

58 comments

[ 3.8 ms ] story [ 57.8 ms ] thread
Just wanted to add a follow-up to what I posted above..

In 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!

Have you looked at Kilo code too. It is also model-independent but not terminal based. https://kilo.ai

PS: I agree that tree is a better approach than scroll chat, and other ideas Juggler has.

(comment deleted)
UI is clean. could install in Mac. Adding context files at the top is clean. It worked. Currently I use zed, vscode (for UI). along with claude, codex, Hermes. Not sure If I will continue to use. But I see it is a clean and good UI, and integrating to my exiting cli's. All the best.
This looks cool! I'll check it out. Out of curiosity: I assume you've also used agents to help build this, and on the site you mention working on this for ~6 months. Most one-man projects I see that use ai seem to focus on creating and presenting a concept as soon as possible (to a lot of people I think the main benefit of stuff like vibing is that you really quickly get something that you can have others test out).

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?

I thought "Wails" was gonna be short for "Wuby on Wails" lmao

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.

Great work, it is very funny that I did just the opposite :)

Got fed up with Zed, Cursor, and the other GUI agentic tools and created a console TUI agent for my own use.

ACP support would be a big deal and would make this a real contender for me. It looks super nice, but the idea of re-writing my Pi plugins is a real blocker.

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.

Could you include screenshots on your github page?
For running headless is it possible to not require installing libwebkitgtk-6.0.so.4
FYI I've got a plan for this now, I'll make it fallback to using node/bun as its javascript engine if GTK isn't available. So watch out for the next release if this is a showstopper for you..
Nothing to say regarding this release, but thanks so much for creating Tracktion (first DAW I ever used back in 2006) and JUCE (I love and use many audio plugins created with it)! Have a great day!
This looks really interesting and a unique take on the AI agent orchestration. I think we need a bunch of experiments in this area as it's clear we are entering a new paradigm and the tools for it are lacking. The session tree in particular has merits.

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...

Hey Jules! This looks awesome, excited to check it out :) Hope you're doing well! Tom
Having now given it a quick spin, I like the UI concept and could definitely see myself working with this. I ran into a bug(?) almost immediately though, I hooked up Deepseek 4 Pro, gave it a small task and got this

``` 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.

@julesrms thank you for lending more credibility to the idea that agent conversations need to be natively branching. It's crazy that we're almost 3 years in on this LLM joyride and we still don't have the ability to do, like, reddit/slack-style "aside" convo threads.

~~edit~~

wait, are you doing that? Love JUCE btw

Why not use JUCE for UI? :)
Does it support sandboxing?
Interesting. Just opened it up to use, while I had a codex terminal session running - my first instinct was to want to see my pre-existing open session in the GUI instead and be able to drive it in either spot. Is that something I can do?

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.

No, it talks directly to the GPT API, it doesn't control the codex app in any way.

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 prefer to have minimal flows where each window is just the pure session contents, with a title maybe (even then I don't like the bloat of a title taking up any screen real estate).

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 always like testing out new things to put into my workflow. the first thing I will say is that its a welcome change to have an app 40 MB rather than over 400
> Because it's a CRDT behind a local web server

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.

Sweet! I was just looking for something like this, this past weekend. Lots of command line stuff, but not much in the way of GUI apps. Excited to check this out! Thanks!
Please ask your LLM Agent to replace all that JavaScript code with SwiftUI, or at least C++ with native graphic libraries for real native GUI performance.
> Wails for windowing (no Electron)

Awesome.

> AGPL

Even more awesome.