Untitled work,no more.

Give every AI session a name, an author, and a story.

Get Started
~/myapp · .trace ● RECORDING
traceclaudegit
 trace log --limit 3
TASK      AGENT    INTENT                              FILES                     WHEN
a3b9fea  claude   feat(mcp): read-only stdio server   src/commands/mcp.rs +3   2m ago
2b352c4  claude   fix(security): escape bidi chars    src/sanitize.rs           3h ago
7ccc5db  grok     test(mcp): e2e framed JSON-RPC      tests/mcp_e2e.rs          1d ago
────────────────────────────────────────────────────────────────────────────────
 trace show a3b9fea
task    a3b9fea · claude · sess 02deb19b · 2026-07-15 14:02
prompt  “add a read-only MCP server over stdio…”  untrusted content
tools   14 calls · Edit ×6 · Bash ×5 · Read ×3
diff    src/commands/mcp.rs +412 −0  ·  src/main.rs +9 −1  ·  Cargo.toml +2 −0
────────────────────────────────────────────────────────────────────────────────
 trace blame src/sanitize.rs
L42–58  2b352c4  claude  “harden the terminal sanitizer against bidi override…”
 
Record

Every session, captured.

Hooks into Claude Code and Codex record each session as it happens — prompts, tool calls, and file changes land in a local .trace ledger. Nothing leaves your machine.

Zero-config hooksone trace init, sessions record themselves
Local-firstSQLite + blobs in your repo, secrets redacted at capture
Multi-agentClaude Code native, Codex ingest, more adapters coming
Add MCP stdio server with framed JSON-RPC
claude · 14 files · 2m ago
E2E suite for the MCP surface
grok · 3 files · 1h ago
Escape bidi + zero-width in sanitizer
claude · 2 files · 3h ago
41fn sanitize_line(s: &str) -> Cow<str> {human
42 if s.chars().any(is_bidi_override) {claude · 2b352c4
43 return escape_controls(s);claude · 2b352c4
44 }claude · 2b352c4
45 Cow::Borrowed(s)human
46}human
Blame

Know who wrote every line.

Git blame tells you the commit. trace blame tells you the agent, the task, and the exact prompt that produced the line — months later, in one command.

Line-level attributiontask, agent, and prompt behind each change
Honest by designnever guesses; unknown lines stay unknown
Semantic diff & replaystep through what the agent actually did
Teams

Shared history for the whole team.coming soon

Sync ledgers to a shared workspace. Projects, roles, and scoped agent tokens — so “which agent changed this and why” has an answer across your whole org, not just your laptop.

Org & project rolesowner, editor, viewer
Scoped agent tokensshort-lived, per-project, least-privilege
Audit trailevery access, every sync, on the record
youowner
claude — agent tokeneditor · 24h
grok — agent tokeneditor · 24h
invite teammate…viewer
Recently shipped

Built in the open.

MCP server

Your agents can query the ledger: five read-only tools over stdio, token-gated, injection-safe.

Hardened output

Terminal sanitizer escapes bidi overrides and zero-width characters. Recorded data can't lie to your eyes.

One-line install

npm i -g @untitledmarkdown/trace — Windows first-class, no cloud required.

Your AI work, on the record.

UntitledMarkdown traces what your coding agents do — every prompt, every diff, every author — into a ledger you and your team can query.