TOOTH
v3.0 Human checkpoints now route to Slack and email

Agents you canleave running.

Tooth is the runtime for long-horizon AI agents. Every step is durable, every tool call is traced, and anything risky waits for a person. Ship an agent on Friday and sleep through the weekend.

$npx tooth init --template support-triage
tool.read_ticket · 84 ms
support-triage Waiting on you
Planned 4 steps0.4s
Read 14 open tickets0.9s
Drafted 9 replies2.6s
Refund $240 to #88213Approve
Budget$0.31 / $2.00
18 msmedian overhead per step
Any stepresumes after a crash
Every tokentraced and replayable
Your VPCor our cloud, same API

The boring parts of agents, done properly.

A demo agent is a prompt and a loop. A production agent needs storage, retries, permissions, review and a record of what it did. Tooth is that second list.

Durable runs

Every step is checkpointed before the next one starts. Kill the worker mid-run and the agent picks up at the same tool call.

checkpoint · resume · retry

Human checkpoints

Gate any tool behind a rule. The run pauses, asks the right channel, and waits for as long as it takes.

slack · email · console

Replayable traces

Prompts, tool calls, tokens and costs are all recorded. Fork a past run from any step and change one thing.

trace · fork · diff

Sandboxed tools

Tools run in isolated workers with scoped credentials, per-call timeouts and a network allowlist.

isolation · secrets · limits

Evals on every deploy

Each push replays your eval suites against the new build and blocks the release if a pass rate drops.

suites · gates · history

Bring any model

Pick a provider per agent or per step. Tooth handles rate limits, retries and fallbacks between them.

routing · fallback · cost caps

An agent is twenty lines. The guardrail is five.

Define tools as plain functions, set a budget, and say which calls need a person. Tooth runs each run through the same four stages.

  1. Plan

    The agent writes a plan before it touches a tool, and the plan is the first entry in the trace.

  2. Act

    Each tool call runs in a sandbox with its own timeout and credentials.

  3. Check

    Guards inspect every call. Anything over the line pauses for review.

  4. Hand off

    When someone approves, the run resumes from the exact step it stopped on.

agents/support-triage.ts
import { agent, checkpoint } from "@tooth/agents";import { searchTickets, readTicket, draftReply, issueRefund } from "./tools"; export const triage = agent({  name: "support-triage",  model: process.env.TOOTH_MODEL,  instructions: "Resolve open tickets. Draft replies, never send them.",  tools: [searchTickets, readTicket, draftReply, issueRefund],   // stop before it gets expensive  budget: { steps: 40, usd: 2.00 },   guard: checkpoint({    when: (call) => call.tool === "issueRefund" && call.args.amount > 100,    ask: "#support-leads",    timeout: "24h",  }),});

See every step. Step in on any of them.

This is run 4182 of the agent above, paused on the refund it isn't allowed to make alone. Approve it and watch the run resume.

support-triage · run 4182
span0s1s2s3s4s5stime
agent.plan420 ms
tool.search_tickets190 ms
tool.read_ticket ×14880 ms
model.draft_reply ×92.60 s
guard.refund_policy80 ms
human.approvalwaiting
agenttoolmodelguardhuman

Click any span in the real console to see its full prompt, arguments and output, or fork the run from that point.

Waiting · 4 min

Refund $240.00 to order #88213

Requested by support-triage · run 4182 · step 6

The customer was charged twice on 2 October. Both charges appear in the billing ledger, and the second has no matching shipment. Refunds over $100 need a lead's approval.

Approving resumes the run at step 6. Rejecting tells the agent why, and it drafts a reply to the customer instead.

SuiteCasesPass ratevs. last deploy
support-triage/refunds120
97.5%
+1.7
support-triage/tone80
93.8%
−0.6
billing/ledger-math210
100%
±0.0
research/citations64
89.1%
+4.2

● Deploy gate passing  ·  blocks a release if any suite drops by more than 2.0 points

Free on your laptop. Fair in production.

You pay for steps your agents take in our cloud, not for seats or tokens. Model costs go straight to your provider.

Developer
$0

Build and test agents locally with the full runtime.

  • 10,000 steps a month
  • Local console and trace viewer
  • Approvals in the console
  • Community support
Team Most teams
$400/ month

For agents doing real work for real customers.

  • 2M steps, then $0.15 per 1,000
  • Approvals in Slack and email
  • Eval gates on every deploy
  • 30-day trace retention
Enterprise
Custom

Tooth inside your own cloud, run your way.

  • Self-hosted in your VPC
  • SSO, audit log and data residency
  • Unlimited trace retention
  • A named support engineer

What teams ask before the first deploy.

Which models does Tooth work with?

Any provider with a chat API, and self-hosted models behind a compatible endpoint. You choose the model per agent or per step, and Tooth falls back to a second provider when the first is rate-limited or down.

Where does our data go?

On Developer, nowhere: runs and traces stay on your machine. Team runs in our cloud with traces encrypted at rest. Enterprise runs entirely inside your VPC and nothing leaves it.

What happens when an agent gets stuck?

Every run has a step budget and a spend budget. When it hits either, it pauses at a checkpoint instead of failing, and you can resume it, edit the plan or cancel it from the trace.

Is any of this real?

No. Tooth is a fictional product made as a design demo. The company, version, prices and figures were invented for it. Nothing installs and no request leaves this page.

Give your agentsa quiet night.

Durable steps, honest traces and a person in the loop when it matters.