Disclosure: I maintain ThoughtDAG.
While using local models for research, I kept running into a simple problem: once a paper, hypothesis, or mistaken branch enters a chat, it tends to remain in later context even after I have mentally moved on.
I built ThoughtDAG to test a more explicit interaction model.
Each question, answer, and source is a node. The wires determine exactly which upstream nodes are serialized into the model’s next request.
Delete a wire, regenerate the same prompt, and that branch remains visible on the canvas but disappears from the actual model input.
It currently supports Ollama and OpenAI-compatible endpoints. Canvases, documents, and API keys are stored locally.
I am less interested in general promotion than in whether this interaction is actually useful for people running local models:
- Would manual context pruning be worth the effort with smaller context windows?
- Would you prefer automatic suggestions followed by human confirmation?
- What would you need to inspect before trusting the selected context?
I am also turning these questions into a small context-control benchmark, so failure cases are especially useful.


The nodes are human-readable; the wire itself is visible context.
For example, a source node might contain a passage extracted from a PDF. If it is wired into a question or synthesis node, that content is included when ThoughtDAG builds the model request.
A solid wire carries the full upstream context, while a dashed wire can carry a smaller reference. Delete the wire, and the source remains visible on the canvas but stops contributing to that downstream context.