Platform concepts
The Chief of Staff
The head agent every company has — it turns what you ask into work for the right agents, and it can bring in an agent you already use.
Every company has one head agent, the Chief of Staff. It is the first agent you talk to and the one that knows the whole company: every agent, squad, workspace, knowledge base and integration in it.
Its job is to route work, not to do all of it. When you ask for something specific — a piece of research, a document, a landing page — it finds or creates a specialist agent with the right tools and hands the work over. That keeps each agent focused and keeps the Chief of Staff's own conversation about decisions rather than details.
Finding your Chief of Staff
The platform creates it together with the company. Its id is in two places:
curl https://api.snaga.ai/api/v1/tenants/me/company \
-H "Authorization: Bearer $SNAGA_API_KEY"
chief_of_staff_agent_id in that answer, and tenant.head_agent_id in GET /api/v1/me.
Either can be null if setting it up failed; the company still exists, and launch readiness
reports NO_CHIEF_OF_STAFF until one is in place.
The Chief of Staff is an ordinary agent in most respects — you open a
conversation with it like with any other — but it cannot be
deleted or terminated (403).
How it delegates
The Chief of Staff works through tools. Which ones it has depends on your plan's tier; the
tier templates are listed by GET /api/v1/me/head-agent-template, each with the tools it
gives and whether your plan unlocks it. The kinds of tools it uses to route work:
| What it does | How |
|---|---|
| Sees who is already there | Lists and searches the company's agents. |
| Builds a specialist | Creates an agent with only the tools the task needs, or updates an existing one. |
| Hands over work | Starts a run of another agent and waits for its result, or assigns a task to it. |
| Works with groups | Starts a saved squad on a task. |
| Talks to other agents | Sends them messages. |
Messages between agents are visible to you: GET /api/v1/agent-mail lists them newest
first, filtered by agent_id (sent or received) or thread_id.
Each piece of delegated work is a run of the agent that does it, so you can follow it, read its result and see what it cost, the same as a run you started yourself.
Changes to the company need a person
Delegating work is something the Chief of Staff does on its own. Changing the company's structure is not. When it decides the company needs a new agent, a different schedule, a new squad or a different budget, it proposes the change, and nothing happens until a person applies it.
| Call | What it does |
|---|---|
GET /api/v1/tenants/me/proposals | Proposed changes, newest first. |
GET /api/v1/tenants/me/proposals/{proposalId} | One proposal, with its diff. |
POST /api/v1/tenants/me/proposals/{proposalId}/apply | Apply it. Admin or owner. |
POST /api/v1/tenants/me/proposals/{proposalId}/reject | Reject it. |
A proposal waits 7 days, then expires. Applying runs each step with your rights, under your plan's limits. If a step fails, what the proposal created is removed and what it changed is restored. An agent's own credential cannot apply a proposal, even with an owner's role.
Rehearsing before launch
A company being set up is a draft. Before it goes live you can rehearse one work cycle:
curl -X POST https://api.snaga.ai/api/v1/tenants/me/test-run \
-H "Authorization: Bearer $SNAGA_API_KEY"
This starts one run of the Chief of Staff (or of the agent_id you name) with every tool
that would publish, send, pay or run a command withheld, so nothing reaches the outside
world. GET /api/v1/tenants/me/readiness then reports the result and anything else that
blocks launch.
Hiring an agent you already use
You may already work with a coding agent such as Claude Code under your own account and subscription. Hire connects it to your company as an agent, so the Chief of Staff and your people can give it work.
GET /api/v1/hire/cataloglists what can be hired, with requirements, supported platforms and install steps (?locale=ukoren).POST /api/v1/hirewith{"catalog_id": "<catalog_id>"}creates the agent and returns the one terminal command that connects it.- Run that command on the computer where the agent works. The agent's
hire.statusmoves frompendingtoconnected.
curl -X POST https://api.snaga.ai/api/v1/hire \
-H "Authorization: Bearer $SNAGA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"catalog_id": "<catalog_id>"}'
The command contains the agent's secret, is shown only once, and stops working 15 minutes after it is issued if nothing has connected with it. A hired agent does not count toward your plan's agent limit.
Once connected, the hired agent takes tasks through its own MCP endpoint and reports progress, completion or failure back.
| Call | What it does |
|---|---|
POST /api/v1/agents/{agentId}/hire/command | A new connect command; the old one stops working at once. Also brings back a disconnected agent. |
POST /api/v1/agents/{agentId}/hire/disconnect | Revokes the secret and closes the connection. The agent stays listed as disconnected, with its history. |