cd /news/ai-tools/codey-a-multi-agent-workbench-for-cl… · home topics ai-tools article
[ARTICLE · art-70184] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=· neutral

Codey – A multi-agent workbench for Claude Code, Codex and OpenCode

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.

read8 min views4 publishedJul 23, 2026
Codey – A multi-agent workbench for Claude Code, Codex and OpenCode
Image: source

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.

Think of it less as a chat bridge and more as the control plane for the coding agents you already use.

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).

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.

Grab the latest macOS app from the Releases page:

  • Apple Silicon: Codey-<version>-arm64.dmg

  • Intel: Codey-<version>.dmg

Builds are currently unsigned — on first launch, right-click the app → Open → confirm to bypass Gatekeeper.

Agent management

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

Workspaces & workers

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

Interfaces

macOS menu-bar app with multi-chat tabs, workspace switcher, and inline settingsChat 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 onHealth endpoints**: Built-in health check and metrics

Automation & web

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 approvalExternal 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

This is a monorepo with three workspaces: @codey/core

, @codey/gateway

, and codey-mac

.

npm install

npm run build

cp gateway.json.example gateway.json

npm run configure

npm start

To run the macOS app in development:

npm run dev -w codey-mac        # dev with hot reload
npm run build:mac -w codey-mac  # produce a DMG in codey-mac/release/

Edit gateway.json

:

{
  "gateway": {
    "port": 3000,
    "defaultAgent": "claude-code",
    "defaultModel": "claude-sonnet-4-20250514"
  },
  "channels": {
    "telegram": { "enabled": true, "botToken": "YOUR_TOKEN" },
    "discord": { "enabled": false, "botToken": "" },
    "imessage": { "enabled": false }
  },
  "agents": {
    "claude-code": { "enabled": true, "provider": "anthropic", "defaultModel": "claude-sonnet-4-20250514" },
    "opencode": { "enabled": true, "provider": "openai", "defaultModel": "gpt-4.1" },
    "codex": { "enabled": true, "provider": "openai", "defaultModel": "gpt-5-codex" }
  },
  "profiles": [
    {
      "name": "default",
      "anthropic": { "apiKey": "sk-..." },
      "openai": { "apiKey": "sk-..." }
    }
  ],
  "activeProfile": "default",
  "dev": {
    "logLevel": "info"
  }
}

Advisor (auto-dispatch + team routing) settings: advisor.{agent, model}

(optional).

workspaces/
├── default/
│   ├── workspace.json       # Workspace config (workingDir + workers)
│   ├── memory.md            # Project memory/notes
│   └── workers/
│       ├── architect.md
│       └── executor.md
├── project-a/
│   ├── workspace.json
│   ├── memory.md
│   └── workers/
│       └── ...
└── project-b/
    ├── workspace.json
    ├── memory.md
    └── workers/
        └── ...

Each workspace ties to a project directory via workspace.json

:

{
  "workingDir": "/path/to/project",
  "workers": {
    "architect": {
      "codingAgent": "claude-code",
      "model": "claude-opus-4-6",
      "tools": ["file-system", "git", "web-search"]
    }
  }
}

Switching workspaces (/workspace myproject

) automatically sets the agent's working directory.

Each worker is defined in a markdown file:


## Role
Lead architect responsible for project planning...

## Soul
Strategic thinker, focused on scalability...

## Coding Agent
claude-code

## Model
claude-opus-4-20250514

## Tools
file-system, git, web-search

## Relationship
Leads the implementation workers

## Instructions
When prompted, analyze requirements and provide...
Command Description
/workers
List all workers in current workspace
/worker <name> <task>
Run a specific worker
/team <name> [--all] <task>
Run a named team (see below)

Team dispatch details:

/team <name> [--all] <task>

— Run a named team. Members run sequentially with carry chain.- Teams default to dispatch: 'all'

(every member runs). - Teams configured with dispatch: 'auto'

first invoke the built-in Advisor that selects the relevant subset. Pass--all

to bypass it for one call. - Optional dispatchHint

on each worker'sconfig.json

improves routing accuracy. - The Advisor's agent/model is configured under gateway.json

advisor.{agent, model}

