jigbee docs
Guide

CLI and API

The Mac app is a shell around a local core, jigbee, which you can run on its own.

Commands

jigbee ui --port 8787      # the web app and API the Mac app uses
jigbee ping                # model, browser helper, desktop helper: what is reachable
jigbee ask "what did you find out last time?"   # one message, chat or job, as the app would
jigbee run "Open https://example.com and tell me the heading"   # one job, printing each action
jigbee memory              # what it remembers; `jigbee memory --forget <id|all>`
jigbee app                 # open the Mac app
jigbee mcp                 # jigbee as an MCP server over stdio, for other agents

Let other agents use jigbee

jigbee mcp exposes the running app to any MCP client: start_job, job_status, wait_for_job, list_sessions, what_jigbee_remembers. Jobs still pause for you in the app at the same gates.

claude mcp add jigbee -- jigbee mcp        # Claude Code
codex mcp add jigbee -- jigbee mcp         # Codex CLI

Sessions API

Everything the app does goes through HTTP on 127.0.0.1:

POST /api/sessions                {"message": "..."}   start a session
GET  /api/sessions                            list
GET  /api/sessions/:id?after=N                events since N, status, pending confirm
POST /api/sessions/:id/message               add to a running job (steer) or queue
POST /api/sessions/:id/confirm | deny        answer a pause
POST /api/sessions/:id/pause | resume | stop
GET  /api/sessions/:id/files/:name           a report or screenshot
GET  /api/memory   DELETE /api/memory/:id    what it remembers
GET  /api/stats                              jobs, steps, spend, token split
GET  /api/status                             model, browser, Chrome
GET  /api/coders   GET|POST|DELETE /api/repos  coding: coders found, allowed repos
GET|POST|DELETE /api/plugins                 MCP servers (plugins)

The API answers on 127.0.0.1 only and refuses requests a browser marks as coming from another site, or with a Host that is not local. Every state-changing call also carries X-Jigbee-Token: the page gets it when it is served, the app and scripts pass it in, and anything else on your Mac reads it from ~/Library/Application Support/jigbee/ui.token.

A session carries a needs_confirm flag with confirm_kind of action, question, desktop, budget or login, and the question text.

Evals

python3 scripts/evals.py                       # the public suite, cold then warm
python3 scripts/evals.py --jobs flights-clt-sfo
python3 scripts/evals.py --chrome              # read-only jobs in your signed-in Chrome
scripts/install_nightly_evals.sh               # 03:30 every night, publishes the badge