A workspace that retrieves itself.
Tree on the left, editor in the middle, chat on the right. Every node is a typed row, every edit round-trips as markdown, and every answer is grounded in the same store your team edits.
Three views. One store.
A typed knowledge graph.
Everything is a node: docs, tasks, decisions, meetings, bugs, runbooks, people. Each one has a typed kind, a markdown body and edges to others. Backlinks come free.
- slug historyrenames never break links
- typed edgesimplements, blocks, related
- stable idsthe citation surface of the API
Markdown that round-trips.
Slash menu inserts typed blocks, @mentions create real edges, frontmatter carries the metadata. Everything serializes to clean markdown you can paste anywhere.
- / menutask, decision, meeting, citation
- @mentionstyped links, visible in the graph
- citations in placechips open the source row
Answers with rows, not chunks.
Hybrid retrieval over the same store you edit. Every citation resolves to a node id, and agent replies arrive as proposals you review like pull requests.
- citations resolveclick one, the source opens
- streaminglive answer with citation chips
- proposalsaccept or reject each change
Built for your agents too.
The same graph your team edits is a first-class surface for agents: an MCP server, a REST API and a CLI, all reading and writing the same typed rows, with citations they can point back to.
- MCP serverconnect Claude, Cursor or any MCP client
- REST APIread context, write nodes, idempotent re-runs
- llms.txt · agents.jsonagents discover the conventions on their own
POST /mcp · tools/call: context_search
{ "query": "pricing decision" }
3 nodes · 412 tokens · 0.4s
meeting Weekly sync · March 4
decision Three tiers: Free / Team / Scale
task Prepare the pricing pageConnect what you already use.
One-time imports flow into typed nodes, live mirrors keep the graph current, and outbound webhooks fire on every write.
- slackthreads and pins become nodes; proposals go to a review channel
- google meetcalls arrive as meeting nodes with decisions extracted
- notionone-time import: pages to docs, sub-pages to folders
- drivefiles land as typed doc nodes, kept current
- githubmirror to a private repo; PR comments resolve node ids
- lineartwo-way sync between issues and task nodes
See it with your own data.
We're in private beta, onboarding in waves. Connect a tool and watch the field light up.