Skip to content

Repository files navigation

agent-office

CI License: MIT

The terminal layer for local agent delegation.

Talk to one agent. It stands up the others.

agent-office is a tiny, terminal-native delegation layer. It lets the CLI agent you are already talking to launch and message other local CLI agents in named tmux rooms.

No API proxy. No model adapters. No workflow engine. Just real CLIs in real terminals.

agent-office itself never calls provider APIs or takes over authentication. Each launched CLI keeps its own runtime, account, and terminal.

中文

agent-office demo: one lead agent starts tmux rooms and sends one task to multiple CLI agents

Animated preview · Open the 720p MP4 with audio

30-second quick start

After Bash, tmux, and at least one authenticated CLI agent (claude, codex, or grok) are available:

git clone https://github.com/Mr-AK-AI/agent-office.git
cd agent-office
./agent-office.sh up
./agent-office.sh send --all 'State your role and wait for a focused task.'

Watch the rooms with tmux -L agent-office attach -t office. Detach with Ctrl-b, then d; the agents keep running.

The idea

You
 └─ current CLI agent
     └─ agent-office
         └─ tmux -L agent-office
             ├─ writer    → claude
             ├─ reviewer  → codex
             └─ wild      → grok

The agent in your current conversation remains the lead. Other agents run as their original CLI processes in isolated tmux windows. agent-office only starts those terminals and types tasks into them.

Despite the name, this is not a pixel office, dashboard, visual workspace, or autonomous multi-agent framework.

Two verbs

up — start named windows on an isolated tmux server (-L agent-office), session office. Each window runs a real CLI.

send — type text into one window with tmux send-keys. To the receiving CLI, it is ordinary keyboard input.

./agent-office.sh up writer:claude reviewer:codex
./agent-office.sh send reviewer 'Review the current change and list the three highest-risk issues.'
./agent-office.sh send --all 'State your role and wait for a focused task.'

send --all broadcasts to agent rooms and skips the spare sh window. --include-shell opts into that window explicitly.

The delegation is one-way by design: agent-office controls terminals; it does not consume them.

Try it through your current agent

Requirements:

  • Bash and tmux (brew install tmux or sudo apt install tmux)
  • At least one interactive CLI agent already installed and authenticated
  • macOS or Linux

Open this repository in the CLI agent you already use and say:

Pull up a Codex reviewer. Ask it to inspect this repository and report the three highest-risk issues.

The lead agent follows spec/TWO-VERBS.md, starts the room, and sends the task. A desktop terminal may attach automatically so you can watch. If it does not, ask the lead to open the rooms or run:

tmux -L agent-office attach -t office

Running ./agent-office.sh up with no arguments auto-detects claude, codex, and grok, then adds a spare sh room. It stops if none of those agent CLIs is on PATH. Named name:command rooms can launch other interactive terminal CLIs.

Stop, reset, and troubleshoot

Stopping and viewing rooms use ordinary tmux commands; they are not additional agent-office verbs.

# View the default office
tmux -L agent-office attach -t office

# Stop every room in the default office
tmux -L agent-office kill-session -t office

# Start clean after stopping it
./agent-office.sh up
Symptom What to check
need tmux Install tmux with brew install tmux or sudo apt install tmux.
no agent CLI found on PATH Install and authenticate at least one supported CLI, then start a new shell.
no session office Run ./agent-office.sh up before send.
A changed room command does not take effect up preserves an existing named room. Stop the session, then start it again.
No desktop window appears Attach manually with the tmux command above. agent-office never attaches inside the lead conversation.
A launched CLI asks you to sign in Complete that CLI's own login in its room; agent-office never handles credentials.

If you need a separate session, prefix each agent-office command with OFFICE_SESSION=my_office, then target the same name in tmux:

OFFICE_SESSION=my_office ./agent-office.sh up
OFFICE_SESSION=my_office ./agent-office.sh send --all 'Wait for a focused task.'
tmux -L agent-office attach -t my_office

Session and room names may contain letters, numbers, _, and -, and cannot begin with -.

Why this is different

  • No model proxy or provider-specific adapter
  • No patches to the launched CLIs
  • No shared-memory fiction, task graph, or result aggregation
  • No scraping, capture, or automatic reading of other terminals
  • Your current conversation stays where it is

You inspect the tmux rooms yourself. agent-office does not grant model credentials; it only starts CLIs already available on the machine.

Make it available in other projects

Client Instruction files
Claude Code skill/SKILL.md + spec/TWO-VERBS.md + agent-office.sh → ~/.claude/skills/agent-office/
Grok the same three files → ~/.grok/skills/agent-office/
Codex append spec/TWO-VERBS.md to AGENTS.md or ~/.codex/AGENTS.md; keep the script on PATH
Other CLI agents provide spec/TWO-VERBS.md and a resolvable script path

This repository already includes .claude/skills/agent-office/, .grok/skills/agent-office/, and a root AGENTS.md for trying it in place.

mkdir -p ~/.claude/skills/agent-office ~/.grok/skills/agent-office
cp skill/SKILL.md spec/TWO-VERBS.md agent-office.sh ~/.claude/skills/agent-office/
cp skill/SKILL.md spec/TWO-VERBS.md agent-office.sh ~/.grok/skills/agent-office/

For a Codex project that already has AGENTS.md, append rather than replace:

cat spec/TWO-VERBS.md >> /path/to/project/AGENTS.md
cp agent-office.sh /path/to/project/

Contributing

Focused bug reports and pull requests are welcome. Read CONTRIBUTING.md before changing the two-verb contract.

Use Discussions for questions and ideas. Please report security vulnerabilities privately as described in SECURITY.md.

Project origin and evolution: HISTORY.md.

If agent-office brought up a real agent terminal, consider giving the repository a Star. If it did not behave as expected, open a Bug Report with your operating system, tmux version, agent CLI version, exact command, and complete error output.

License

MIT © 2026 Mr-AK-AI. See LICENSE.

About

Terminal-native delegation for local CLI agents. Launch and message real agents in isolated tmux rooms—no API proxy or model adapters.

Topics

Resources

Contributing

Security policy

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages