# Tanomis documentation

Run AI agents as a governed service. You write the agent; Tanomis packages it, runs it per tenant, and gives every action an identity, a policy check, and a record.

Run AI agents as a governed service.

You write the agent in Python. Tanomis packages it, runs it for each of your customers in its own
sandbox, and gives every action an identity, a policy check, and a record. Warm starts, approvals,
and audit come with the platform, not with your code.

[Deploy your first agent](/getting-started/quickstart)
 about 10 minutes
[Tour the Console](/getting-started/console-tour)

```bash title="Four commands, one running agent"
tanomis login
tanomis agent new support-copilot --harness claude-agents-sdk
tanomis agent deploy ./agents/support-copilot --tenant northwind-sandbox
tanomis session run support-copilot --prompt "Draft a reply to ticket 4821."
```

- Sandbox per session

- Warm start under a second

- Signed, immutable builds

- Tamper-evident audit ledger

- Your tenants, your policy

## How it works

Your source becomes an immutable **version**. A tenant is **enabled** for it. Your application opens
a **session** and starts **runs**. Every run leaves **evidence**. Nothing skips a step, and nothing
routes traffic until you enable it.

1. **Source** Your Python agent, in your repository.

2. **Version** An immutable build plus the contract you declared.

3. **Enablement** Which version each tenant serves, canary or baseline.

4. **Session** A conversation or unit of work, warm-started in under a second.

5. **Run** One request, streamed, pausable for a person.

6. **Evidence** Who asked, what was allowed, what happened, signed.

## What teams build on it

Three agents that use most of the platform. Each one starts from a guide you can follow today.

 Customer-facing
### Support copilot

Reads the ticket and your knowledge base through a governed connector, drafts the reply, and pauses for a person before issuing a refund.

- MCP connector
- Approval on refund
- Streaming

[Build it](/getting-started/quickstart)

 Back office
### Invoice reconciler

Picks up a unit of durable work, matches it against the ledger over several sessions, and settles it once. No person ends it by hand.

- Durable work
- Session files
- Egress allowlist

[Build it](/guides/run/durable-work-and-settlement)

 Engineering
### Code review assistant

Reads a pull request through the GitHub connector, hands the security pass to a second agent under a narrower grant, and posts one review.

- Delegation
- Schema pins
- Canary rollout

[Build it](/guides/run/delegate-to-another-agent)

## Everything the platform gives you

The feature set, in the order you meet it.

**Build** your code, your model

[Harnesses and models](/guides/build/choose-a-harness) Claude Agent SDK or Deep Agents; any model on the tenant's allowlist, routed through one gateway.

[Governed tools](/guides/connect-tools/mcp-connectors) MCP connectors with an explicit allowlist. Agents never launch servers themselves.

[One manifest](/guides/build/manifest-essentials) Models, tools, hosts, limits, and approvals declared once in <code>agent.yaml</code>.

**Ship** immutable, per tenant

[Versions and canary](/guides/deploy/rollout-and-rollback) One command builds, registers, snapshots. Roll out by tenant share; roll back by re-enabling.

[Warm starts](/concepts/agents-and-versions) A golden snapshot restores the harness in under a second, with no tenant data inside.

[CI and automation](/guides/deploy/deploy-from-ci) Dry-run on every pull request; deploy with an organization-owned credential.

**Run** from your product

[Sessions and streaming](/guides/run/invoke-from-your-application) HTTP in, events out. Reconnect and replay safely; attach files with integrity checks.

[Approvals and questions](/guides/run/approval-required-actions) The run pauses, survives disconnects, and resumes on the first answer, from the Console or your app.

[Delegation](/guides/run/delegate-to-another-agent) One agent hands work to another under a live grant that only narrows.

**Trust** what auditors ask for

[Policy ceilings](/guides/govern/restrict-network-egress) Network egress, model, and tool ceilings per tenant; the manifest can only ask for less.

[Evaluation](/guides/evaluate/overview) Trace every run, score a candidate against the baseline, gate promotion on the verdict.

[Audit ledger](/guides/audit/audit-and-evidence) Append-only, hash-chained, signed per tenant. Export an auditor package in one step.

## Every run is governed

Whatever the agent does, the same six things happen around it. The example below follows one
run end to end: a support copilot answering a ticket for the customer bluewater-bank, that needed
a refund approved before it could finish.

Read the whole model in [Policy, approvals, and evidence](/concepts/governance).

## Start where you are

 Building an agent
[Quickstart](/getting-started/quickstart)
 Then [Manifest essentials](/guides/build/manifest-essentials) and [MCP connectors](/guides/connect-tools/mcp-connectors).

 Integrating an application
[Invoke from your application](/guides/run/invoke-from-your-application)
 Then [Sessions and runs](/concepts/sessions-and-runs) and the [Platform API](/api).

 Administering a workspace
[Tour the Console](/getting-started/console-tour)
 Then [Members and access](/guides/manage/organization-members) and [Audit and evidence](/guides/audit/audit-and-evidence).

Working with a coding agent such as Claude Code, Codex, or Cursor? One command installs skills
that teach it to operate Tanomis and registers a documentation MCP server: see
[Build with a coding agent](/getting-started/coding-agents).

## Reference

[ **CLI** Every tanomis command and flag.](/cli)
[ **agent.yaml** Manifest fields and defaults.](/reference/agent-manifest)
[ **Platform API** Endpoints, headers, errors.](/api)
[ **Events** Run event types and replay.](/guides/run/stream-and-replay-events)
