Skip to main content

panopticon

Agents write the code, you own what ships.

Panopticon is a terminal-native control plane for running multiple coding agents. It drives Claude Code, Codex, or pi for each task and gives you one place to supervise the fleet.

  • A live dashboard of all your tasks, showing which agents are working and which are blocked waiting on you, so you stop cycling through terminals to find the one that's stuck.
  • Configurable workflows that make approval points explicit and prevent Panopticon from advancing a task until the current stage is resolved.
  • Isolated by default: each agent works in its own container on its own branch so concurrent tasks do not share workspaces.

Self-hosted: your infrastructure, your secrets, your repos. Workflows control Panopticon's state transitions; they do not restrict the commands an agent can execute. Use least-privilege credentials and forge branch protection as hard controls. Containers separate workspaces but are not a security boundary against a malicious or compromised agent. Quickstart reuses one shared panopticon.env by default; configure a distinct environment file per repo when credential separation matters. Panopticon is a ground-up rewrite of the cloude-cade prototype and is in active development.

New here? Follow the new-user walkthrough. For the mental model behind the dashboard, read docs/overview.md.

The dashboard

The whole fleet in one terminal view — every task's state, whose turn it is (agent or you), its container status, and its repo and slug:

══════════════════════════════════════════════════════════════════════════
  panopticon                                                6 tasks
──────────────────────────────────────────────────────────────────────────
  state          turn       container   repo       slug[memo]
  ITERATING      agent      live        web-api    add-oauth[Add OAuth login]
  PLANNING       user       live        web-api    fix-upload[Flaky S3 upload]
  MERGING        agent      starting    dashboard  dark-mode[Dark-mode theme]
  ITERATING      user ⚠     down        web-api    migrate-db[Move to Postgres]
  ORCHESTRATING  agent      live        infra      q3-cleanup[Q3 tech-debt]
  PLANNING       agent      live        infra      └─ drop-py38[Drop Python 3.8]
  COMPLETE       agent      –           web-api    ship-readme[README refresh]
──────────────────────────────────────────────────────────────────────────
  t attach   n new task   x drop   / search   d detail   ? help   q quit
══════════════════════════════════════════════════════════════════════════

The turn column is color-coded live — green when the agent is working, yellow when it's your move, red () when a task is blocked waiting on you — so you can tell at a glance which agents need you. The container column tracks each agent's sandbox as it spawns (queued → … → live, or down when one needs a respawn), and governed sub-tasks nest under their governor (└─). Press t to drop into any task's session, ? for the full key list.

Requirements

Panopticon runs the control plane on your host and each agent in its own container, so it shells out to a few host tools. You need:

  • Python 3.11+
  • Docker, with the daemon running
  • tmux: the dashboard, console supervisor, and task sessions run on a dedicated tmux -L panopticon server
  • git: the session service clones a per-task workspace for each agent
  • At least one registered agent harness CLI (claude, codex, pi, or outfitter): quickstart detects installed choices and configures the selected default. Guided authentication is available for all four; Outfitter uses Pi provider credentials and prepares its profile directory. Use Claude or Codex for the first GitHub workflow below. Pi and Outfitter can run compatible workflows, but their current adapters cannot execute workflow skills that require Panopticon's MCP tools.

panopticon quickstart checks these first; run panopticon doctor to re-check any time.

Install

Panopticon is a command-line app, so pipx is the recommended way to install it: it puts the panopticon command on your PATH in its own isolated environment. If command -v pipx prints nothing, install pipx first:

# macOS
brew install pipx

# Ubuntu or Debian
sudo apt-get update
sudo apt-get install --yes pipx

Make commands installed by pipx available in future shells, then close this terminal and open a new one so the PATH change takes effect:

pipx ensurepath

In that new terminal, install the versioned evaluator build:

pipx install panopticon-next==0.0.6
panopticon --version

Expected result: panopticon --version prints panopticon 0.0.6 without requiring a checkout or uv.

The distribution is panopticon-next, but the command you run and the package you import are both panopticon. To work from a checkout, run uv sync and then uv run panopticon doctor.

