
The world is divided into word-processing, spreadsheet, database and other applications. Computers are hierarchical. We have a desktop and hierarchical files which have to mean everything.
Right now you are a prisoner of each application you use. You have only the options that were given you by the developer of that application.
All of this is phoney. It is a system of conventions that have been established and we can have better conventions.
- Ted Nelson, Visionary lays into the web
Dialog is an embeddable database designed for local-first software.
It has (or aims to have) the following properties:
Dialog is in active development and should be considered experimental in nature.
Expect fundamental details to break over time (binary encoding, index construction etc.). At this stage, we cannot offer any promise of a path to migrate old versions of the database forward as breaking changes are landed.
./rust: the core implementation of Dialog../typescript: packages for using Dialog in TypeScript and/or React../adr: architectural design records./notes: informal notes about Dialog or adjacent topicsThis project encodes a comprehensive development environment via Nix flakes. If you have Nix installed, you can drop into a shell with all the tools you need to build and modify Dialog using the following command:
nix develop
From a suitable development environment, you can build using standard Rust and Node.js tooling. For example: cargo test will run the full Rust test suite for your native target.
This project is licensed under the Mozilla Public License 2.0.
$ claude mcp add dialog-db \
-- python -m otcore.mcp_server <graph>