Skip to content

Repository files navigation

threadle

The node-graph patchbay for your AI coding sessions.

From session to the next run.

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

Your agents write everything down: transcripts, tool calls, files touched, spend. Then nobody reads it, and the context dies at each tool boundary. threadle reads it, draws it, and lets you wire it into the next run. Every Claude Code, opencode, Cursor agent, Antigravity agy, Codex, GitHub Copilot CLI, Grok Build, and Muse Code session becomes a wireable node. Inspect what happened. Hand context across tools. Run the pipeline.

Yours, with no catch. Discovery is read-only against storage you already have. threadle binds 127.0.0.1, has no account and no telemetry, and does not upload transcripts. Pressing ▶ drives each tool’s own CLI under your credentials. If threadle disappears tomorrow, your sessions are exactly where they always were.

Website · Docs · Install · CLI · MCP · Security

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

Every session on disk. Tokens, cache, spend — nothing to import.

Session blueprint: turns, tool calls, files touched, and subagents for one session

Every session, drawn. See what your agents did while you weren't looking.


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

Windows, and anywhere with Node ≥ 22.12. Use npm:

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.0.2. Uninstall as cleanly as you installed: rm -rf ~/.local/share/threadle ~/.local/bin/threadle. Everything threadle wrote lives in ~/.config/threadle. Install notes · provider freshness

Quick start

threadle                                 # UI
threadle run hello-wire                  # agent-free example
threadle run plan-implement-review --param task="…" --approve-all

How it fits together

  • See. Every session on disk, with spend, cache, and context pressure. Open a blueprint for turns, tools, files, subagents.
  • Connect. Distill a session into a brief and inject it into another tool. Payloads stay tagged and show up in lineage.
  • Run. Wire agents, gates, iterators, merges. ▶ is a server job. Approval parks for a splice, and live handoff chats until Ready.
  • Ask. threadle mcp exposes sessions and saved workflows as MCP tools, so your agent can answer "what did I spend on this last week?" without leaving the session.

threadle canvas: agents, sessions, and context wired into one workflow

One canvas. Every agent.

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

Recipes (best-of-n, handover-brief, …) live in examples/recipes/.

Eight views, one source of truth · sessions · lineage · map · timeline · library · statistics · files · subworkflows

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

Lineage: a brief traced from the session that made it to every run it fed

Map: one project as a graph of sessions, contexts, workflows, and agents

Timeline: provider-colored swimlanes of parallel work on one clock

Library: saved workflows and content-addressed briefs, ready to reuse

Statistics: spend, tokens, and cache across providers and projects

Files: every file a session touched, diffable and traceable

Subworkflows: a graph that nests other graphs as reusable steps

The full set lives in docs/screenshots/.

Trust

Parsers never mutate ~/.claude, opencode’s SQLite, ~/.cursor, ~/.gemini/antigravity-cli, ~/.codex, ~/.copilot, or ~/.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 cannot splice a parked gate or distill mid-run. They need --approve-all or a pre-materialized payload. Live chat stays on the canvas. Constraints.

Documentation

Goal Start here
Tour, learning path, recipes docs.threadle.sh
CLI, jobs, detached runs docs/cli, also skills, open, run --watch
MCP server + canvas client docs/mcp.md · examples/mcp
Custom nodes docs/custom-nodes.md · stdlib pack
File viewer docs/file-viewer.md

Development

git clone https://github.com/threadle-sh/threadle.git
cd threadle
npm install
npm run dev                              # API :4570 + Vite :5173
packages/shared   types, zod, node catalog
packages/server   Hono API + `threadle` bin
packages/web      Vue 3 + Vue Flow

See CONTRIBUTING.md for checks before a PR. The fastest bug report is an issue with a session bundle attached (Sessions → ⇓ bundle).

License

MIT © Fabian Bienk / zFarbp

About

threadle turns every AI coding session on your machine into something you can inspect, wire, and run. Your agents already write everything down: transcripts, tool calls, token counts, the files they touched. Almost nobody reads it. threadle reads it and draws it.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages