alt.hn

7/12/2026 at 6:28:15 PM

Show HN: Juggler – an open-source GUI coding agent, by the creator of JUCE

https://github.com/juggler-ai/juggler

by julesrms

7/14/2026 at 6:36:31 PM

As this post gradually sinks downwards on the HN front page, I'd just like to say thanks to everyone who've made all the lovely comments, it's great to get some feedback to show I haven't been wasting my time building this!

And as I said, this whole project was 100% done by me in my spare time, with zero money behind it, and no real plan for what happens to it now!

If you like it, please spread the word, as I don't have a marketing budget! If it manages to get a big enough userbase then hopefully I'll be able to figure out some way to make it a full-time gig, as it's been really fascinating to build!

by julesrms

7/14/2026 at 8:04:45 PM

You seem pretty cool and in it for the fun. May I make one feature request that would cause me to try it? A big reassuring READ ONLY mode that sandboxes file writes to zero. Of course that would constrain some of the product from working, that’s okay.

by hyperhello

7/14/2026 at 8:45:03 PM

The default mode it uses for approving LLM tools is already read-only - it has a quite complicated (but conservative) bash parser that tries to let things that are definitely read-only get approved without bothering the user. It also has a tool for exploring the codebase where the LLM provides javascript code that runs in a sandbox with a read-only filesystem class.

But the architecture is such that this core functionality is just a plugin, and anyone can write their own custom approval filter plugin, and make it do whatever you want

by julesrms

7/15/2026 at 3:50:05 AM

At least on macos and linux you can put the whole process tree into a seatbelt or bubblewrap sandbox. This lets you limit file and even network access fairly trivially.

by hnav

7/15/2026 at 8:15:33 AM

Just wanted to take the opportunity to say hello and thank you. I haven't really made anything in juce worth sharing, but for a couple of years I was deep in the vst swamp and tinkered a lot with juce. I learned a lot from it, got a very niche job thanks to it, and as a direct consequence have met some dear friends and made huge progress in my musical "career".

by sinfulprogeny

7/15/2026 at 11:24:11 AM

Excellent. The audio dev industry is a really nice community!

by julesrms

7/14/2026 at 4:08:39 PM

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

by robbomacrae

7/14/2026 at 4:13:36 PM

TBH I'm not coming from the same angle as all the gas-town fever-dream agent swarming stuff. I'm much more on the hands-on coding side, I tend to do one thing at a time and still do the git commits myself. So that's the UX I'm dogfooding..

However I see all those people out there trying to build these huge agent orchestration schemes, and if juggler's extension system can do that (or could be made to do that with a few tweaks) I'd be really interested in helping that to happen

by julesrms

7/14/2026 at 4:22:37 PM

I think I'm more on your side on that rather than letting agents go wild like Steve Yegge/Pete Steinberger do. In fact OrcaBot quickly adapted into a knee jerk reaction to OpenClaw because I saw that as inherently dangerous.

But with regard to Juggler and orchestration, have you seen "claude agents" (started in the terminal as claude agents instead of just claude). I ask because your tree like approach has similarities to how claude agents manages claude agents/subagents doing tasks with the ability to drill down in to each at a time which is why for me its not such a leap from what you already have.

by robbomacrae

7/14/2026 at 4:25:49 PM

I think that's basically the same as juggler's subthreads. As it progresses I'll work my way through all these kinds of thing and dig into whether there are things I can add or tweak to match their features. I'm aiming to make juggler's extension API flexible enough to support pretty much anything

by julesrms

7/14/2026 at 5:54:09 PM

I'm also on the hands on side. The mistake that I see a lot of people making is "I can build so much now". But that doesn't mean you're building the right things. And if you're hands off you aren't really thinking about what you're trying to build, at least not deeply. I'd love to see tools that embrace optimizing for that.

by sbloz

7/15/2026 at 7:02:21 AM

> Using a code agent involves editing big chunks of multi-line text, and getting hosed with information that you need to scan, navigate, and understand. I find a terminal UX horrible for all those tasks, and Juggler is resolutely a GUI app.

Thank you for building software made for actual productive usage instead of weird ricer clout and other performative nonsense.

> Yes, it's another AI coding agent. The industry definitely needed one more.

It actually does need more of them. The current count of harnesses that don't suck is a float somewhere around 0.3, maybe.

Keep doing what you're doing!

I'd love to have software that is actually made to solve problems instead of somehow pretend-granting me some identity. Or just being made by people with no taste in general.

My god the agent harness space is so bad. As if no one in there has ever seen a software in their whole life.

