Markdown filesystem for agents and teams.
Searchable. Structured. Versioned. One binary, zero config.
Docs · API · Storybook · Examples · FAQ · Roadmap · Architecture · Contributing
curl -fsSL https://raw.githubusercontent.com/kiwifs/kiwifs/main/install.sh | sh
kiwifs init --root ./knowledge && kiwifs serve --root ./knowledge
# Open http://localhost:3333Or with Docker:
docker run -p 3333:3333 -v ./knowledge:/data ameliaanhlam/kiwifsMarkdown is the lingua franca of agents and developers, but raw .md files are just files. No search, no versioning, no structure. Current solutions make you choose: databases agents can't read, read-only retrieval layers agents can't write to, ephemeral sandboxes that vanish, or proprietary SaaS you can't self-host.
KiwiFS makes markdown files writable, searchable, queryable, versioned, and human-readable. Files are the source of truth. Everything else is a derivative index you can rebuild.
AGENT HUMAN
cat /kiwi/pages/auth.md Web UI (wiki links, graph view,
grep -r "timeout" /kiwi/ block editor, dark mode)
echo "# Report" > /kiwi/r.md Cmd+K search, backlinks, TOC
| |
Markdown files on disk (single source of truth)
| | |
Git versioning FTS5 + vector SSE events
(audit trail) (search index) (live updates)
| 62 MCP tools | Native integration with Claude, Cursor, and any MCP client. Docs |
| Web UI | Block editor with wiki links, backlinks, knowledge graph, and dark mode. Embedded in the binary via go:embed — no separate frontend to deploy. Browse components |
| Full-text + vector search | BM25 via SQLite FTS5. Pluggable vector: OpenAI, Ollama, ONNX, Cohere + sqlite-vec, Qdrant, pgvector, Pinecone. Docs |
| Git versioning | Every write is an atomic commit. Blame, diff, point-in-time restore. Docs |
| DQL queries | SQL-like queries over frontmatter. TABLE, LIST, COUNT, WHERE, SORT, GROUP BY. Docs |
| 6 access protocols | REST, MCP, NFS, S3, WebDAV, FUSE. All flow through one storage layer. Docs |
| 19 data importers | Postgres, MySQL, MongoDB, Notion, CSV, Obsidian, and more. Docs |
| Content health | Stale page detection, broken links, orphans, contradiction finder, trust-ranked search. Docs |
| Multi-space | One server, multiple isolated workspaces. Each with its own git repo and search index. |
| Webhooks | POST to Slack/CI/custom URLs on write/delete events. HMAC signing, retry with backoff. Docs |
| Schema validation | Enforce structure with JSON Schema on writes. Docs |
| Wiki links | [[page]] syntax with backlinks, knowledge graph visualization. Docs |
| Data export | JSONL/CSV with optional embeddings, link graph, and content. Docs |
| CLI | 25+ commands: serve, mcp, query, import, export, lint, connect, and more. Docs |
| Embeddable | Use as a Go library (pkg/kiwi) in your own app. Docs |
See all features and configuration
# Install (macOS / Linux)
brew install kiwifs/tap/kiwifs
# or: curl -fsSL https://raw.githubusercontent.com/kiwifs/kiwifs/main/install.sh | sh
# or: go install github.com/kiwifs/kiwifs@latest
# Initialize
kiwifs init --template knowledge --root ./knowledge
# Serve
kiwifs serve --root ./knowledge
# REST API on :3333, web UI at http://localhost:3333
# Write from an agent
curl -X PUT 'localhost:3333/api/kiwi/file?path=pages/auth.md' \
-H "X-Actor: my-agent" \
-d "# Authentication\n\nOAuth2 + JWT..."Local (Claude Desktop / Cursor / any MCP client):
{
"mcpServers": {
"kiwifs": {
"command": "kiwifs",
"args": ["mcp", "--root", "/path/to/knowledge"]
}
}
}Cloud (KiwiFS Cloud workspace):
{
"mcpServers": {
"kiwi": {
"url": "https://api.kiwifs.com/api/workspaces/my-workspace/mcp",
"headers": { "Authorization": "Bearer ${env:KIWI_API_KEY}" }
}
}
}Or auto-configure all detected clients with one command:
kiwifs connect my-workspace --write auto| KiwiFS | Git repo | Postgres | Obsidian | Chroma | |
|---|---|---|---|---|---|
| What it is | Markdown filesystem | DIY files + git | Relational database | Local markdown editor | Vector store (OSS) |
| Agents can write | MCP, REST, cat |
echo + manual commit |
SQL inserts | Local files only | Upsert embeddings |
| MCP support | Native (62 tools) | No | No | No | No |
| Human-readable UI | Built-in web UI | Raw files / GitHub | Needs custom UI | Desktop app | No |
| Search | FTS (BM25) + vector | grep |
SQL LIKE / pg_trgm |
Plugins | Vector similarity |
| Structured queries | DQL over frontmatter | No | SQL (full power) | Plugin (Dataview) | Metadata filters |
| Versioning | Auto git commits | Manual | WAL / migrations | No | No |
| Data format | Markdown (portable) | Markdown (portable) | Tables (locked in) | Markdown (portable) | Embeddings (opaque) |
| Best for | Agent workspace + team wiki | Simple scripts | App backends | Personal notes | OSS semantic search |
AI agent builders — Your agents write markdown via MCP, REST, or cat. Humans browse the same files in a web UI with wiki links and graph view. Context compounds across sessions instead of vanishing.
Teams replacing Confluence / Notion — Markdown files on disk, wiki links, graph view, Notion-like editor. git clone your entire wiki. Self-hosted. No vendor lock-in.
Compliance-heavy industries — Every change is a git commit with SHA-1 hash chain. Immutable audit trail. git blame for per-line attribution.
DevOps / platform teams — Runbooks that agents update after every incident. Humans review in the UI. No more docs that rot.
┌──────────────────────────────────────────────────────────┐
│ KiwiFS single Go binary
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Web UI (embedded via go:embed) │ │
│ │ shadcn/ui · CodeMirror · react-markdown · Sigma.js│ │
│ └────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌────────────────────▼───────────────────────────────┐ │
│ │ Access: REST :3333 · NFS :2049 · S3 :3334 · WebDAV│ │
│ └────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌────────────────────▼───────────────────────────────┐ │
│ │ Core │ │
│ │ Storage · Git versioning · FTS5 + Vector search │ │
│ │ Watcher (fsnotify) · SSE events · Schema/lint │ │
│ └────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌────────────────────▼───────────────────────────────┐ │
│ │ Filesystem: local · NFS · EFS · JuiceFS · FUSE-S3 │ │
│ └────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
Built something on KiwiFS? Open a discussion and we'll list it here.
| Project | Description | Author |
|---|---|---|
| pi-kiwifs-extension | Full KiwiFS integration for the Pi coding agent | @jontstaz |
- PocketBase — single Go binary, zero config, just works. KiwiFS brings the same philosophy to markdown infrastructure.
- Obsidian — files are the database. Wiki links. Graph view. KiwiFS is Obsidian for the web, plus agents and an API.
- Karpathy's LLM Wiki — raw sources in, compiled wiki out, agent maintains it. KiwiFS is the production runtime for this pattern.
- Notion / Confluence — great UIs, but your content is locked in their database and agents can't use them. KiwiFS gives you the editing experience without the lock-in.
Business Source License 1.1 — free to use, self-host, and modify. The only restriction: you can't offer KiwiFS as a commercial hosted service. Each release converts to Apache 2.0 after 4 years.
If you want to offer KiwiFS as a managed service or need a commercial license, get in touch.
"KiwiFS" and the KiwiFS logo are trademarks of the KiwiFS Authors. See LICENSE for trademark usage guidelines.
Thanks to everyone who has contributed to KiwiFS.
Want to help? See CONTRIBUTING.md.