, defaulting to the gateway's default agent/model. - Teams configured with dispatch: 'parallel'

run as anAdvisor-moderated roundtable: all workers run concurrently as long-lived agent sessions, sharing opinion files inchats/<chatId>/discussion/

. An Advisor loop evaluates progress, maintains a summary, and decides when to ask the user, continue, or terminate. Optional settings underparallel: { maxDurationMs, idleTimeoutMs, advisorPollMs }

. Seedesign spec.

  • Teams default to
Command Description
/workspaces
List all workspaces
/workspace <name>
Switch to a workspace
Command Description
/parallel <prompt>
Run all agents in parallel
/all <prompt>
Run all agents in parallel
/agent <name>
Switch default agent
Command Description
/help
Show help message
/status
Show gateway status
/clear
Clear conversation history
/reset
Start a new conversation
/model <name>
Show/set model
/workspace myproject

/workers

/worker architect design a REST API

/team build a todo app

/parallel create a hello world app

System-wide push-to-talk dictation. Hold the configured hotkey (default Fn

), speak, release — Codey transcribes and pastes into whatever text field is focused, no matter which app you're in.

Transcription backends:

Local (WhisperKit)— on-device CoreML / Neural Engine. Models pulled from HuggingFace on first use; default islarge-v3-turbo

quantized (~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

endpoint. Just pointapiUrl

/apiKey

/apiModel

(e.g.whisper-1

,gpt-4o-transcribe

).

HUD overlay:

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

Controls:

Hotkey(defaultFn

) — toggle recording on / off. Configurable to F-keys or modifier combos (Cmd+Shift+V

, etc.)Esc while recording— cancel without transcribing (buffer discarded)

Configure 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).

Requires Microphone and Accessibility permissions (the app prompts on first launch).

The gateway exposes health endpoints on port + 1

:

GET /health

  • Full status JSONGET /metrics

  • Prometheus-style metricsGET /ready

  • Readiness check

npm run configure              # Interactive configuration
npm run status                 # Show config
npm run set-agent claude-code  # Set default coding agent
npm run set-model              # Set default model
npm run tui                    # Launch terminal UI
npm run build                  # Build all workspaces

For everything else (channels, profiles, API keys), edit gateway.json

directly or use the macOS app's Settings panel.

packages/
├── core/                # Shared types, workspace + worker managers
│   └── src/
└── gateway/             # Gateway server, channels, agents
    └── src/
        ├── agents/      # Coding agent adapters (claude-code, opencode, codex)
        ├── channels/    # Chat platform handlers (telegram, discord, imessage)
        ├── config.ts
        ├── conversation.ts
        ├── gateway.ts
        ├── health.ts
        ├── logger.ts
        └── index.ts
codey-mac/               # macOS menu-bar app (Electron + React)
├── electron/            # Main + preload processes
└── src/                 # Renderer (React UI)
voice/                   # Native Swift helper for hotkey + capture + WhisperKit
└── Sources/CodeyVoice/  # AudioCapture, HotkeyManager, HudOverlay, WhisperKitEngine, ...
workspaces/              # Per-workspace config, memory, and workers

codey-mac auto-updates via electron-updater from GitHub Releases.

Required repo secrets (Settings → Secrets and variables → Actions):

CSC_LINK

— base64 of the Apple Developer ID.p12

certificateCSC_KEY_PASSWORD

— password for that.p12

APPLE_ID

— Apple ID email used for notarizationAPPLE_APP_SPECIFIC_PASSWORD

— app-specific password for that Apple IDAPPLE_TEAM_ID

— Apple developer team ID (N59NN58KB2

)

(GITHUB_TOKEN

is provided automatically.)

To ship a release:

  • Bump the version in package.json

andcodey-mac/package.json

. - Commit, then tag: git tag vX.Y.Z && git push origin vX.Y.Z

. - The Release codey-mac

workflow builds, signs, notarizes, and publishes the dmg + zip +latest-mac.yml

to the GitHub Release. - Installed apps detect the new version on next launch (or within ~4h) and show the update button in the sidebar footer.

── more in #ai-tools 4 stories · sorted by recency
── more on @codey 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/codey-a-multi-agent-…] indexed:0 read:8min 2026-07-23 ·