by hypfer

7/14/2026 at 4:14:39 PM

@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

by gnarlouse

7/14/2026 at 4:53:06 PM

Can you go more in depth on why LLM conversations should branch reddit-style? That doesn't seem immediately clear to me, and I'd be afraid that the different branches would step on each others toes? (also I'm assuming what you're describing here goes beyond the "fork" feature found in many agent harnesses).

by paldepind2

7/14/2026 at 5:05:38 PM

An agent like claude might run a subagent (e.g. to fetch and summarise a web page, or explore a code question) as if it's a tool, so you can't really see what's going on inside it. Juggler makes these sub-threads part of the overall structure, so you can navigate into them.

Another really elegant thing that pops out of subthreads is that to do a compaction, you simply move the entire conversation into a subthread, and let the subthread summarise itself (which they do anyway). So we get compaction as part of the architecture, and you can also dig into that old thread if you need to revisit any of it

by julesrms

7/14/2026 at 6:08:19 PM

Ah, ok. Visibility into subagents makes perfect sense. From the "reddit-style" description I was imagining something where the user was conversing non-linearly with the agent at different points in some big tree.

by paldepind2

7/15/2026 at 12:14:46 AM

Honestly even just a bookmarking system would go a long way to fix the problem, but getting "off-topic" in LLMs (3 years later and trillions of dollars of investment) still ruins my flow entirely. I end up playing an unwanted game of scrollbar warrior jumping back and forth between two points in chat. Could be that I'm studying a textbook and looking to enhance/check my understanding with Claude, or that I'm working on complicated tasks in my codebase. Side tangents always crop up. LLMs don't handle it well. Blows my mind that it doesn't bother anybody else, perhaps IATAH

by gnarlouse

7/15/2026 at 4:36:22 AM

You can go off topic and just rewind the context or edit it and delete the off topic messages. Not all harnesses let you do this as easily as you should.

If the off topic messages change files, then it's a bit more complex.

by copperx

7/14/2026 at 6:54:00 PM

Lol

by kosolam

7/15/2026 at 12:04:53 AM

The best example that comes to mind is orthogonal "thread pulling," and the fact that it's not immediately evident that you'd want to do it like this, makes me wonder if I'm the weirdo.

Say you're studying something: STEM topics, Liberal arts topics, a codebase, a textbook, etc XYZ. You're in the flow of discussing a main topic. Invariably, the main topic is built on top of atomic subelements. For example, discussions about Bonds invariably invoke discussions of Present Value, Yield to Maturity.

The branching is because you have a side query that is a potentially unbounded stack of "wait, but why this?" You highlight a segment of text in the current chat, click a button that pops a new conversation over to the right, and continue your "related but off-topic question." You have both context threads in view at once: the main topic & the side topic. You should be able to do this N layers deep.

The alternative is that you get to play scrollbar warrior in the current regime of LLM-designs. It's not really conducive to deep understanding.

This kind of conversation applies naturally to software development too: "wait, so we're working on feature X/refactor X/bugfix X, but that requires us to answer this subthread. And sure these days Claude Fable can probably do it all with the right harness, but does that mean you _understand_ what it just did?

by gnarlouse

7/14/2026 at 4:18:30 PM

I know! But 3 years is a very short time for a whole new category of tools to find the best design. It's incredible how quickly a lot of the big agents were dragged into existence, I'm amazed they worked at all..

by julesrms

7/14/2026 at 10:25:42 PM

Miller columns rather than a big doom-scroll

Sold, this is my biggest annoyance with Cline.

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.

Double sold

As a longtime sound engineer I'm pretty familiar with JUCE and your other productions, so I will be trying this with confidence.

by anigbrowl

7/14/2026 at 2:58:32 PM

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?

by Semkas

7/14/2026 at 3:03:11 PM

I must have authored literally a million lines of C++ over my career, and done many talks about clean coding, etc.. But in this one I quite appropriately wrong almost zero lines by hand!

Surprisingly, I've really enjoyed the experience. I have friends who lament that they probably won't be hand-writing code much more, but although I've always loved the craft of coding, I discovered that a lot of the fun I get is just in the end result, not how I got there.

by julesrms

7/15/2026 at 8:20:05 AM

> they probably won't be hand-writing code much more

Why is that, can you elaborate a bit?

Also one question about economics of writing such tools using AI - How much it costs you?

PS: It looks great, I want to try it today :)

by dixtel

7/15/2026 at 9:27:55 AM

Well, once the LLMs are better and faster at writing code than the humans, coding by hand becomes a hobby rather than a job..

