Skip to content

Repository files navigation

threadle

See what your agents did.

Local multi-provider session viewer. Nothing to import.

MIT Node ≥ 22.12 macOS / Linux / Windows CI npm release

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

Sessions: every local session with tokens, cache, and spend

Every local session with tokens, cache, and spend. Grouped by project, live status included.

Session blueprint: turns, tool calls, files touched, and subagents

Every session, drawn.


Install

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 → Sessions

Windows, 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 start

Prefer 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

Quick start

threadle                                 # viewer, Sessions by default (:4570)
threadle check                           # PATH + provider storage

Open a session. Open its blueprint. Check Statistics when you care about spend.

Viewer

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

Lineage: a brief traced from the session that made it to every run it fed
Follow a brief from the session that made it through every run it fed, across tools.

Map: one project as a graph of sessions, contexts, workflows, and agents
One project as a graph: sessions, contexts, workflows, agents, and skills in one picture.

Timeline: provider-colored swimlanes of parallel work on one clock
Parallel work on one clock: provider-colored swimlanes, zoom from a week to a minute.

Library: content-addressed briefs, ready to reuse
Distilled briefs, tagged and content-addressed, ready to drag in again.

Growth: context tokens across prompts with cache overlay
Context tokens across prompts. Peak, cache, and the turns that grew the window.

Statistics: spend, tokens, and cache across providers and projects
Honest numbers per provider and project. Tracked dollars, not forecasts.

Files: every file a session touched, diffable and traceable
Everything your agents touched, across sessions, with churn counts.

Search: full-text across transcripts and payloads
Full-text across every transcript and payload. Ranked snippets, straight to the turn.

The full set lives in docs/screenshots/.

Addon: Workflows

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-all

Workflows addon: Plan → Implement → Review on a canvas

Workflows 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.

Ask (MCP)

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.

Trust

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.

Documentation

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

Development

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).

License

MIT © Fabian Bienk / zFarbp

About

Local multi-provider viewer for AI coding sessions. Reads the transcripts your agents already write and draws sessions, blueprints, spend, and search. Nothing to import.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages