The Office coordinates Claude Code and Codex agents across every repository you own. One task, multiple floors, all reviewed by you before anything ships.
Every project gets its own floor. Every floor has a persistent Lead who understands the codebase, and five Workers who can implement in parallel. Pam at reception handles the cross-project stuff.
Assign a task directly to the floor when you know which project it belongs to. Use Reception when it spans multiple repos; Pam reads all the onboarding summaries and routes subsets of the work to each floor's inbox.
The Lead analyzes the request, picks a single or multi-worker plan, coordinates implementation, and presents results for your review. Nothing is pushed without your sign-off.
Ask a floor a read-only question. The Lead answers using its onboarding context and repository. No implementation, no side effects. Can reference another floor for cross-project context.
Request a Report for a feature, migration, or architectural question. One Worker researches independently and returns: executive summary, recommended approach, ordered steps, risks, and the relevant files.
Paste or upload a Markdown specification. The platform parses ## Phase and ### item headings into a checklist stored in the repo under docs/specs/. Assign phases one at a time.
Paste requirements or a document and The Office creates a new Git repository, commits a refined APP_BRIEF.md, and queues the initial build. The agent asks clarifying questions before starting.
Each floor has a full repository workspace: browse files, render Markdown docs, inspect branches and commits, run shell commands and detected dev servers, and see live previews.
Implementation never pushes automatically. Review the working-tree diff, accept or reject individual hunks, and confirm branch creation explicitly. Every retained run has a checkpoint to roll back to.
The Office checkpoints your repository before every run, coordinates workers safely, and requires explicit review before publishing anything.
A floor plan makes the system easy to understand. It does not make agent work deterministic. These are the boundaries I care about while building it.
Workers can run together when their paths do not overlap. If two plans touch the same file, The Office serializes them. That is slower, but easier to reason about than merging two plausible edits after the fact.
The Lead keeps project context, but the repository remains the source of truth. Large refactors need a fresh scan. A remembered summary is useful context, not permission to ignore the current code.
Dev scripts and repository instructions can execute code. I treat unknown repositories differently from code I own. Local-first keeps data on the machine, but it does not turn arbitrary code into trusted code.
More agents add cost, logs, and coordination. The Lead should use one worker for one coherent change. Parallelism only helps when the work actually separates.
No third-party Python dependencies. Just Python 3.10+, Git, and at least one of Claude Code or Codex authenticated locally.
From the project root. Startup output prints your data directory, detected CLIs, and the local address.
Navigate to the printed address. Keep the terminal open while agent runs are active. Stop with Ctrl+C only after runs have finished.
Select + floor. Add a local repo path, a Git URL to clone, or a directory of repos (a cupboard). Onboarding is read-only and must succeed before tasks are enabled.
Open the floor and assign directly, or go to Reception for cross-project work. Pam routes; the Lead plans; Workers implement; you review before anything publishes.
| Variable | Default | What it does |
|---|---|---|
| TASK_OFFICE_DATA_DIR | ~/.local/share/the-office/ | Where the SQLite database and backups are stored. Keep private; may contain repo paths, prompts, and session IDs. |
| TASK_OFFICE_CLAUDE_BIN | auto-detected | Absolute path to the Claude CLI, when installed outside the standard search path. |
| TASK_OFFICE_CODEX_BIN | auto-detected | Absolute path to the Codex CLI, same reason. |
| TASK_OFFICE_RUN_HISTORY | 200 | Number of agent runs to retain. Minimum 20. Each run stores up to 5,000 log entries. |
| TASK_OFFICE_HOOKS_DIR | none | Directory containing on_run_finished, on_review_ready, or on_run_blocked executables for local notifications. |
| TASK_OFFICE_PREVIEW_PORT_MIN / MAX | 43100 – 43199 | Loopback port range for live dev server previews. Vite, Next.js, Flask, Django, and others are auto-detected. |