[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:contrabass":3},"\u003Cdiv align=\"center\">\u003Ch1>Contrabass\u003C\u002Fh1>\n\u003Cimg alt=\"Contrabass Logo\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fjunhoyeo\u002Fcontrabass\u002Fmain\u002F.github\u002Fassets\u002Fcontrabass.png\" width=\"300px\" \u002F>\u003Cblockquote>\n\u003Cp>\u003Cstrong>A project-level orchestrator for AI coding agents\u003C\u002Fstrong> \u003Cbr \u002F>\nGo + Charm stack reimplementation of OpenAI's Symphony (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fsymphony\" rel=\"nofollow ugc noopener\">openai\u002Fsymphony\u003C\u002Fa>) — manage work, not agents\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fjunhoyeo\u002Fcontrabass\u002Fmain\u002F.github\u002Fassets\u002Fdemo.png\" alt=\"Contrabass Demo (TUI in Action)\" \u002F>\u003C\u002Fp>\n\u003C\u002Fdiv>\u003Cp>Contrabass is a terminal-first orchestrator for issue-driven agent runs, with an optional local web dashboard for live visibility.\u003C\u002Fp>\n\u003Ch2>Current scope\u003C\u002Fh2>\n\u003Cp>Today Contrabass ships with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A Cobra CLI with TUI, headless, and optional embedded web dashboard modes\u003C\u002Fli>\n\u003Cli>A \u003Ccode>WORKFLOW.md\u003C\u002Fcode> parser with YAML front matter, Liquid prompt rendering, and \u003Ccode>$ENV_VAR\u003C\u002Fcode> interpolation\u003C\u002Fli>\n\u003Cli>Issue tracker adapters for \u003Cstrong>Linear\u003C\u002Fstrong>, \u003Cstrong>GitHub Issues\u003C\u002Fstrong>, and a built-in \u003Cstrong>Internal Board\u003C\u002Fstrong> (local filesystem, no external service required)\u003C\u002Fli>\n\u003Cli>Agent runners for \u003Cstrong>Codex app-server\u003C\u002Fstrong>, \u003Cstrong>OpenCode\u003C\u002Fstrong>, \u003Cstrong>oh-my-opencode\u003C\u002Fstrong>, \u003Cstrong>OMX (oh-my-codex)\u003C\u002Fstrong>, and \u003Cstrong>OMC (oh-my-claudecode)\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Git-worktree-based workspace provisioning under \u003Ccode>workspaces\u002F&lt;issue-id&gt;\u003C\u002Fcode> with non-git fallback for repositories without git\u003C\u002Fli>\n\u003Cli>Teams: multi-agent coordination with a local task board, phased pipeline (plan → exec → verify), live TUI team table, and dual worker modes (tmux-based multi-process or goroutine-based in-process)\u003C\u002Fli>\n\u003Cli>An orchestrator with claim\u002Frelease, BlockedBy gating, orphan claim recovery, branch advance verification, stall detection, deterministic retry backoff, liveness snapshots with agent stage classification and ETA estimation\u003C\u002Fli>\n\u003Cli>A Charm v2 terminal UI built with Bubble Tea, Bubbles, and Lip Gloss\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ziikoo\u003C\u002Fstrong> — a React dashboard (neo-brutalism theme, shadcn + Tailwind v4) with a three-pane IDE-style layout, live SSE streaming, queue navigation, stage progression pills, completion ETAs, issue detail sheets with Linear metadata and workflow timelines, team\u002Fworker tables, agent logs, and zh-CN localization\u003C\u002Fli>\n\u003Cli>Go unit\u002Fintegration tests, TUI snapshot tests, and dashboard component\u002Fhook tests\u003C\u002Fli>\n\u003Cli>A tmux-based multi-process worker mode (default) alongside the in-process goroutine mode, with JSONL event logging, file-based heartbeats, dispatch queue, governance policies, and crash recovery\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Requirements\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Go 1.25+\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bun 1.3+\u003C\u002Fstrong> for the dashboard\u002Flanding workspace\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Git\u003C\u002Fstrong> (workspace creation uses \u003Ccode>git worktree\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>tmux\u003C\u002Fstrong> (required for the default tmux worker mode in team runs; not needed for goroutine mode)\u003C\u002Fli>\n\u003Cli>A supported agent runtime:\u003Cul>\n\u003Cli>\u003Ccode>codex app-server\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>opencode serve\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcode-yeongyu\u002Foh-my-openagent\" rel=\"nofollow ugc noopener\">\u003Ccode>oh-my-opencode\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ccode>omx\u003C\u002Fcode> (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYeachan-Heo\u002Foh-my-codex\" rel=\"nofollow ugc noopener\">oh-my-codex\u003C\u002Fa> team runtime)\u003C\u002Fli>\n\u003Cli>\u003Ccode>omc\u003C\u002Fcode> (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYeachan-Heo\u002Foh-my-claudecode\" rel=\"nofollow ugc noopener\">oh-my-claudecode\u003C\u002Fa> team runtime)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Tracker credentials for the backend you use:\u003Cul>\n\u003Cli>Linear: \u003Ccode>LINEAR_API_KEY\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>GitHub: \u003Ccode>GITHUB_TOKEN\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>From a fresh clone, run \u003Ccode>bun install\u003C\u002Fcode> once before using the JS\u002Flanding build and test commands.\u003C\u002Fp>\n\u003Ch2>Installation\u003C\u002Fh2>\n\u003Ch3>Homebrew (macOS\u002FLinux)\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">brew install junhoyeo\u002Fcontrabass\u002Fcontrabass\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Download from GitHub Releases\u003C\u002Fh3>\n\u003Cp>Pre-built binaries for macOS and Linux (amd64\u002Farm64) are available on the\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjunhoyeo\u002Fcontrabass\u002Freleases\" rel=\"nofollow ugc noopener\">Releases\u003C\u002Fa> page.\u003C\u002Fp>\n\u003Ch3>Build from source\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">git clone https:\u002F\u002Fgithub.com\u002Fjunhoyeo\u002Fcontrabass.git\ncd contrabass\nbun install\nmake build\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>make build\u003C\u002Fcode> first builds \u003Ccode>packages\u002Fdashboard\u002Fdist\u002F\u003C\u002Fcode> and then embeds it into the Go binary.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> \u003Ccode>go install github.com\u002Fjunhoyeo\u002Fcontrabass\u002Fcmd\u002Fcontrabass@latest\u003C\u002Fcode> works for the\nCLI and TUI, but the embedded web dashboard (\u003Ccode>--port\u003C\u002Fcode>) will be empty because \u003Ccode>go install\u003C\u002Fcode>\ndoes not run the JS build step.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>Quick start\u003C\u002Fh2>\n\u003Ch3>Run with the demo workflow\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\">LINEAR_API_KEY=your-linear-token \\\n.\u002Fcontrabass --config testdata\u002Fworkflow.demo.md\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Run with the embedded web da\u003C\u002Fh3>\n",1784240407045]