thousand birds / products / quorum

Quorum multi-agent coordination in the notch

A Rust menu-bar agent that turns your MacBook notch into a live command surface for Claude Code and Codex. Approvals, usage, compactions, completed turns — visible without changing windows.

status
public beta
version
v0.4.2
platform
Apple Silicon
renderer
Metal · 60 fps
resident
≤ 24 MB
telemetry
none
§ overview

Stop window-switching to babysit your agents.

The overlay never asks for a window switch. Whatever the agent is doing — waiting, streaming, asking permission, finishing — the current state lives at the top of the screen, where your eyes already pass.

Quorum pairs naturally with Chidori and Tael — a single chord moves your cursor between sessions while telemetry stays queryable from the terminal.

§ states

Six states. Always in view.

01
Idle
No active turn. Quorum sleeps in the notch and stays out of your way.
02
Streaming
Live token activity from the agent — see progress without focusing the tab.
03
Approval
A pending permission request surfaces in the notch. Approve from the keyboard.
04
Compaction
The agent is compacting its context window. You know before the next turn lands.
05
Usage
Token and cost accounting for the running session, always one glance away.
06
Multi-session
A stacked queue of active sessions. One chord steps through them in order.
§ pipeline

Hooks → Quorum → You.

No polling. Claude Code and Codex emit lifecycle events through native hook commands; Quorum receives them on a local socket and renders the notch with Metal. Your move.

01 / Hookclaude / codex config

Both agents call a tiny shell hook on every lifecycle event — no SDK, no daemon to babysit.

claude code · ~/.claude/settings.json
{
  "hooks": {
    "Stop": [
      {
        "type": "command",
        "command": "quorum hook --source claude"
      }
    ]
  }
}
codex · ~/.codex/config.toml
[notify]
command = ["quorum", "hook", "--source", "codex"]
02 / Quorumlocal · Rust + Metal

The Rust agent drives a Metal-rendered island. Settings sync through a Swift helper. Nothing crosses the network.

rust agentserving
metal renderer60 fps
claude transcriptsreading local
codex transcriptsreading local
cloud bytes sent0
03 / You

Carbon-style hotkeys step through pending notifications and focus the iTerm tab running Claude Code or Codex behind each one.

⇧⌘J
jump to session
§ shortcuts

One chord. Right tab.

Notifications stack in the notch. A single chord steps through them and reveals the iTerm tab running the agent behind each one — Claude Code or Codex, doesn't matter. No window picker, no Mission Control.

⇧⌘J
Focus next session
Step forward through pending notifications. Quorum raises the iTerm tab running Claude Code or Codex behind the alert and lands your cursor inside it.
⇧⌘K
Focus previous session
Walk back through the stack. Same jump-to-tab behavior, opposite direction — pair with ⇧⌘J to triage a queue without touching the mouse.
⇧⌘L
Open planning
Pop the planning tab inline in the island so you can read the current Claude Code or Codex plan without leaving your editor.

Every chord is rebindable in Settings → Keyboard Shortcuts.

§ principles

Local first. Native always.

Quorum is built for developer machines, not data centers. It treats the Mac as a first-class operating environment — quirks, notch, launchd, and all — and refuses the usual web-app shortcuts.

0pktssent off-device
Sessions, transcripts, and usage are read from the local Claude Code and Codex data directories and never leave your machine.
60fpsnative Metal
The notch island is drawn by a Metal pipeline written in Rust. No web view, no Electron, no compositor lag.
≤24MBresident
A single menu-bar agent. The Swift settings helper only spawns when you open preferences.
0mspolling interval
No timers asking "is something happening." Hooks fire, the island redraws, the queue updates — push only.
§ install

Download and wire it in.

  1. 01
    Download Quorum

    Apple Silicon only. Public beta build, MIT licensed, no telemetry. quorum.thousandbirds.ai ↗

  2. 02
    Add the Claude Code hook
    {
      "hooks": {
        "Stop": [
          {
            "type": "command",
            "command": "quorum hook --source claude"
          }
        ]
      }
    }
  3. 03
    Or the Codex notify command
    [notify]
    command = ["quorum", "hook", "--source", "codex"]
An overlay for the agentic terminal. Built in Rust, drawn with Metal, scoped to a notch.