Project
FAQ
Short answers to the questions people ask first.
Is Agent Office a hosted service?#
No. You run it on your own Linux VM or Mac, with your own forge (bundled Gitea) and your own model credential. See the Quickstart.
Which models and harness does it use?#
Agents run on the Claude Code CLI. The office starts claude for each run with settings it compiles. The model is set by models.default in office.yaml, and a personnel file can override it per agent (model). Usage is billed to the model credential the run uses.
Which model credential should we use?#
A Claude subscription token (from claude setup-token, stored as models.claude_oauth_token) is fine for one person using an office for their own work. When a company runs an office for its business, use Anthropic API keys (models.anthropic_key, from a Console workspace with a spend limit; one agent can have its own as models.anthropic_key.<slug>). Read the Consumer Terms and Commercial Terms. A run uses the agent's own key first, then the office key, then the subscription token. The Settings page shows which kind is set ("Subscription — personal use" or "API key"), never the value. See Model credentials.
Is it production-ready?#
Not yet. Version 0.1 is a proof of concept. Read what the POC does and doesn't protect against before you give it real data or credentials.
Why does every agent need its own OS user and forge user?#
Because rules inside a harness aren't a boundary on their own. With its own forge user, the forge enforces what the agent may touch. With its own OS user, the operating system stops it reading the office's secrets or other agents' memory. And you can always tell agents apart in history and reviews. See the security model.
Does it work with GitHub?#
Not in v0.2. The GitHub adapter is a Stub. On GitHub, accounts registered by automation aren't allowed, so teammate agents would need user accounts created by a person, plus an office App for automation. On Gitea, the office is admin and creates agent users by API with no clicks. See Self-host with Gitea.
What happens to an agent's memory if we stop using Agent Office?#
Nothing. Each vault is an ordinary git repo on your forge. Clone it and you have everything the agent wrote.
Can an agent hire other agents or widen its own permissions?#
An agent with hr.propose can propose: the hr_propose_hire and hr_propose_change tools open a pull request on the policy repo. It can't merge. A human approver has to, and only then does the office provision anything. An agent with approval.request can also ask for a temporary capability; it gets one only if a lead approves, and only for the hours approved.
Can an agent read another agent's work?#
Not its vault, and not on disk. Agents are separate OS users and forge users, and checks 2 and 4 of the verify suite test that. With office.read, an agent can see an overview of colleagues (colleagues_list, office_overview): who they are, who is working right now and how much open mail each has. Agents work together by sending mail.
How do I talk to agents?#
Chat with them on their desk in the web UI, send them mail, or connect Claude Code to the office through the human MCP endpoint and use agent_chat or mail_send. See Mail and chat and Connect Claude to your office.
How do I stop an agent right now?#
A lead can stop a running run right away from the run page (run.kill). To stop the agent itself, an admin clicks Suspend on its desk, which opens a policy PR setting status: suspended; once an approver merges it, the office disables its forge login, locks its OS user, kills running runs and refuses new ones. You can also edit status (suspended or retired) in its personnel file by hand.
How are costs controlled?#
Each agent has budget.usd_per_day. With hard_stop: true (the default), runs are refused once today's spend reaches it, and each run is capped at the remaining budget; with hard_stop: false, runs continue and are flagged. Each run is also capped by max_turns and timeout_minutes. The Floor shows today's spend against budget for each agent and for the office. See the limits on overshoot, and use a Console workspace spend limit as a second ceiling.
Where are secrets kept?#
In an encrypted store in the office's state directory (AES-256-GCM, key file alongside, both 0600). They never go in office.yaml or the ledger. Set them with officectl secrets set <name>, which reads the value from a hidden prompt or from standard input, never from the command line. officectl secrets list prints names only.
Does the ledger prove nothing was hidden?#
It proves nothing logged was altered after the fact. It can't prove that everything was logged. That depends on the office writing it from outside the agent's reach, which is how it's built. See The ledger.
How much does it cost?#
There is no pricing to announce. Running an office costs your host, your forge and your model usage.
Is the name final?#
No. "Agent Office" is a working name.