ai-setup 5 min read

Juggler – Visual GUI Coding Agent for Developers

Juggler is an open-source desktop coding agent with a visual Miller-column workbench, branching threads, and a plugin system for inspecting and controlling LLM tool calls.

By
Share: X in
Juggler GUI coding agent workbench

TL;DR

TL;DR: Juggler is an open-source GUI coding agent with a visual workbench — Miller columns for browsing tool calls, branching conversation threads, and a JavaScript plugin system. Runs locally as a desktop app or headless server.

What Is Juggler?

Juggler is a coding agent from the creator of Jina AI — and it wears its contrarianism openly: the README leads with “Yes, it’s another AI coding agent. The industry definitely needed one more.”

The angle is GUI-first. Rather than a terminal scroll of LLM output, Juggler gives you a Finder-style Miller column view of your coding session. Tool calls, approval prompts, thread structure, and context are laid out visually — not buried in collapsible chat bubbles.

It ships as a native desktop app (macOS, Windows, Linux) plus a headless CLI server. Multiple clients — desktop, browser tabs, remote machines — can attach to the same session simultaneously.

The session itself is a tree, not a transcript. Any point can branch into a sub-thread. You can drill down, backtrack, compare, and edit the structure directly.

Setup Workflow

Step 1: Download and Install

Download a build from the Releases page or juggler.studio.

macOS:

# Download the .dmg, open it, drag to Applications
# First launch: right-click → Open → Open (bypass Gatekeeper)

Linux (headless):

# Download the juggler server binary
chmod +x juggler
./juggler  # prints URL + QR code for browser connection

Windows: Download Juggler-<version>-setup.exe and run it.

Step 2: Connect to Your Model

Juggler talks to the usual model zoo. On first launch, configure your provider:

  • Claude Code — via CLI or API
  • OpenAI — codex plan or API key
  • Gemini, Ollama, OpenRouter, Z.AI, Deepseek

The server starts automatically with the desktop app. To run headless:

juggler
# Server output:
# Local:   http://localhost:18789
# LAN:     http://192.168.x.x:18789
# Press 'p' to enable public access (no password — LAN only)

Open the URL in any browser to connect.

Step 3: Inspect Your First Tool Call

The Miller column UI works like Finder columns:

  • Left column — thread tree root and branches
  • Center column — selected item (e.g., a read-file call)
  • Right column — item properties and nested sub-threads

Every tool call is inspectable before and after execution. Context, prompts, and responses are all visible as structured objects, not terminal scroll.

Deeper Analysis

Architecture: Plugin-Based at Every Layer

The README is explicit that “everything important is visible and editable.” The core app manages document orchestration — but context items, slash commands, LLM loop strategies, and their UIs are all JavaScript extensions.

Three extension points:

  1. Context items — object types in a conversation (read-file, replace-text, bash, …) control both how it talks to the LLM and how it appears in the UI
  2. Strategies — high-level LLM loops (plan, research, or custom) are plugins
  3. Commands — slash commands like /clear and /compact are plugins

This means if an orchestration idea needs its own UI or visualization, Juggler is a platform for building it — not just a tool that consumes it.

Session Model: Yjs Document, Not Transcript

Most coding agents give you a linear transcript with a rewind button at best. Juggler sessions are Yjs documents — real-time collaborative, persistent, and structured.

Multiple clients can view and drive the same session. The server is localhost-only by default. Press p to enable LAN access (anyone on the network can drive it — no password).

Security Model

  • Local only by default — nothing off your machine can reach the server
  • LAN access — no authentication, so only enable on trusted networks
  • WAN access — built into official studio binaries, not the open-source build

Practical Evaluation Checklist

  • [x] Open-source (AGPL-3.0) with public repository
  • [x] Native desktop app (macOS, Windows) + headless server
  • [x] GUI workbench with Miller column navigation
  • [x] Tree-based session model (not linear transcript)
  • [x] Multiple simultaneous clients (desktop + browser)
  • [x] Plugin architecture for context items, strategies, commands
  • [x] Supports Claude Code, OpenAI, Gemini, Ollama, OpenRouter, Deepseek
  • [x] First launch: Gatekeeper prompt on macOS (workaround documented)

Security Notes

  • The headless server binds to localhost only by default
  • LAN mode has no authentication — only enable on trusted networks
  • WAN access (internet remote access) requires official studio binaries
  • The open-source build does not include WAN components (see LICENSING.md)

FAQ

Q: How is Juggler different from Claude Code or Cursor? A: Both Claude Code and Cursor are primarily terminal or editor-integrated experiences. Juggler’s defining difference is the visual Miller-column workbench — every tool call, thread branch, and context item is a navigable GUI object. The session is a tree you can inspect and edit at any level.

Q: Can I run it without a desktop app? A: Yes. The juggler CLI server runs headless. Open the printed URL in any browser to get the full UI. Multiple browsers (or browser + desktop) can connect to the same session simultaneously.

Q: Does it work offline? A: The server and UI are local. Model providers (Claude Code, OpenAI, etc.) still require internet access for API calls. If you run Ollama locally, that traffic stays offline.

Q: Is the codebase open source? A: Yes — AGPL-3.0 on github.com/juggler-ai/juggler. WAN components are in separate studio binaries (not open source).

Source and Accuracy Notes