Combine the flexibility of plain text with the capabilities of a structured database in a local-first knowledge base with bidirectional Markdown sync, editor integration, and rich API.
Warning
This project is currently in early development.
Internal data structures, configuration formats, and APIs are subject to breaking changes.
Data loss is possible. Do not use for critical data without independent backups.
- Bidirectional Markdown sync: Markdown files are a first-class view of the graph. Edit in any editor or update via the CLI or API and Binder keeps both consistent.
- Transaction log: Every change is recorded as an append-only entry in
.binder/transactions.jsonl, so state can be rebuilt, audited, and replayed reliably. - Template system: Render structured data into Markdown using templates and extract updated field values back from the edited document, enabling reliable round-trip editing.
- Editor integration: Binder runs as a language server that provides link completion, schema validation, diagnostics, and hover previews while you edit.
- Local-first and private: Your data stays on your machine, and syncing or backups can be simple because the log is the source of truth.
Binder separates data from representation, allowing humans, agents, and automation to collaborate on the same knowledge graph.
- Editors: Use plain Markdown in VS Code, Vim, or Obsidian, with Binder providing inline intelligence and validation as you type.
- AI agents: Agents can read Markdown for broad context, then use MCP to query the structured graph and to apply updates programmatically.
- Automation: Use the CLI and API to import data, run batch updates, generate reports, and build pipelines that read and rewrite your workspace safely.
- Bun (v1.2+ recommended)
-
Clone the repository:
git clone <repo-url> cd binder
-
Install dependencies:
bun install
Binder is a monorepo containing the core database logic, CLI, and integrations.
To run the development CLI:
bun run devTo build the CLI for production:
bun run buildTo inspect the Model Context Protocol (MCP) server:
bun run mcp:inspectBinder manages your knowledge graph configuration in the .binder/ directory:
templates/: Define markdown templates for rendering and extraction.types.yaml: Define entity types (e.g., Task, Person, Project).fields.yaml: Define reusable fields and their validation rules.config.yaml: General workspace settings.