Quickstart

Run panopticon quickstart from inside the repo you want agents to work on: it registers whatever repo you're in as the target for your tasks.

cd ~/code/my-project   # the repo you want agents to work on
panopticon quickstart  # first-time setup, then open the dashboard

panopticon quickstart checks prerequisites, detects installed/authenticated harnesses, asks you to confirm or choose the repo default, brings the stack up, registers the repo, and drops you into a setup-repo task for that harness's auth flow. Then you create tasks and watch your fleet from the dashboard.

The setup task completes only after both the selected agent client and GitHub credentials pass their checks. It then reports All required task-container credentials are configured. and returns you to the dashboard.

Quickstart enables task-service authentication automatically. On Linux, the task service binds to 0.0.0.0 so bridge containers can reach it; restrict reachable interfaces with a firewall or encrypted, access-controlled transport before running on an untrusted network. On macOS it binds to loopback. See docs/auth.md.

Your first task

This GitHub walkthrough currently requires a Claude or Codex task. On the dashboard:

  1. Create it. Press n, pick the repo, and choose github-self-reviewed for the shortest walkthrough: you perform its approval. github-peer-reviewed instead requires another person to approve the PR. For a predictable test, enter Add a hello-panopticon.txt file containing hello from Panopticon and do not change any other files. A new task row appears under the selected repo.
  2. Watch it start. The task's container column moves queued → … → live as the runner spawns its container; once it's live the agent starts on its own branch and begins planning automatically.
  3. Respond when it needs you. The turn column shows whether the agent is working or waiting on you. Press t to attach to its session, then detach with Ctrl-b d (or your own tmux prefix + d) to return to the same dashboard and highlighted task.
  4. Open and approve the plan. When plan.md is ready, press a, select plan.md, and press Enter. Press t to attach again, give any correction, and invoke the advance operation: /advance in Claude or $advance in Codex. The dashboard advances to ITERATING while the agent implements and tests the change. The workflow guide documents command syntax for the other harnesses and workflows they support.
  5. Review what ships. The agent opens a PR; press p on the dashboard to open it in your browser. For the example request, the PR should add only hello-panopticon.txt, containing one line: hello from Panopticon. Attach and invoke advance with the same harness-specific syntax to approve the self-reviewed gate. The task moves through MERGING; success is a merged PR and a COMPLETE dashboard task with no remaining task container. Configure GitHub branch protection as the hard merge control.

When you finish evaluating Panopticon, run panopticon stop. It stops Panopticon task containers and its dedicated tmux server; stored configuration, credentials, task records, and artifacts remain on disk. Verify teardown with:

docker ps --filter label=panopticon.task
tmux -L panopticon has-session 2>/dev/null; test $? -ne 0

Both checks exit successfully when teardown is complete: Docker lists no Panopticon task containers and the dedicated tmux server is gone. Running panopticon stop again also succeeds.

Configuration

Panopticon stores its data under standard XDG locations, each overridable by an environment variable (resolution is $PANOPTICON_*$XDG_*_HOME/panopticon → the default below):

What Default location Override
Database ~/.local/share/panopticon/panopticon.db PANOPTICON_DB (or PANOPTICON_DATA)
Artifacts + per-task clones ~/.local/share/panopticon/ PANOPTICON_DATA
Layers, secrets, workflows ~/.config/panopticon/ PANOPTICON_CONFIG (workflows also via the --workflows-path flag)
Per-repo clone cache ~/.cache/panopticon/repos/ PANOPTICON_CACHE

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

panopticon_next-0.0.6-py3-none-any.whl (369.6 kB view details)

Uploaded Python 3

File details

Details for the file panopticon_next-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: panopticon_next-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 369.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for panopticon_next-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2b54495bf5168fd9f01db74ade662efe185fcb5ce4847786b44b5db1dc0b6b26
MD5 8aa07d916cf346d8a913c816132c5844
BLAKE2b-256 177940e6f8f846597474eb9ad3f9c8f870c5d50b659f61a7b68caed1d26a3f20

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

1 file

0.2.7

1 file

This release

0.0.6 This release

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page