{"slug": "show-hn-juggler-an-open-source-gui-coding-agent-by-the-creator-of-juce", "title": "Show HN: Juggler – an open-source GUI coding agent, by the creator of JUCE", "summary": "Jules Storer, creator of the JUCE audio framework, released Juggler, an open-source GUI coding agent that provides a visual workbench for inspecting and controlling LLM interactions with a codebase. The tool features a tree-based session structure, inspectable tool calls, and plugin support, and runs locally, remotely, or both simultaneously.", "body_md": "Yes, it's another AI coding agent. The industry definitely needed one more.\n\nIf Juggler has an angle, it's that it's for people who want to be more hands-on over what the LLM is doing to their codebase. It gives you a visual workbench: inspectable tool calls, branching threads, editable context.\n\nMore blurb on the website: [https://juggler.studio](https://juggler.studio)\n\nAnd here's the TL;DR:\n\n**It is a proper GUI.** This is not a console app. It's all about graphical visual navigation, inspection, and control.**The session is a tree, not a doom-scroll.** It's a Yjs document, not a transcript. Create sub-threads, drill down, backtrack, compare, and edit.**Everything important is visible.** Tool calls, approvals, thread structure, item properties, raw context — laid out in Finder-style Miller columns instead of buried in collapsible chat.**It's plugins all the way down.** Context items, slash commands, LLM loop strategies, and their UIs are JavaScript extensions you can inspect, fork, or replace.**It runs locally, remotely, or both at once.** Use the same session with the same UI in the native desktop app, and/or browsers. Multiple clients can attach to the same session.**It talks to the usual model zoo.** Claude Code (via CLI or API), OpenAI (codex plan or API), Gemini, Ollama, OpenRouter, Z.AI, Deepseek, etc.\n\nDownload a build from the [Releases](https://github.com/juggler-ai/juggler/releases) page or via [juggler.studio](https://juggler.studio).\n\nEach download contains the same two moving parts:\n\n**Juggler app**— the native desktop app. Works like you'd expect it to.— the headless command-line server. Run this from a terminal for long-lived, remote, or network-accessible sessions. It has no window of its own, but you can type`juggler`\n\n`w`\n\ninto its terminal to open the desktop app, or use the browser URL it prints.\n\nThe desktop app, browser tabs (on local or remote machines) can all be clients viewing the same server session.\n\n**macOS**— download the`.dmg`\n\n, open it, and drag Juggler to Applications, then launch it. The app and its server are bundled together, so the server starts automatically. The first time you open it, macOS Gatekeeper may block the download: right-click (or Control-click) the app →**Open**→** Open**, or go to** System Settings → Privacy & Security → Open Anyway**. After the first launch it opens normally.** Windows**— download`Juggler-<version>-setup.exe`\n\nand run it. It installs the desktop app and the matching`juggler.exe`\n\ncommand-line server together in one directory (and can add`juggler`\n\nto your PATH), so the two never drift apart.**Linux**— download the`juggler`\n\nserver binary and run it from a terminal, then connect with a browser or the desktop app.\n\nThe desktop app and the server always ship and install as one unit — see [ docs/distribution.md](/juggler-ai/juggler/blob/develop/docs/distribution.md).\n\nFor a headless session, just run:\n\n```\njuggler     # prints everything you need to connect from a browser\n```\n\nBy default, the server opens a web UI and prints its URL plus a QR code for easy connection.\n\nThe server is localhost-only by default — nothing off your machine can reach it. To let other devices on your network connect, press `p`\n\nin the terminal (or launch with `--public`\n\n). LAN access has no password: anyone who can reach the address can drive the agent, so only enable it on networks you trust.\n\nAccess from beyond your LAN isn't built into this repository: a build from this source is local + LAN only. The official Juggler binaries from [juggler.studio](https://juggler.studio) additionally include WAN access modes for reaching your server across the internet (see [LICENSING.md](/juggler-ai/juggler/blob/develop/LICENSING.md) on components not in this repo).\n\nMost agents give you a single linear transcript and if you're lucky you can rewind it.\n\nJuggler gives you a **tree**. Any point can branch into a sub-thread. Sub-threads can branch again. You can navigate, inspect, and edit the structure directly.\n\nThe UI uses **Miller columns**: root on the left, selected items expanding into properties and children to the right. (If you've used Finder's column view, you already understand the basic move).\n\nThe core app manages the document and orchestration. Almost all the objects that make up the document are defined by JavaScript extensions:\n\n**Context items**— every item type in a conversation (`read-file`\n\n,`replace-text`\n\n,`bash`\n\n, …) controls both how it talks to the LLM and how it appears in the UI.**Strategies**— high-level LLM loops such as`plan`\n\n,`research`\n\n, or your own fever-dream inventions are plugins too.**Commands**— slash commands like`/clear`\n\nand`/compact`\n\nare all just plugins that manipulate the session document.\n\nNot every LLM workflow wants to live as a headless Python script skulking in a terminal. If an orchestration idea needs its own UI, controls, or visualisation, Juggler is a platform for that.\n\nJuggler looks like a native desktop app, but underneath it is a local webserver serving a live collaborative session. The app is just one client. A browser tab can be another. A different machine can be another.\n\nThat means you can run the server where the code lives — local workstation, dev box, server farm - and attach views from wherever is convenient.\n\nJuggler connects to the usual suspects: Claude Code (via CLI or API), OpenAI (codex plan or API), Gemini, Ollama, OpenRouter, Z.AI, Deepseek, etc. It's easy to add more providers, so if yours is missing, ask your friendly neighbourhood LLM to add it as a PR.\n\nThe idea with the extensions system is that most people won't need to actually build the app. If you do, see [ CONTRIBUTING.md](/juggler-ai/juggler/blob/develop/CONTRIBUTING.md) for the full setup. The short version:\n\n```\ngit clone --recurse-submodules https://github.com/juggler-ai/juggler.git\ncd juggler && make build\n```\n\nIf you already cloned without `--recurse-submodules`\n\n, fetch them with:\n\n```\ngit submodule update --init --recursive\n```\n\nWindows binaries cross-compile from any host with `make build-windows`\n\n; the Linux desktop app must be built natively.\n\nJuggler is a simple native app without baggage. The backend is Go, using Wails for windowing. The UI is HTML/JS served by the Go backend. Session documents are stored and synchronised with Yjs. Extensions are JavaScript. It doesn't use electron.\n\nThe frontend is type-checked JavaScript rather than TypeScript: types live in JSDoc and are enforced in CI with strict static linting. There's no build step between source and what ships.\n\nSee [ CONTRIBUTING.md](/juggler-ai/juggler/blob/develop/CONTRIBUTING.md) for setup, test commands, and project conventions. For security issues, please use the private channel described in\n\n[rather than the public issue tracker.](/juggler-ai/juggler/blob/develop/SECURITY.md)\n\n`SECURITY.md`\n\nJuggler's application code is licensed under the [GNU Affero General Public License v3.0 or later](/juggler-ai/juggler/blob/develop/LICENSE). The extension SDK (`web/sdk/`\n\n) and the bundled extensions (`web/extensions/`\n\n) are licensed under [Apache-2.0](/juggler-ai/juggler/blob/develop/web/sdk/LICENSE), so you can build extensions — including closed-source ones — with no copyleft obligation. See [ LICENSING.md](/juggler-ai/juggler/blob/develop/LICENSING.md) for the full map.\n\nFor the AGPL parts you're free to use, modify, and redistribute — but any modified version you distribute or host as a service must also be released under the AGPLv3. If you want to do something closed-source with it, contact me to discuss commercial licensing.", "url": "https://wpnews.pro/news/show-hn-juggler-an-open-source-gui-coding-agent-by-the-creator-of-juce", "canonical_source": "https://github.com/juggler-ai/juggler", "published_at": "2026-07-12 18:28:15+00:00", "updated_at": "2026-07-14 15:01:36.664756+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools"], "entities": ["Juggler", "Jules Storer", "JUCE", "Claude Code", "OpenAI", "Gemini", "Ollama", "OpenRouter"], "alternates": {"html": "https://wpnews.pro/news/show-hn-juggler-an-open-source-gui-coding-agent-by-the-creator-of-juce", "markdown": "https://wpnews.pro/news/show-hn-juggler-an-open-source-gui-coding-agent-by-the-creator-of-juce.md", "text": "https://wpnews.pro/news/show-hn-juggler-an-open-source-gui-coding-agent-by-the-creator-of-juce.txt", "jsonld": "https://wpnews.pro/news/show-hn-juggler-an-open-source-gui-coding-agent-by-the-creator-of-juce.jsonld"}}