I guess personally I spend just over 100/month on LLM subs

by julesrms

7/15/2026 at 9:41:04 AM

> coding by hand becomes a hobby rather than a job

Yeah, I guess that will be the future. I'm not sure if its a good thing or not. I hope it will not affect my job position.

Last question, which LLM provider you use and the model?

by dixtel

7/15/2026 at 12:34:57 PM

Mainly claude opus, with some fable for special occasions. And GPT5.6 is also good. But this stuff changes all the time.

by julesrms

7/15/2026 at 12:32:20 PM

Very interesting. I tried to make a tree based agent two years ago but back then the LLM couldn’t manage to navigate the tree effectively. But today everything is different: better LLMs, and we have better understanding on how to instruct them.

I’ll try it and maybe I’ll be inspired to make my current home brewed agent more document focused again.

One drawback is much higher token usage because we get a very good saving in the cached data.

A little heads up: in your web page, the header download button force double screen with on mobile (iPhone 17 pro). No big problem but always an annoying when a page scrolls in two directions.

by Max-q

7/15/2026 at 12:38:06 PM

Well, it's good to have the choice of whether to edit the document and break the cache, or not.

Ta for the heads-up, I'll tweak the website!

by julesrms

7/14/2026 at 3:23:46 PM

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.

by everforward

7/14/2026 at 4:24:22 PM

Agreed, ACP should be a minimum requirement on new agentic tooling. Hope this gets it, then I can try using my niche agent.

by jdright

7/14/2026 at 4:31:10 PM

Message received, I'll make ACP the top item on my TODO list!

by julesrms

7/14/2026 at 3:26:32 PM

Cheers, I'll put ACP on my list of things to investigate

by julesrms

7/14/2026 at 4:23:52 PM

I guess there are 2 sides of ACP that are valid then. What was asked is for Juggler to act as a ACP client. I, on the other hand, would appreciate it to be a ACP server, so that I can interact with it from my editor when I’m on my machine and from the web when on the go or for more advanced functionality. That’s my current approach with opencode.

by ireadmevs

7/15/2026 at 8:11:15 PM

This seems like an odd request to me, but maybe I'm misunderstanding what you want or what Juggler does.

To my understanding, Juggler is a frontend to your agent and would replace your editor. That's the selling point I got, a better UI than text for orchestrating your agents.

