See what your agents did.
Local multi-provider session viewer. Nothing to import.
threadle turns every AI coding session on your machine into something you can inspect, search, and reuse locally.
Your agents already write everything down: transcripts, tool calls, token counts, the files they touched. Almost nobody reads it. threadle reads the storage you already have and draws it as sessions, blueprints, map, timeline, search, and statistics.
Yours, with no catch. Discovery is read-only. threadle binds 127.0.0.1, has no account and no telemetry, and does not upload transcripts. If threadle disappears tomorrow, your sessions stay exactly where they always were.
From the tools you already run: Claude Code, opencode, Cursor agent, Antigravity agy, Codex, GitHub Copilot CLI, Grok Build, and Muse Code.
Website · Docs · Install · CLI · MCP · Security
Every local session with tokens, cache, and spend. Grouped by project, live status included.
Every session, drawn.
Curl portable (macOS or Linux, arm64 / x64, bundled Node 26):
curl -fsSL https://threadle.sh/install.sh | bash
threadle # http://127.0.0.1:4570 → SessionsWindows, or anywhere with Node ≥ 22.12:
npx threadle
# or from a clone
git clone https://github.com/threadle-sh/threadle && cd threadle
npm install && npm run build && npm startPrefer WSL on Windows if you want the curl installer and Linux agent paths (~/.claude, …). Native Windows threadle sees native Windows agent homes (%USERPROFILE%\.…). It does not bridge into WSL storage.
Tip
Sessions appear on first launch. Nothing to import. threadle check verifies PATH, provider storage, and UI assets. threadle check --providers probes inject-critical CLI flags.
Pin a curl release with THREADLE_VERSION=1.2.0. Uninstall as cleanly as you installed: rm -rf ~/.local/share/threadle ~/.local/bin/threadle ~/.local/bin/threadle-workflows. Everything threadle wrote lives in ~/.config/threadle. Install notes · provider freshness
threadle # viewer, Sessions by default (:4570)
threadle check # PATH + provider storageOpen a session. Open its blueprint. Check Statistics when you care about spend.
See. Every local session across providers with spend, cache, and context pressure. Blueprints for turns, tools, files, and subagents. Map, timeline, search, and statistics.
Connect. Distill a session into a brief and inject it into another tool. Payloads stay tagged and show up in lineage.
A handoff, concretely:
Claude Code plans an auth refactor → the session appears in threadle
Distill it into a brief → tagged, content-addressed, in the library
Inject the brief into Cursor → same repo, next tool, no copy-paste
Lineage: session → brief → session → nothing lost at the boundary
More views · lineage · map · timeline · library · growth · statistics · files · search
Follow a brief from the session that made it through every run it fed, across tools.
One project as a graph: sessions, contexts, workflows, agents, and skills in one picture.
Parallel work on one clock: provider-colored swimlanes, zoom from a week to a minute.
Distilled briefs, tagged and content-addressed, ready to drag in again.
Context tokens across prompts. Peak, cache, and the turns that grew the window.
Honest numbers per provider and project. Tracked dollars, not forecasts.
Everything your agents touched, across sessions, with churn counts.
Full-text across every transcript and payload. Ranked snippets, straight to the turn.
The full set lives in docs/screenshots/.
Optional. Soft-frozen. Not required for the viewer.
An optional editor for short, repeatable jobs across agents. Approvals, spend limits, and handoffs stay on your machine. Install once with threadle, then start it with threadle-workflows when you want the canvas:
threadle-workflows # editor + runner (:4571), UI under /addon/workflows
threadle run hello # bundled teaching graph
threadle run plan-implement-review --param task="…" --approve-allWorkflows addon. Optional canvas, same local install.
Shipped recipes such as best-of-n, diff-review-panel, and handover-brief live in examples/recipes/. Hold rules and package layout: docs/workflows.md.
threadle mcp answers spend and session questions from inside a coding session. It can also expose saved Workflows graphs as tools when you use the addon.
Parsers never mutate ~/.claude, opencode’s SQLite, ~/.cursor, ~/.gemini/antigravity-cli, ~/.codex, ~/.copilot, ~/.grok, ~/.muse, or ~/.local/share/muse. Runs spawn the official CLI, and it writes new sessions.
The server rejects foreign Host (DNS rebinding) and cross-site write Origin (CSRF). There is no remote mode and no auth token. List prices ship bundled (CI-refreshed from models.dev). The process does not fetch them at runtime. Everything threadle persists is under ~/.config/threadle/.
Detached CLI runs of Workflows graphs cannot splice a parked gate or distill mid-run. They need --approve-all or a pre-materialized payload. Constraints.
| Goal | Start here |
|---|---|
| Tour, learning path, recipes | docs.threadle.sh |
| CLI, jobs, detached runs | docs/cli |
| MCP | docs/mcp.md · examples/mcp |
| Custom nodes | docs/custom-nodes.md · stdlib pack |
| File viewer | docs/file-viewer.md |
| Workflows addon hold | docs/workflows.md |
git clone https://github.com/threadle-sh/threadle.git
cd threadle
npm install
npm run dev # API :4570 + viewer :5173 + workflows :5174
npm run check:boundary # package dependency direction (viewer/core ↛ workflows)packages/shared core types + zod
packages/core providers, sessions, runs, viewer API
packages/server threadle + threadle-workflows bins (composition root)
packages/ui shared Vue shell (nav, stores, theme)
packages/web viewer app (threadle)
packages/workflows-shared graph schema, node catalog, runner helpers
packages/workflows-server graph store, executor, triggers, templates
packages/workflows-web workflows addon app (threadle-workflows)
See CONTRIBUTING.md and AGENTS.md. The fastest bug report is an issue with a session bundle attached (Sessions → ⇓ bundle).

