Dotabases
The one primitive everything in Dots is built on: typed rows under a closed schema, enriched by behaviors, connected by edges, and read through views by you, the CLI, and your agents.
A Dotabase is a typed collection of rows that keeps its structure. Because the structure survives the act of writing something down, the same knowledge is a table you scan, a graph you traverse, and context an AI reads. Nothing is exported or converted between those three readings.
Everything you or an agent stores in Dots is a row in a . A Tasks Dotabase and a Songs Dotabase are the same two database tables wearing different schemas, different views, and different behavior bindings. That is what makes one primitive rather than a bundle of features: a capability built for one Dotabase works on every Dotabase, including the ones you have not created yet.
Key Features
- Typed Rows — a title, a body, and typed properties drawn from thirty-three built-in property types, so a date comes back a date and a number a number.
- Closed Schema — a write naming a property the schema does not declare is refused, which is what lets a filter, a view, or an agent depend on the shape.
- Behaviors — thirty-nine enrichment behaviors across six lifecycle hooks, each Dotabase binding only the ones it wants: classification, embedding, version history, relation-to-edge promotion.
- Typed Edges — seventy-nine built-in verbs in five categories, connecting rows across two Dotabases or out to a code symbol.
- Ten Types — table, board, gallery, list, calendar, timeline, stream, wheel, graph, and dashboard over the same rows. A view is a lens, never a copy.
- Hybrid Search — full-text and semantic retrieval over the same row, because both the search vector and the embedding live on it.
- Operation Manual — stored guidance that rides along to an agent reading the Dotabase, so it knows how the rows are meant to be used. See the Dotabase Operation Manual (DBOM).
- Three Ways In — the web app, the
dotsCLI, and any agent on MCP reach the same data, every read and write scoped to one company.
Get Started
- Create A Dotabase — the short path from nothing to a schema and a first row.
- Import From Markdown — when the knowledge already exists as a folder of files.
- Import Your Coding-agent Conversations — bring in your local Claude Code, Codex, and Cursor history.
- Publish A Dotabase To The Web — when a Dotabase is worth showing to people outside the workspace.
Resources
- How Dotabases Work — the anatomy, property by property.
- Views And Lenses — every view type, and how dashboards are assembled.
- Foundational And Internal Dotabases — the four seeded into every workspace, and the internal ones behind specific features.
- Conversations — the import-only Dotabase your dialogue lands in.
- DIIICE — the six-value taxonomy rows are classified against.
- Chat Overview — hold a conversation against these rows.
Get Started
- How Dotabases WorkA Dotabase is the platform's foundational primitive — typed rows with a schema, behaviors, edges, views, and an Operation Manual.
- Create A DotabaseName a Dotabase, give it a schema, and add your first rows — from the CLI or the app.
- Views And LensesThe same rows, seen many ways — table, board, gallery, calendar, graph, and dashboard views, each a saved lens over your data.
- Foundational And Internal DotabasesFour canonical foundational Dotabases ship alongside always-seeded internal Dotabases such as Context Cabinet and Glossary.
- ConversationsHow live chat turns and imported coding-agent sessions land in one seeded Dotabase, what a conversation row carries, and how to read one back from the CLI, search, or the app.
- Import Your Coding-agent ConversationsBring your local Claude Code, Codex, and Cursor session history into the Conversations Dotabase: consent per folder, back-fill once, then tail for new sessions.
- Import From MarkdownBring a folder of Markdown files into a Dotabase with one command — frontmatter becomes properties, and re-runs stay idempotent.
- Publish A Dotabase To The WebPublish selected views of a Dotabase as an anonymous public page, share the link, and read the same publication back over the public MCP, CLI, and REST surfaces.