ACP servers are agents (like if you look at the spec you have to implement an entire agent's worth of endpoints, from creating sessions and sending messages to handling starting MCP servers the client specifies).

I don't get the sense that the point of Juggler is to make the world's best agent (rather it's to make the world's best interface to agents), but OP would know way better than me.

What you're describing sounds like an ACP proxy, which probably exists but is a different class of thing.

If you just want to drive OpenCode via Juggler rather than your text editor, you also want Juggler to be an ACP client (it can be both an HTTP server and ACP client, I have some stuff at home that does that).

by everforward

7/15/2026 at 8:11:14 PM

Connecting to juggler remotely from a browser is baked into its whole architecture! The entire GUI is identical in the desktop app or browser, local or remote. So I'm not really sure I see much point in making it a server. But as a client, sure, will add that.

by julesrms

7/14/2026 at 5:59:14 PM

This looks nice, and I like the more opinionated take on how "communicating" with an agent should work.

The post talks a lot about what this is and how it works. I'm curious, from your usage of it, how does it change your way of working with the LLMs? How does working with it go differently from Claude Code?

Specifically: Everything is a tree. That's interesting, but how do you end up using it? Attack the same problem different ways?

by sbloz

7/14/2026 at 6:10:38 PM

I've mainly used the tree stuff when tackling a large plan - tell the LLM to do things using sub-threads, so the parent gets the summaries and orchestrates them.

But TBH for most smaller tasks I tend to create a conversation, do a linear task, and bin it.

Because a plugin can also use the sub-thread system, maybe people will come up with some interesting uses for them that I haven't thought of, my own use tends to be quite simple!

by julesrms

7/14/2026 at 6:35:26 PM

I see. That seems pretty similar to plan mode + "implement with subagents". The display for that in terminal apps is pretty bad, but it's low friction.

One more question around yDoc and remote access if you don't mind. Do you have thoughts on a tool like this for "LLM pair programming" or just general collaboration?

Working with teams on smaller projects with these tools is really hard because anyone can build anything. If I'm going to type up a bug or request to send to a team member to build I might as well send it to the LLM instead. A multi-user environment in a tool like this could be interesting. Seeing team members sessions in real time could be neat.

by sbloz

7/14/2026 at 7:02:51 PM

TBH I've found myself using juggler's tabs like a kanban board.

It'll certainly let multiple people share the same live session, so that tab list would act pretty much like a live shared kanban board. If you're all happy working on the same folder at the same time, then that would work! I guess that just by adding something like per-tab worktrees it could actually be a pretty good team server.. hmm.. Hadn't really looked at it like that yet, but that' interesting

by julesrms

7/14/2026 at 7:19:43 PM

The first orchestrator I built was a kanban board that spawned a vscode session per task with a plan file in it. Nice contained way to do a chat session, you can review the files and make edits, and close it once it's done. Very slow and heavy though. So that way of working resonates with me.

For some more unsolicited feedback: if that's how you use it why not pitch it that way/ make that way of working more obvious? Bug tracking and todo's jump to mind for me. For example: I want to write a prompt to fix this bug at some point but I need to think more about it. Right now I just need a place to jot it down for now so I don't forget.

Re: collab - managing edits and other state (builds/lints/test processes) is definitely a tricky problem. "Frictionless" worktrees is an interesting idea. That often seems like the "right" solution for how I'm working but it's too annoying to do for smaller changes. Doing that well would be a reason for me to give this a try.

by sbloz

7/14/2026 at 9:01:01 PM

Yes, definitely considering that kind of angle to it. It's all evolving, I've only really been properly dogfooding in it for a couple of months, so still working out best practices.

And the collab side of things I'm only just now really having space to start pondering.

by julesrms

7/14/2026 at 5:31:10 PM

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

by vorticalbox

7/14/2026 at 5:36:03 PM

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

by solarkraft

7/14/2026 at 5:39:38 PM

Totally. I spent a long time on the architecture of this thing, must have redesigned in 10 times to evolve it to this point. It was a really interesting challenge, but seems kind of obvious in hindsight..

by julesrms

7/14/2026 at 5:45:36 PM

Really glad to see an harness other than Pi that seems to be non-vc-backed FOSS and by a competent maintainer

Edit: seems like the remote connection feature may not work...

by markasoftware

7/14/2026 at 5:55:34 PM

I'll try to live up to the 'competent' bit!

by julesrms

7/15/2026 at 3:03:37 AM

Nice to see people wanting to strike a balance between automated AI and staying involved. I have been frustrated by push to fully autonomous long horizon agents because the lack of course correction seems to burn tokens with worse results

by digitaltrees

7/15/2026 at 5:38:38 AM

Mmm I added my Gemini Key and selected the model, but the Add Provider pop-up keeps appearing. In the Default Model tab it says: Provider is configured but has no API key. EDIT: it seems I have having network issues, the model selector in the chat input says it could not load models and yeah, now aistudio is also not loading.....story of my life hhhh EDIT2: not sure whats going on, my connection is back but now the Provider API key tab in settings is completely empty...

by thenthenthen

7/15/2026 at 5:52:30 AM

Hmm, if you spot anywhere you think the app could be more helpful in diagnosing the problem let me know..

by julesrms

7/15/2026 at 6:38:03 AM

Yeah some debugging like webinspector or some kind of console? I guess I should start it headless maybe to see whats going on?

by thenthenthen

7/15/2026 at 6:40:40 AM

I think it is my connection....$ [ERROR] computeProviders: list models from gemini failed: failed to list models from Gemini: Get "https://generativelanguage.googleapis.com/v1beta/models": context deadline exceeded.

Another VPN: $ [ERROR] computeProviders: list models from gemini failed: failed to list models from Gemini: HTTP 400

by thenthenthen

7/15/2026 at 6:48:27 AM

yeah, sounds like your network's in a muddle somehow

by julesrms

7/15/2026 at 6:55:27 AM

yeah...classic

by thenthenthen

7/14/2026 at 10:23:38 PM

This is really nice, thanks for sharing! If you don't mind a little feature request, I'd love to have a "thinking level" selector on the GUI for models that have it.

I really like how easy it is to verify exactly what happened on each tool call, inspect the thinking blocks, etc.

by cassianoleal

7/15/2026 at 5:37:50 AM

A thinking level setting is already in my TODO list top ten!

by julesrms

7/14/2026 at 2:39:03 PM

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.

by prabhanjana_c

7/14/2026 at 2:46:08 PM

Thanks! I think hearing "the UI is clean" is exactly the reaction I've been hoping for :)

While I've put huge effort into things like its architecture and extension API, it's really trying to just build a lovely UI/UX that has been my motivation on this.

by julesrms

7/14/2026 at 3:21:56 PM

Out of curiosity, did you use JUCE to build this? Were there any interesting gotcha's you encountered along the way?

I've settled on JUCE as my cross-platform app framework (not just plugins) of choice, so it'd be interesting to hear about your experience with building this app out .. could you tell us a bit more about the architecture and any impactful decisions you made along the way with regards to tooling/integration? Is there now a juce-go-module or something like that, which you've wired up to JUCE' web view functionality?

by MomsAVoxell

7/14/2026 at 3:24:33 PM

No, this is pretty much the anti-juce!

There's no c++ in it, it's all Go/Javascript. And all the UIs are HTML. JUCE is a great choice for some things, but this wasn't one of them!

by julesrms

7/14/2026 at 3:50:56 PM

Ah, very interesting! I'm a little disappointed, but it's understandable.

Well, my first run wasn't very pretty .. installed it on a MacBook Air M5 with 16Gigs of RAM, set it up to access the local ollama instance (because I'm cheap like that), gave it a local JUCE app with a prompt to "analyze the project for issues porting from 32-bit to 64-bit" .. plugged in the laptop as it started processing, and then the system froze. I guess Juggler doesn't like display/USB enumeration events while its busy having ollama chug up all the resources .. well, that produced a system crash .. so came back, set it all back up again, and was .. after a few minutes .. told "the 'ls' tool is not available on this system" .. hmm .. I guess I might have missed a few setup steps in my rush to get it cranking on my JUCE project ..

