juggler-ai/juggler

The Juggler Code Agent

Juggler – Visual workbench for AI coding agents

What it is

  • A desktop (and web) application that lets you run an AI coding agent next to the code it is working on. The UI shows the full conversation as a tree, lets you inspect every model request/response, and manage tool calls (e.g., read, write, bash).
  • The backend is a Go server (juggler) that can run locally, on a dev box, or on a remote server. The same session can be opened from the native app, a browser, or multiple clients at once.

Why it matters

  • Transparency – you can open any LLM transaction and see the exact system prompt, messages, tool schemas, token usage and timing. No hidden “chat window”.
  • Context surgery – the conversation is a navigable tree; you can branch off a sub‑thread, move or copy items, and undo changes, keeping the main context clean.
  • Vendor‑neutral – works with Anthropic/Claude, OpenAI/Codex, GitHub Copilot, Gemini, Ollama, OpenRouter, Mistral, DeepSeek, etc. You bring your own API keys; Juggler never proxies traffic.
  • Extensible – extensions are written in JavaScript using an Apache‑2.0 SDK. You can add new tools, strategies, slash‑commands, UI cards, or MCP (Model‑Control‑Protocol) integrations without rebuilding the whole app.

How you use it

  1. Download the pre‑built binary for macOS, Windows or Linux (or build from source – Go 1.26+, submodules). The package contains:
    • juggler – headless server that hosts the session and serves the web UI.
    • Juggler.app / juggler-app – native desktop client.
  2. Run the server (juggler). It prints a localhost URL and QR code. Press b to open the browser, w to launch the desktop client, or p/--public to allow LAN access.
  3. Connect from the desktop app or any browser. The UI shows Miller‑column panes for the tree, tool calls, and file viewers.
  4. Interact with your coding agent: send prompts, let the agent call tools, inspect each turn, branch into sub‑threads, approve or deny tool executions, and resume later – the whole session is persisted on disk.

Key technical bits

  • Backend: Go + Wails (native windowing). No Electron; UI is pure HTML/JS served by the Go process.
  • Collaboration: Session documents are stored with Yjs, enabling multiple clients to view/edit the same live tree.
  • Extensions: JavaScript SDK; bundled extensions provide common tools (read, write, bash). You can scaffold new extensions via the CLI and hot‑reload them.
  • MCP support: Juggler can act as a client for external Model‑Control‑Protocol servers, showing the exact schema sent to the model and the tool results.
  • Licensing: Core app under AGPL‑v3 (requires source release for hosted services). Extension SDK and examples are Apache‑2.0, allowing closed‑source plugins.

Who it’s for

  • Developers who want to keep the AI agent close to their codebase and see exactly what the model sees.
  • Teams needing a shared, persistent workbench for AI‑assisted coding, debugging, or research.
  • Anyone building custom tools or MCP servers and needing a visual debugger.

Where to get help


All information above is taken directly from the repository’s README.

Related

  • Dispatch
  • Project
  • Project
  • Project
  • Project