Debug what your AI coding agent actually did.

Tether is a local execution debugger for AI coding agents. It captures the prompt, action, file diff, failed command or test, and recovery point in a desktop execution graph for macOS and Linux.

Security review asking where prompts live? Prompts and traces stay local
SQLite traces.Source adapters.Local secrets.
Prompt to recovery

See the request, the actions, the diff, and the breakage.

Tether turns one messy agent run into an execution graph: user request, tool calls, file reads and writes, shell commands, test results, git diff, errors, replay, and rollback evidence.

Execution path4 events / 1 failed / 1 diff
User requestfix failing checkout testsuccess
File diff+42 / -11 linescached
Shell commandnpm testsuccess
Failed testexit 1 - 4.10serror
requestfix checkout testdiff+42 / -11commandnpm teststatusexit 1

Execution graph, not an LLM tree

Nodes represent the agent run: LLM requests, tool calls, file reads, file writes, shell commands, tests, diffs, errors, replay, and rollback.

successcachederror

File and command evidence

Node cards keep changed files, line counts, command output, exit status, timing, tokens, model, and source metadata together.

<1ms$0.0000

Replay where supported

Proxy-captured requests can be replayed from a selected node. Local log sources stay inspectable and route clearly to supported recovery flows.

replay boundary

Local evidence vault

macOS secrets use Keychain-aware storage. Linux uses the same local proxy model. Prompts, responses, and traces stay in a local SQLite database that never leaves the machine.

Local secretsSQLite - local0 outbound
Debugger inspector

Inspect the debugger before you wire it into your agent.

The right pane mirrors the app inspector. Pick an evidence type and watch the node details change the way they do in a live execution graph.

Agent execution graph8 events
1. Intent ClassificationSUCCESS
842ms$0.0118412 in / 38 out
2. Vector DB RetrievalCACHED
0ms (cached)$0.000024 in / 0 out
3. Context SynthesisSUCCESS
1.21s$0.02411840 in / 256 out
4. Tool · lookup_orderSUCCESS
318ms$0.000096 in / 142 out
5. Response GenerationERROR
4.10s (timeout)$0.00002210 in / 0 out
diff.metaCACHE HIT200 OK
request_idreq_3f88ab
changed_files3
line_delta+42 / -11
commandnpm test
exit_code1
sourcecustom-cli
store~/.Tether/traces.sqlite
recoveryrollback or replay boundary
recovery.patchUNSAVED
{
  "intent": "order_status",
  "confidence": 0.97,
  "entities": {
    "sentiment": "calm",  <- mocked
    "order_id": "4471"
  }
}
secrets & storage encrypted
OPENAI_API_KEYsk-********************7f2a - local secret storeSECURE
ANTHROPIC_API_KEYsk-ant-************91be - local secret storeSECURE
Trace database~/.Tether/traces.sqlite - 0 bytes sentLOCAL
Outbound connectionsonly to providers you configured - telemetry off0 / hr
From capture to graph

Wrap one run and keep the rest of your stack.

Run tether capture -- <agent command>. The wrapper starts or uses the local proxy, captures agent traffic plus tool, file, shell, test, and diff events, then stores the trace for the desktop graph.

01 / CAPTURE

Wrap the agent command

Use tether capture -- with supported agent CLIs, custom CLIs, or an adapter-backed framework run.

02 / NORMALIZE

Run your agent

Tether normalizes LLM requests, tool calls, file changes, shell commands, tests, and errors.

03 / RECOVER

Inspect and recover

Open the desktop graph, click the broken node, inspect file impact and output, then replay supported requests or roll back from local evidence.

Buying objections

Questions engineers ask before installing a local proxy.

Hosted trace tools are useful for team observability. Tether is narrower: a local execution debugger for coding agents that shows the request, actions, file diffs, failed commands, and recovery point on the developer machine.

No. Tether is local-first on macOS and Linux. Prompts, responses, and traces stay in local storage. macOS uses Keychain-aware secrets, Linux uses the same proxy-first local model, and the proxy only talks to the providers you configure.

Use tether capture -- <agent command> or route OpenAI-compatible traffic through the local proxy. Source adapters normalize supported agent CLIs, LangChain, LangGraph, OpenAI/OpenGPT-style agents, and custom CLI events into one execution graph.

Yes. It is a local proxy, so your real code does not need SDK instrumentation. Use it locally while debugging sensitive flows, demos, eval runs, or production-like traces that cannot be copied into a hosted dashboard.

Negligible. Tether runs locally on your machine. The only overhead is the proxy hop, which is usually less than 1ms. Real LLM calls are the bottleneck, not Tether.