In any case, will tinker with it some more, looks really great and a nice way to organize AI into a functional UI - especially better than some of the other things I've been using lately (hermes, mostly..) ..

by MomsAVoxell

7/14/2026 at 3:58:03 PM

Hmm, that's odd. Would like to dig into that more if you can find any more clues about what went wrong. Feel free to message me if you want to discuss it

by julesrms

7/14/2026 at 4:04:41 PM

The 'ls' problem is me just being a dufus and not setting up ollama to have tool access .. but I can confirm that plugging/unplugging my laptop into a USB-C hub (to get another monitor and keyboard/mouse) seems to plague Juggler in such a way that the system reboots, and only while it is actively engaged in an ollama connection, answering a prompt. Maybe its a resource issue - this is not the fattest machine for the job, after all.

by MomsAVoxell

7/14/2026 at 6:02:04 PM

Nicely done! Would you consider adding an Agent SDK login for Claude for those who don't have an API budget and want to avoid potential issues with Anthropic's capricious policies around CLI use in third-party apps?

by m_kos

7/14/2026 at 6:05:59 PM

It does! It'll automatically detect and use the claude CLI. That's my main daily driver.

[edit] sorry - misread your post. It basically does the exact same thing that the Agent SDK does, so is equivalent to using it (but being Go, I couldn't use it directly)

by julesrms

7/15/2026 at 4:26:01 AM

This is a product I have wanted to exist for quite a while, and tried to create myself, but lack the skill.

Thank you for building this!

by trenchgun

7/14/2026 at 3:49:23 PM

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!

by SoleilAbsolu

7/14/2026 at 3:50:48 PM

Thanks!

by julesrms

7/14/2026 at 3:12:22 PM

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.

by Shorel

7/14/2026 at 3:15:34 PM

There's definitely the CLI and non-CLI camps!

But TBH I think a lot of the GUI agent tools so far have been pretty much terminal apps wrapped in a thin GUI layer, which is why they don't seem to add any value over just doing the same UX in a terminal

by julesrms

7/14/2026 at 3:45:54 PM

Could you include screenshots on your github page?

by buggylearning

7/14/2026 at 3:47:10 PM

Ah, good idea, I should do that..

by julesrms

7/14/2026 at 6:10:40 PM

Looks cool, I am also trying to figure out how to enhance the CLI user experience but on web with cloud gpus

by clodecloud

7/14/2026 at 3:00:21 PM

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.

by blackberrysoda

7/14/2026 at 3:06:26 PM

"No electron" is more about avoiding bloat and dependencies.

I come from a hardcore, real-time C++ background and the idea of a product not being a single self-contained binary is just too far for me to go!

(But I don't think the choice of JS back-end should make the slightest difference to anyone using this. I could swap electron in there in the future and probably no-one would notice)

by julesrms

7/14/2026 at 3:47:59 PM

"no electron" sold it for me. I'll give this a go!

by drcongo

7/14/2026 at 4:31:04 PM

Why not use JUCE for UI? :)

by zerr

7/14/2026 at 4:35:22 PM

An LLM conversation contains a massive mess of markdown, code, HTML, images, god-knows-what else, it needs to reflow and animate. Neither JUCE or any other non-HTML UI framework would be realistic for that!

by julesrms

7/15/2026 at 8:03:22 AM

With codex & Claude, I bearly used any of other IDE even for an indie mobile developers, I have not open xcode for ages. To me, any IDE to build project will be just a chat in LLM.

by zhonglin

7/14/2026 at 5:36:49 PM

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!

by catapart

7/15/2026 at 8:50:01 AM

Sorry but it's not real BYOK to me as there is no UI/method provided to modify the providers, instead the app provides limited provider list and only allow custom API keys. I personally have a big list of providers under a CliProxyAPI service for easier management working with multiple coding agents and multiple serious or experimental providers, so I combine them whatever I want to have different experience, also much easier to work with so much API keys.

For example, I have my codex pointing to the CPA endpoint and the actual running model is a openai compatible one from an specific provider with specific base URL. I hope this could be considered add into roadmap.

by shunia_huang

7/15/2026 at 12:46:24 PM

Oh, I'm fully expecting people to ask for all kinds of weird custom providers, and they're easy to add. For launch I just focused on getting the provider API solid, and implementing the mainstream ones. Feel free to open an issue on GH if you want to request something that it doesn't do

by julesrms

7/15/2026 at 12:54:15 PM

(oh, and I should mention: The next build will have a generic openAI provider, which might actually be exactly what you need)

by julesrms

7/14/2026 at 4:11:26 PM

Hey Jules! This looks awesome, excited to check it out :) Hope you're doing well! Tom

