返回项目目录
chenxiachan

chenxiachan

thoughtdag

Your thinking deserves a map: an infinite canvas where LLM conversations grow into an editable thought graph. Wires are the context.

MCPAgentRAG模型 / 推理agentic-searchai-toolscontext-engineeringdaghuman-in-the-loopinfinite-canvas
Stars
208
Forks
27
Watchers
208
Issues
2

README

项目介绍

9997 bytes
ThoughtDAG logo # ThoughtDAG **Your thinking deserves a map.** An infinite canvas where LLM conversations grow into an editable thought graph. ![React](https://img.shields.io/badge/React_19-087EA4?logo=react&logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white) ![License](https://img.shields.io/badge/license-MIT-green) ![Status](https://img.shields.io/badge/status-active_development-6B5CE7) ### [Download ↓](https://chenxiachan.github.io/thoughtdag/#download) · [Website](https://chenxiachan.github.io/thoughtdag/) [中文](./README_ZH.md) · [Quick start](#quick-start) · [Desktop app](#desktop-app) · [How it differs](#how-thoughtdag-differs) · [Models & subscriptions](#models--subscriptions) · [Cost & privacy](#cost--privacy) Hero demo, recorded from the live app: selecting a passage in the PDF reader and asking about it; deleting a noise edge and regenerating a clean answer; zooming out through three semantic tiers to the map; opening the backup control center and exporting a real file Video thumbnail: the ThoughtDAG canvas mid-conversation **[▶ The 33-second narrated tour](https://www.youtube.com/watch?v=-8BqAyaoNXQ)**

The one rule

Wires are the context. What the model sees is exactly what wires into the node. Editing the graph edits the model's memory.

In action

One principle behind every gesture: the human in the loop, the model on the wires. No autonomous agent redraws your graph.

Illustration: the research chain wired to a summary node, with the edge to a dinner node cut into a red dashed line ### ✂️ Delete one edge, get a different answer The model sees only what wires in. Delete the noise edge, ask again, and the same prompt returns a clean answer. **Reproduce it in chapter ③ of the example canvas.**
### 📖 Read a paper into a map Select a passage, ask right there. The answer lands on the canvas with its page number, and the p.N chip jumps back to the page. **Finish the paper, and the map is drawn.** Illustration: a passage selected on the original page, a purple ask bubble beside it, the paragraph tagged p.3
Illustration: three small highlighted cards converge through wires into one synthesis card, above a small timeline with cognitive badges ### 💎 Thinking condenses in your hands Merge nodes into one higher conclusion; weave highlights into a summary. The graph folds inward instead of sprawling. **The human refines in the loop.**
### 🖍️ The passages you marked, woven into cited prose Highlights are your judgment, not the model's. Check any subset and weave one passage where every sentence traces back. Illustration: a highlighted sentence in a card woven into a cited passage below, with reference numbers
Illustration: three takeaway plaques with ruled-out, decided and pivoted badges, linked by dashed lines ### 🗺️ Zoom out: thinking becomes a map Full cards, takeaway plaques, an icon skeleton: three semantic tiers, every step badged ✕ ⚖ ↩ ?. **The detours are part of the map.**

Quick start

The desktop app is the primary way to run ThoughtDAG: download, open, think. Running from source works too:

npm install
npm run server    # LLM proxy :3001
npm run dev       # → localhost:5173
# No .env? Connect any OpenAI-compatible endpoint inside the app

Want a ten-second look before installing anything? The hosted demo runs in the browser, and the example canvas needs no key. It is a feature subset: keyless web search, some direct-connection tools and the subscription bridge are desktop/local-only.

The landing page offers the seeded example canvas one labeled click away: four chapters around one everyday question (why saved articles stay unread), including a reading loop with a real embedded PDF. Environment variables, free keys and configuration details → docs/setup.md

Desktop app

The same app in its own window, with the local server bundled. No Node, no terminal. The easiest path is the download page: it detects your platform and hands you the right file.

