ThoughtDAG lets you edit LLM conversation history as a graph
A new interface shows chat threads as directed acyclic graphs where you can rewrite nodes and re-run paths. Fixes the branching problem most chat UIs ignore.
Most LLM chat interfaces treat conversation history as a linear append-only log. You ask a question, the model answers, you ask another question. If you want to try a different path, you start a new chat or copy-paste context around. ThoughtDAG renders the conversation as a directed acyclic graph where each message is a node. You can edit any node in the middle of a thread and re-run the model from that point. The interface keeps all branches visible. If you ask three follow-up questions from the same parent message, you see three paths, not three separate chats. The demo shows editing a node where the model gave a wrong answer, then watching the correction propagate forward through the rest of the conversation. That is the interesting bit. Most chat UIs give you no way to fix a bad turn without losing everything that came after it.
Why graphs instead of trees
A tree would let you branch. A DAG lets you merge. If two conversation paths converge on the same conclusion, you can join them back into a single node. The paper calls this “thought merging”. I have not seen another interface that treats chat history as something you can reshape after the fact. The rendering is messy once you have more than a dozen nodes. The authors know this. They mention automatic layout algorithms in the limitations section. But the core idea holds: conversation state is a graph, not a list, and the UI should admit that. I would use this for debugging prompt chains. Right now I keep a text file of iterations and manually track which version led where. A graph view would make that legible.
Source: Show HN: ThoughtDAG – An editable context graph for LLM conversations