by tomduncalf

7/14/2026 at 4:14:22 PM

Oh, hi Tom! Hope you're doing well!

by julesrms

7/14/2026 at 3:47:08 PM

For running headless is it possible to not require installing libwebkitgtk-6.0.so.4

by LeSaucy

7/15/2026 at 7:03:33 AM

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

by julesrms

7/14/2026 at 3:49:01 PM

At the moment it uses a GTK webview for running server-side javascript, so it's needed right now. At some point I'll see if I can find a JS engine that I could swap in there

by julesrms

7/15/2026 at 10:35:06 AM

Is this using ACP?

by orivibes

7/15/2026 at 12:44:03 PM

ACP hadn't crossed my radar before some people mentioned it here, but it's an easy add to make juggler an ACP client - I'll do that in the next couple of days

by julesrms

7/14/2026 at 5:55:20 PM

> Wails for windowing (no Electron)

Awesome.

> AGPL

Even more awesome.

by bartvk

7/14/2026 at 1:31:56 PM

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!

by julesrms

7/14/2026 at 6:22:02 PM

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.

by alok-g

7/14/2026 at 3:26:00 PM

First of all, it's so cool to see you on HN and creating this. I'm not sure how much the HN community is aware of this, but JUCE is the standard for cross platform music plugin development and needs to work efficiently in hard realtime settings. Many of my favorite plugins are JUCE based (such as the Valhalla stuff) and I'm a huge fan. Tracktion is a great DAW as well that I got a lot of mileage of in my younger days (ended up with Renoise because I'm a tracker guy after all long term).

I mention all this to say someone like you picking up the desire to build an agentic platform really piques my interest. Right now I am using Opencode for most of the stuff I am trying to do at $WORK and it does a good job on the whole at having sufficient functionality. But the release pace is blistering and it does feel bloated - both in terms of functionality as well as system prompts.

Moreover, I observed all of the same issues you mentioned and certainly wanted more of a tree like experience as well as a more UI forward experience. In order to get the functionality I wanted (good worktree support, sandboxing, etc) I eventually just had to let go of using opencode's UI and embrace the TUI because it was the only thing I could embed into a workflow that let me set up all of that in a sane manner. But problems still remain with the "doom scroll" experience when to your point clearly a tree based experience would be better.

I was ready to just settle with my cobbled together opencode flow and maybe migrate to Pi later on and just accept i'd have to roll my own GUI harness for my nontechnical team members. But seeing what you've put together so far (and knowing it's you who wrote it so I'm probably going to just see a step function level better quality in architecture/efficiency) is going to make me reassess in a good way. Some things that I'll be considering:

- Worktree support

- Sandbox support

- Skills/subagent handling

- Hashline based editing (feel like this is a huge part of why people get better results from pi/omp over opencode/codex/claude code)

- Ability to customize tool calls + have rich embeds