Downloading from Releases directly? Pick by system:

Your system File to download
macOS, Apple Silicon (M1 and later) ThoughtDAG-x.y.z-arm64.dmg
macOS, Intel ThoughtDAG-x.y.z.dmg
Windows ThoughtDAG.Setup.x.y.z.exe
Linux ThoughtDAG-x.y.z.AppImage

Not sure which Mac you have? Apple menu → About This Mac. The .zip, .blockmap and .yml files serve the in-app updater; you never download them by hand.

The macOS builds are signed and notarized by Apple: double-click and go. Windows builds are not signed yet; choose "More info → Run anyway" on the SmartScreen prompt. After installing, the app checks for new versions itself (canvas menu → Check for updates) and every step past looking waits for your click.

More capabilities

Capability What it does
📤 Read-only share One link carries the whole graph: no account, no server storage
🧭 Staleness & replay Upstream edits mark the answers they invalidate; replay in dependency order, token estimate first
✂️ Clipping Select a passage or drag a rectangle in the reader; it becomes canvas material with page provenance
🔌 Any model Per-node pins that follow the line; text-only models read images through their companion text
🔒 Local-first Automatic folder backup writes real files; point it at a synced folder for cross-device

Full feature list (60+, grouped by area) → docs/features.md

How ThoughtDAG differs

Many tools put conversations on a canvas. The difference is what the connections do.

In ThoughtDAG, a wire is not decoration or an execution route. It determines what the model sees next.

Type What a wire means Better for
Linear chat Conversation history in time order Quick, simple questions
Mind maps and whiteboards Visual relations for human eyes Free-form organizing and presenting
Branching chat canvases Parent-child forks of a conversation Exploring alternative responses
Workflow and agent canvases Data flow or execution order Automation and orchestration
ThoughtDAG The context the model actually receives next Deliberate forking, merging, pruning and tracing of long-running thinking

If you already keep a hand-maintained decision tree in a markdown file, ThoughtDAG is that tree made operational: the model reads exactly the branches you wire in.

Works beside your coding agent

Give the canvas a folder and it becomes a live local file: turn on automatic folder backup, point it at your project directory, and every new node you land updates <canvas-name>.thoughtdag.json on disk as you work. And coding agents read files. That is the whole integration:

  1. Ask your agent CLI to read the file. The question, response and summaries fields carry your full decision history, including which paths were ruled out and why.
  2. For the cleanest handoff, use Markdown export: any context chain or selection becomes a plain .md the agent reads natively.

Example, inside any agent session: "Read ./notes/research.thoughtdag.json and continue from the conclusions; the summaries field lists what was already ruled out."

No plugin, no API, no server. The same file doubles as real data safety: point the backup at a synced folder and it is also your cross-device backup.

Models & subscriptions

Zhipu · Qwen · OpenAI · Anthropic · Google · DeepSeek · Kimi · OpenRouter · Ollama, or any OpenAI-compatible endpoint. Text-only models read already-indexed images through their companion text; unread images go to a vision model, announced. Environment variables and default models → docs/setup.md

Already paying for a subscription? It plugs in. A ChatGPT plan connects through a one-command local bridge (with ThoughtDAG running locally). GLM Coding and Kimi Code plans issue real API keys: pick the preset, paste the key, done. Setup for all three → docs/setup.md#subscriptions

Cost & privacy

  • The free model tier covers every feature; a local Ollama runs fully offline
  • In the desktop app everything lives on your machine: canvases, keys, documents; on the web demo, model traffic runs browser-direct and keys never touch the server
  • PDFs never leave your machine; only extracted text travels when you ask
  • The backup format stays backward compatible; Markdown export is the permanent escape hatch

*The graph is acyclic. You are the loop.* [MIT](./LICENSE) © 2026 Xia Chen · [Roadmap](docs/features.md#roadmap) · [Feedback](https://github.com/chenxiachan/thoughtdag/issues) · [Cite](https://github.com/chenxiachan/thoughtdag#cite-this-repository)