# Juggler

> A GUI coding agent that lays a session out as an editable tree in Finder-style Miller columns

- Category: AI Coding / Autonomous Coding Agents
- Language: JavaScript
- Licence: AGPL-3.0
- Repository: https://github.com/juggler-ai/juggler
- Website: https://juggler.studio
- Canonical page: https://ai-tldr.dev/tools/juggler/
- Updated: 2026-07-14

## In short

Juggler is an open-source coding agent with a graphical workbench instead of a terminal transcript, built by Jules Storer, the developer behind JUCE, Tracktion and Cmajor. It sits in the Autonomous Coding Agents category of the AI Coding tools and is open-source, written in JavaScript and licensed AGPL-3.0. To get started: download a build.

## Overview

Juggler is an open-source coding agent with a graphical workbench instead of a terminal transcript, built by Jules Storer, the developer behind JUCE, Tracktion and Cmajor. Its premise is that using a coding agent means reading and editing large blocks of text under a firehose of information, and that a scrolling chat log is a poor surface for that. So a Juggler session is a tree laid out in Finder-style Miller columns: tool calls, approvals, item properties and raw context sit side by side and you navigate rather than scroll.

The session is a Yjs document on disk, not a transcript. You can create sub-threads, drill into them, backtrack, compare branches and edit what is there. Because it is a document, quitting and relaunching resumes every conversation exactly where it was — including states like an agent waiting for your approval, so the dialog is still there after a restart. Everything is inspectable: select the system prompt to see exactly what the model was told and which tools it may call, or click the footer's token count to read back what a past turn actually sent.

It is extensible in JavaScript — context items, slash commands, LLM loop strategies and their UIs are all extensions you can inspect, fork or replace, and MCP servers and skills plug into the same model so their tools arrive as inspectable, approvable items. The app runs locally, remotely, or both at once: a headless `juggler` server can host a long-lived session that the native desktop app and browser tabs attach to simultaneously. Models come from your existing subscriptions or keys — the README names Claude Code (CLI or API), OpenAI (Codex plan or API), GitHub Copilot, Gemini, Mistral, Z.ai, Ollama, OpenRouter and DeepSeek. It is free, needs no signup, and is licensed AGPL-3.0.

## What it does

- Miller-column workbench: tool calls, approvals, item properties and raw context laid out for navigation instead of scrolling
- Sessions are trees, not transcripts — create sub-threads, drill down, backtrack, compare and edit
- Persistent and stateful: a session is a Yjs document on disk, so a restart resumes even a pending approval dialog
- Full inspectability — read the exact system prompt and tool list, and replay what any past turn actually sent
- JavaScript extensions for context items, slash commands, LLM loop strategies and their UIs; MCP servers and skills use the same model
- Local, remote or both: a headless server plus desktop and browser clients can attach to one session at the same time
- Bring your own model — Claude Code, OpenAI/Codex, GitHub Copilot, Gemini, Mistral, Z.ai, Ollama, OpenRouter, DeepSeek and others

## Getting started

Every download contains the same two parts: the native desktop app, and `juggler`, a headless command-line server for long-lived, remote or network-accessible sessions. No signup is required.

1. Download a build

   Builds come from the GitHub releases page or from juggler.studio.

```bash
open https://github.com/juggler-ai/juggler/releases
```

2. Install for your platform

   On macOS, open the .dmg and drag Juggler to Applications — Gatekeeper may block the first launch, so right-click the app and choose Open. On Windows, run Juggler-<version>-setup.exe, which installs the app and the matching juggler.exe server together. On Linux, download the juggler server binary and connect from a browser or the desktop app.

3. Run the headless server

   The server has no window of its own. Type `w` into its terminal to open the desktop app, or use the browser URL it prints. This is the path for remote machines, containers and CI hosts with no display.

```bash
juggler
```

4. Connect your model and MCP servers

   Juggler talks to the usual providers using the subscription you already pay for or your own API keys. Point it at an MCP server (see docs/mcp.md in the repository) and its tools arrive as inspectable, approvable items alongside the built-ins.

## When to use it

- Staying hands-on with what an agent is doing to a codebase, rather than reading a scrolling log after the fact
- Branching a long agent session into sub-threads and comparing the results
- Keeping a long-lived agent session on a remote machine and attaching to it from a laptop browser
- Auditing exactly what a past turn sent to the model, token count included

## Version history

- 2026-07-14 v0.3.7: Juggler was released publicly as an open-source GUI coding agent, showing agent runs as an editable tree in a Miller-column interface rather than a single scrolling chat.