- Web UI support (if i'm building this out for team members, native GUI can get messy and web client is ideal)

- Long horizon efficiency (IE i regularly get to 200k-400k context length sessions; while the model handles it fine, opencode gui will get laggy while the tui keeps chugging along)

For a lot of this stuff, it's less critical that all of this works perfectly out of the box and more critical that the architecture makes it easy to build (ie as with Pi ecosystem). What I'm after long term is something a bit like https://github.com/ColeMurray/background-agents in capability but without the overly tight coupling and design decisions that product has made.

The way I want to get there is to find the right base (whether that's Pi, OpenCode, or your project Juggler) and build the background agent harness layer. Previously it was just Pi and OpenCode and neither was really perfect (GUI story was probably the weakest for both) but it's great that I have another option to diligence that might actually be a better fit for what I'm trying to do.

Excited to see how this develops and kick the tires on it myself. The tree paradigm feels like the killer feature to me; not sure of anything else besides pi/omp that has it.

by yowlingcat

7/14/2026 at 3:43:21 PM

Couldn't agree more!

I've got things like worktree/sandboxing/skills on my TODO list.

I'd heard of hashline based editing - I will dig into that, and it's probably easy to add, though TBH I've not had any hassle with the editing tools so far.

If you get stuck into customising tool calls + their UIs, would love to hear how you get on, as that's one of the big goals for this. I've implemented all the built-in tools as plugins so hopefully it'll cover everything you need.

In terms of long-horizon stuff, yes, I also often hit 3-400k and haven't had any issues, but let me know if you spot anything untoward

by julesrms

7/14/2026 at 5:18:31 PM

Does it support sandboxing?

by noja

7/14/2026 at 5:21:04 PM

It's in my list of things to add next! (Though you can run it inside a sandbox tool of course)

by julesrms

7/15/2026 at 7:41:52 AM

It's a clever name, but I'm not seeing from the screenshots how it will help me juggle the 20 different projects that I've got going on, each with four or five tasks on them.

by fragmede

7/14/2026 at 4:12:00 PM

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.

by drcongo

7/14/2026 at 4:15:23 PM

Ta for the heads-up, these provider API things are super easy to fix, but hard to keep on top of them changing under our feet!

by julesrms

7/14/2026 at 4:25:34 PM

No problem. A tiny bit more working with it and I think I'm sold, it fits my mental model really nicely, thanks!

by drcongo

7/14/2026 at 4:45:29 PM

Awesome to hear it. I built something that fitted my own mental model, and am assuming others out there have a similar one!

by julesrms

7/15/2026 at 1:53:15 AM

Seems to work when I click the juggler.app in Ubuntu 24.04 (Noble Numbat) GNOME's desktop. Running same app via terminal does not launch the app. Appear to be a sandbox issue common in Noble Numbat. In this case, WebKitGTK's sandbox failing to initialize properly via bubblewrap.

by SilentM68

7/15/2026 at 5:38:56 AM

Yeah, someone else reported that and I've got a (hopeful!) fix coming in the next release..

by julesrms

7/14/2026 at 5:57:33 PM

Jupyter-rtc is built on y.js too.

There's a sqlite CRDT: cr-sqlite,: https://news.ycombinator.com/item?id=41921992

vlcn-io/cr-sqlite: Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite https://github.com/vlcn-io/cr-sqlite

Notes on sandboxing agents: amla sandbox, agentvm, bwrap at least; debugging mcp servers, and signing agent traces in a standard format: https://news.ycombinator.com/item?id=48893850

--

Can juggler: Design and verify a guitar effect pedals and a wavetable synth with JUCE on a low power chip?

JUCE on embedded controllers; Rust embedded RTOS-like features, a DSP and low power draw:

> Ambiq Apollo4 Plus | ARM Cortex-M4F | ~4–10 µA / MHz | more efficient than an RP2040 Pi Pico. The hardware FPU handles audio math at a fraction of the power footprint.

> STM32U5 Series | ARM Cortex-M33 ~110 µA / MHz | energy-saving modes, math accelerators (Cordic for sines/cosines), audio peripherals

> STM32L4 Series | ARM Cortex-M4F | ~100 µA / MHz | mature, ultra-low-power, robust I2S audio support, sleep state

grame-cncm/faust: Functional programming language for signal processing and sound synthesis / [that compiles to microcontroller DSP code, LLVM IR,] https://github.com/grame-cncm/faust

Then a Rust-based OS for microcontrollers; to isolate devices and device drivers from other processes;

I'd like to learn this too (so this is worth researching)

Rust packages for DSP:

embedded-hal, embedded-io, rand_core

Navigating the Embedded Rust Ecosystem https://www.theembeddedrustacean.com/p/navigating-the-embedd...

https://google.github.io/comprehensive-rust/bare-metal/micro...

hubris > Flash instructions already mention an STM32 F but not yet U or L: https://github.com/oxidecomputer/hubris#flash

Task: Add support for STM32U and STM32L to hubris

"Navigating the Embedded Rust Ecosystem" https://www.theembeddedrustacean.com/p/navigating-the-embedd...

The micro:bit has a speaker and something like a DSP and rust support, though it's not going to run JUCE and BespokeSynth ; kk Just rtic, cortex-m-rt, and nrf52833-hal (for micro:bit v2) might be sufficient but there's already microbit_bsp:

microbit_bsp is a board support package (BSP) library for the micro:bit v2 and newer: https://docs.rs/microbit-bsp/latest/microbit_bsp/

Another task; Develop and test a board support package for low-power chips for hosting effects from JUCE compiled with or like Faust.

But then contain agent sessions;

e.g. Hubris has no shared memory so audio streams must be shoveled over message passing

--

Back to agent sandboxing;

It looks like WebKitGTK uses bubblewrap on linux unless running in a flatpak, because flatpaks don't have permission to create namespaces so bwrap can't run.

Bubblewraplauncher.cpp: https://github.com/WebKit/WebKit/blob/main/Source/WebKit/UIP...

FlatpakLauncher.cpp: https://github.com/WebKit/WebKit/blob/main/Source/WebKit/UIP...

CF workers support nested agent isolates since 2026-03: https://blog.cloudflare.com/dynamic-workers/

dloss/awesome-agent-sandboxes: A curated list of sandboxing solutions for AI agents https://github.com/dloss/awesome-agent-sandboxes

by westurner

7/14/2026 at 5:29:53 PM

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.

by mannanj

7/14/2026 at 6:20:59 PM

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

by julesrms

7/15/2026 at 7:37:23 PM

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.

by mannanj

7/14/2026 at 9:25:50 PM

The "session is a document, not a log file" framing is the part I'd underline. Being able to inspect and edit the raw context JSON going to the model is criminally rare, most tools treat the context as a black box, and on long runs context bloat is the single biggest cause of the model quietly drifting. Making it inspectable and prunable is a real lever, not a gimmick.

The thing I'm curious about: once you branch, backtrack, or edit a node in the CRDT tree, how do you reconcile that with the model's linear context on the next turn? If you reconstruct the transcript from the tree each turn, does editing anything upstream blow away provider prompt caching, since the Anthropic/OpenAI caches key off an exact prefix match? That's the tension I keep hitting: tree-shaped editing is exactly what you want for control, but it fights the flat-prefix caching that keeps long sessions cheap and fast. Curious whether you just eat the re-cache cost or do something cleverer.

Either way, Miller columns over a doom-scroll is the right instinct. Nice work.

by jabenhaim

7/15/2026 at 5:47:35 AM

Yeah, if you edit then you do blow the cache.

Where I've found editing to be the most useful is e.g. when I've had a long task that got a bit rambling and digressed, and then I go away and need to resume it later. Leaving it means the provider will have lost the cache for it, but rather than spending a lot of tokens to /compact or just to continue the entire thread, you can go through and delete all the useless bits, maybe just leaving enough content in there for the LLM to figure out how to continue, and then get back on track quite cheaply

by julesrms

7/15/2026 at 10:38:25 AM

[flagged]

by jyswee

7/15/2026 at 11:10:53 AM

[flagged]

by canary-digital

7/15/2026 at 2:34:59 AM

Love the "session is a document, not a log" model — linear scrollback is the worst part of long agent sessions.

When you fork a sub-thread, does the model get the full parent context up to the branch point, or can you trim what carries over? Context bloat across a lot of branches feels like the hard part.

by leonkatz

7/15/2026 at 5:44:03 AM

Originally I allowed the LLM to decide whether a subthread inherits the parent context, but had to back out of that one. I found quite expensively that if the parent context includes an instruction to do a task in a subthread, it could fly off into an infinite recursion of subthreads all burning tokens to delegate the task to a subthread!

So I've just made it so they don't inherit! If we find a situation where inheriting is useful and safe, it'd be easy to add again.

by julesrms

7/14/2026 at 3:48:37 PM

[flagged]

by joshsantiago01

7/14/2026 at 3:56:56 PM

[dead]

by aayushkumar121

7/14/2026 at 5:47:00 PM

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.

by guessmyname