{"slug": "codey-a-multi-agent-workbench-for-claude-code-codex-and-opencode", "title": "Codey – A multi-agent workbench for Claude Code, Codex and OpenCode", "summary": "Codey, a multi-agent workbench for coding agents, lets users organize, switch between, and orchestrate Claude Code, OpenCode, and Codex across projects from a native macOS app, chat platforms, or voice input. The tool runs locally, supports parallel agent execution, per-workspace defaults, worker teams, and automation via scheduled tasks and an agent-controlled browser.", "body_md": "**A multi-agent workbench for coding agents.** Codey is one place to organize, switch between, and orchestrate Claude Code, OpenCode, Codex (and more) across your projects — give each project its own workspace, build worker teams with different agents/models per role, run several agents in parallel on the same task to compare, and reach all of it from a native macOS app, chat platforms (Telegram / Discord / iMessage), or system-wide push-to-talk voice.\n\nThink of it less as a chat bridge and more as **the control plane for the coding agents you already use**.\n\n*A scheduled Automation researches the news, drafts a post, and publishes it through Codey's built-in agent-controlled browser — hands-free (2.5× speed).*\n\n**One project, the right agent for each job.** Per-workspace defaults plus per-worker overrides — Architect on Opus, Executor on Codex, Reviewer on local OpenCode, etc.**Run multiple agents in parallel on the same prompt.** Compare Claude Code vs. Codex vs. OpenCode side by side instead of guessing which one fits.**Worker teams instead of single prompts.** Define roles, personalities, tools, and let them run sequentially or be auto-dispatched to the subset that's actually relevant.**Use them from anywhere.** Native macOS menu-bar app for daily driving, chat platforms for delegating from your phone, voice input for hands-free dictation into any focused app.**Local and yours.** Runs on your machine, talks to your accounts, no proxy server in the middle.\n\nGrab the latest macOS app from the [Releases page](https://github.com/its-ahoh/codey/releases/latest):\n\n- Apple Silicon:\n`Codey-<version>-arm64.dmg`\n\n- Intel:\n`Codey-<version>.dmg`\n\nBuilds are currently unsigned — on first launch, right-click the app → **Open** → confirm to bypass Gatekeeper.\n\n**Agent management**\n\n**Multiple coding agents**: Claude Code, OpenCode, Codex (with session resume)** Parallel execution**: Run multiple agents on the same prompt simultaneously to compare** Per-workspace defaults**: Each project picks its own default agent + model** Auto-dispatcher**: Optional built-in dispatcher routes a task to the right subset of a team\n\n**Workspaces & workers**\n\n**Multi-workspace**: Each workspace has its own working directory, memory, and workers** Worker teams**: Define workers with roles, personalities, tools, and per-worker agent/model** Conversation context**: Remembers previous messages within a session\n\n**Interfaces**\n\n**macOS menu-bar app** with multi-chat tabs, workspace switcher, and inline settings**Chat platforms**: Telegram, Discord, iMessage** Voice input (macOS)**: Hotkey-triggered dictation with on-device WhisperKit (CoreML / ANE) or OpenAI-compatible APIs — pastes directly into whichever app you're focused on**Health endpoints**: Built-in health check and metrics\n\n**Automation & web**\n\n**Automations**: Put agents on a schedule — daily posts, recurring checks, cron-style workflows managed from the Mac app** Agent-controlled browser**: A built-in secure browser agents can open, read, click, and fill — view-only by default, with every state-changing action gated on your approval**External MCP servers**: Plug extra tools into your agents from the Mac app's MCP tab** QR pairing**: Link Telegram / iMessage to your gateway by scanning a code\n\nThis is a monorepo with three workspaces: `@codey/core`\n\n, `@codey/gateway`\n\n, and `codey-mac`\n\n.\n\n```\n# Install dependencies (all workspaces)\nnpm install\n\n# Build everything\nnpm run build\n\n# Copy config template\ncp gateway.json.example gateway.json\n\n# Configure (optional)\nnpm run configure\n\n# Start the gateway\nnpm start\n```\n\nTo run the macOS app in development:\n\n```\nnpm run dev -w codey-mac        # dev with hot reload\nnpm run build:mac -w codey-mac  # produce a DMG in codey-mac/release/\n```\n\nEdit `gateway.json`\n\n:\n\n```\n{\n  \"gateway\": {\n    \"port\": 3000,\n    \"defaultAgent\": \"claude-code\",\n    \"defaultModel\": \"claude-sonnet-4-20250514\"\n  },\n  \"channels\": {\n    \"telegram\": { \"enabled\": true, \"botToken\": \"YOUR_TOKEN\" },\n    \"discord\": { \"enabled\": false, \"botToken\": \"\" },\n    \"imessage\": { \"enabled\": false }\n  },\n  \"agents\": {\n    \"claude-code\": { \"enabled\": true, \"provider\": \"anthropic\", \"defaultModel\": \"claude-sonnet-4-20250514\" },\n    \"opencode\": { \"enabled\": true, \"provider\": \"openai\", \"defaultModel\": \"gpt-4.1\" },\n    \"codex\": { \"enabled\": true, \"provider\": \"openai\", \"defaultModel\": \"gpt-5-codex\" }\n  },\n  \"profiles\": [\n    {\n      \"name\": \"default\",\n      \"anthropic\": { \"apiKey\": \"sk-...\" },\n      \"openai\": { \"apiKey\": \"sk-...\" }\n    }\n  ],\n  \"activeProfile\": \"default\",\n  \"dev\": {\n    \"logLevel\": \"info\"\n  }\n}\n```\n\nAdvisor (auto-dispatch + team routing) settings: `advisor.{agent, model}`\n\n(optional).\n\n```\nworkspaces/\n├── default/\n│   ├── workspace.json       # Workspace config (workingDir + workers)\n│   ├── memory.md            # Project memory/notes\n│   └── workers/\n│       ├── architect.md\n│       └── executor.md\n├── project-a/\n│   ├── workspace.json\n│   ├── memory.md\n│   └── workers/\n│       └── ...\n└── project-b/\n    ├── workspace.json\n    ├── memory.md\n    └── workers/\n        └── ...\n```\n\nEach workspace ties to a project directory via `workspace.json`\n\n:\n\n```\n{\n  \"workingDir\": \"/path/to/project\",\n  \"workers\": {\n    \"architect\": {\n      \"codingAgent\": \"claude-code\",\n      \"model\": \"claude-opus-4-6\",\n      \"tools\": [\"file-system\", \"git\", \"web-search\"]\n    }\n  }\n}\n```\n\nSwitching workspaces (`/workspace myproject`\n\n) automatically sets the agent's working directory.\n\nEach worker is defined in a markdown file:\n\n```\n# Worker: Architect\n\n## Role\nLead architect responsible for project planning...\n\n## Soul\nStrategic thinker, focused on scalability...\n\n## Coding Agent\nclaude-code\n\n## Model\nclaude-opus-4-20250514\n\n## Tools\nfile-system, git, web-search\n\n## Relationship\nLeads the implementation workers\n\n## Instructions\nWhen prompted, analyze requirements and provide...\n```\n\n| Command | Description |\n|---|---|\n`/workers` |\nList all workers in current workspace |\n`/worker <name> <task>` |\nRun a specific worker |\n`/team <name> [--all] <task>` |\nRun a named team (see below) |\n\n**Team dispatch details:**\n\n`/team <name> [--all] <task>`\n\n— Run a named team. Members run sequentially with carry chain.- Teams default to\n`dispatch: 'all'`\n\n(every member runs). - Teams configured with\n`dispatch: 'auto'`\n\nfirst invoke the built-in Advisor that selects the relevant subset. Pass`--all`\n\nto bypass it for one call. - Optional\n`dispatchHint`\n\non each worker's`config.json`\n\nimproves routing accuracy. - The Advisor's agent/model is configured under\n`gateway.json`\n\n`advisor.{agent, model}`\n\n, defaulting to the gateway's default agent/model. - Teams configured with\n`dispatch: 'parallel'`\n\nrun as an**Advisor-moderated roundtable**: all workers run concurrently as long-lived agent sessions, sharing opinion files in`chats/<chatId>/discussion/`\n\n. An Advisor loop evaluates progress, maintains a summary, and decides when to ask the user, continue, or terminate. Optional settings under`parallel: { maxDurationMs, idleTimeoutMs, advisorPollMs }`\n\n. See[design spec](/its-ahoh/codey/blob/main/docs/superpowers/specs/2026-05-24-team-parallel-mode-design.md).\n\n- Teams default to\n\n| Command | Description |\n|---|---|\n`/workspaces` |\nList all workspaces |\n`/workspace <name>` |\nSwitch to a workspace |\n\n| Command | Description |\n|---|---|\n`/parallel <prompt>` |\nRun all agents in parallel |\n`/all <prompt>` |\nRun all agents in parallel |\n`/agent <name>` |\nSwitch default agent |\n\n| Command | Description |\n|---|---|\n`/help` |\nShow help message |\n`/status` |\nShow gateway status |\n`/clear` |\nClear conversation history |\n`/reset` |\nStart a new conversation |\n`/model <name>` |\nShow/set model |\n\n```\n# Switch workspace\n/workspace myproject\n\n# List workers\n/workers\n\n# Run a worker\n/worker architect design a REST API\n\n# Run team task\n/team build a todo app\n\n# Run all agents in parallel\n/parallel create a hello world app\n```\n\nSystem-wide push-to-talk dictation. Hold the configured hotkey (default `Fn`\n\n), speak, release — Codey transcribes and pastes into whatever text field is focused, no matter which app you're in.\n\n**Transcription backends:**\n\n**Local (WhisperKit)**— on-device CoreML / Neural Engine. Models pulled from HuggingFace on first use; default is`large-v3-turbo`\n\nquantized (~954 MB). No network, no API key. Pipeline idle-unloads after 30s so RAM/ANE stay free when you're not dictating.**API**— any OpenAI-compatible`/audio/transcriptions`\n\nendpoint. Just point`apiUrl`\n\n/`apiKey`\n\n/`apiModel`\n\n(e.g.`whisper-1`\n\n,`gpt-4o-transcribe`\n\n).\n\n**HUD overlay:**\n\n**Recording**: floating pill with a 5-bar live audio meter so you can see the mic is hearing you** Transcribing**: spinner + \"Transcribing…\"** Inserted**: green check, auto-hide** No focus to paste into**: full transcript shown in a wider card, auto-copied to clipboard, dismiss by click\n\n**Controls:**\n\n**Hotkey**(default`Fn`\n\n) — toggle recording on / off. Configurable to F-keys or modifier combos (`Cmd+Shift+V`\n\n, etc.)**Esc while recording**— cancel without transcribing (buffer discarded)\n\nConfigure everything from the macOS app's **Whisper** tab: pick provider, swap models, download / warm / delete WhisperKit variants, change hotkey or injection mode (paste vs Accessibility API).\n\nRequires Microphone and Accessibility permissions (the app prompts on first launch).\n\nThe gateway exposes health endpoints on `port + 1`\n\n:\n\n`GET /health`\n\n- Full status JSON`GET /metrics`\n\n- Prometheus-style metrics`GET /ready`\n\n- Readiness check\n\n```\nnpm run configure              # Interactive configuration\nnpm run status                 # Show config\nnpm run set-agent claude-code  # Set default coding agent\nnpm run set-model              # Set default model\nnpm run tui                    # Launch terminal UI\nnpm run build                  # Build all workspaces\n```\n\nFor everything else (channels, profiles, API keys), edit `gateway.json`\n\ndirectly or use the macOS app's Settings panel.\n\n```\npackages/\n├── core/                # Shared types, workspace + worker managers\n│   └── src/\n└── gateway/             # Gateway server, channels, agents\n    └── src/\n        ├── agents/      # Coding agent adapters (claude-code, opencode, codex)\n        ├── channels/    # Chat platform handlers (telegram, discord, imessage)\n        ├── config.ts\n        ├── conversation.ts\n        ├── gateway.ts\n        ├── health.ts\n        ├── logger.ts\n        └── index.ts\ncodey-mac/               # macOS menu-bar app (Electron + React)\n├── electron/            # Main + preload processes\n└── src/                 # Renderer (React UI)\nvoice/                   # Native Swift helper for hotkey + capture + WhisperKit\n└── Sources/CodeyVoice/  # AudioCapture, HotkeyManager, HudOverlay, WhisperKitEngine, ...\nworkspaces/              # Per-workspace config, memory, and workers\n```\n\ncodey-mac auto-updates via electron-updater from GitHub Releases.\n\n**Required repo secrets** (Settings → Secrets and variables → Actions):\n\n`CSC_LINK`\n\n— base64 of the Apple Developer ID`.p12`\n\ncertificate`CSC_KEY_PASSWORD`\n\n— password for that`.p12`\n\n`APPLE_ID`\n\n— Apple ID email used for notarization`APPLE_APP_SPECIFIC_PASSWORD`\n\n— app-specific password for that Apple ID`APPLE_TEAM_ID`\n\n— Apple developer team ID (`N59NN58KB2`\n\n)\n\n(`GITHUB_TOKEN`\n\nis provided automatically.)\n\n**To ship a release:**\n\n- Bump the version in\n`package.json`\n\nand`codey-mac/package.json`\n\n. - Commit, then tag:\n`git tag vX.Y.Z && git push origin vX.Y.Z`\n\n. - The\n`Release codey-mac`\n\nworkflow builds, signs, notarizes, and publishes the dmg + zip +`latest-mac.yml`\n\nto the GitHub Release. - Installed apps detect the new version on next launch (or within ~4h) and show the update button in the sidebar footer.", "url": "https://wpnews.pro/news/codey-a-multi-agent-workbench-for-claude-code-codex-and-opencode", "canonical_source": "https://github.com/its-ahoh/codey", "published_at": "2026-07-23 13:04:19+00:00", "updated_at": "2026-07-23 13:22:35.242435+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "large-language-models"], "entities": ["Codey", "Claude Code", "OpenCode", "Codex", "macOS", "Telegram", "Discord", "iMessage"], "alternates": {"html": "https://wpnews.pro/news/codey-a-multi-agent-workbench-for-claude-code-codex-and-opencode", "markdown": "https://wpnews.pro/news/codey-a-multi-agent-workbench-for-claude-code-codex-and-opencode.md", "text": "https://wpnews.pro/news/codey-a-multi-agent-workbench-for-claude-code-codex-and-opencode.txt", "jsonld": "https://wpnews.pro/news/codey-a-multi-agent-workbench-for-claude-code-codex-and-opencode.jsonld"}}