What is KiwiFS?
What is KiwiFS?
A markdown filesystem for agents and teams — a single Go binary with a web UI, git versioning, full-text and vector search, and access via REST, MCP, NFS, S3, WebDAV, and FUSE.
How is this different from Obsidian?
How is this different from Obsidian?
Obsidian is a desktop app. KiwiFS is a server with a web UI, agent APIs, git audit trail, and server-side search over the same markdown files.
How is this different from Notion or Confluence?
How is this different from Notion or Confluence?
Those tools store content in proprietary databases. KiwiFS stores plain markdown.
cat page.md and git clone always work.Do I need to know Git?
Do I need to know Git?
No. Git runs under the hood; the API and web UI hide it. Git is the audit trail, not the primary interface.
Is KiwiFS production-ready?
Is KiwiFS production-ready?
KiwiFS is in active development (currently v0.19). Core features are stable in internal production use. Public APIs may evolve before v1.0.
Installation
System requirements?
System requirements?
A single static Go binary. SQLite is embedded. The web UI is embedded via
go:embed. Runs on macOS, Linux, and Docker.How do I install?
How do I install?
What is in .kiwi/?
What is in .kiwi/?
Derived state — not your content. Safe to delete and rebuild with
kiwifs reindex.Agents
How do agents write?
How do agents write?
Three ways:
- Filesystem — NFS or FUSE mount:
cat,echo,grep - REST —
PUT /api/kiwi/file - MCP —
kiwifs mcp --root ~/knowledge(60+ tools)
Can agents use KiwiFS without a running server?
Can agents use KiwiFS without a running server?
Yes.
kiwifs mcp --root ~/knowledge runs in-process against the directory. No HTTP needed.How do I configure Cursor or Claude Desktop?
How do I configure Cursor or Claude Desktop?
How does provenance tracking work?
How does provenance tracking work?
Send
X-Actor and X-Provenance on writes. KiwiFS injects derived-from into frontmatter automatically.Search
What search backends exist?
What search backends exist?
| Tier | Engine |
|---|---|
| 1 | grep (zero deps) |
| 2 | sqlite (FTS5, BM25 — default) |
| 3 | Vector ([search.vector] — optional) |
Vector search without a cloud API key?
Vector search without a cloud API key?
Use Ollama as the embedder and
sqlite-vec as the store for fully local semantic search.Rebuild the index?
Rebuild the index?
Protocols
NFS vs S3 vs WebDAV vs FUSE?
NFS vs S3 vs WebDAV vs FUSE?
| Protocol | Best for |
|---|---|
| NFS | Docker / Kubernetes mounts |
| S3 | Backup tools, pipelines |
| WebDAV | Desktop sync, mapped drives |
| FUSE | Developer workstation remote mount |
Data
Crash mid-write?
Crash mid-write?
Atomic writes (temp → fsync → rename). Git reflog aids recovery.
Backup?
Backup?
git pushto any remotekiwifs backup/[backup]in configkiwifs restore --from ... --to ...rsyncthe knowledge root
Migrate from Obsidian or Notion?
Migrate from Obsidian or Notion?
License
Commercial use?
Commercial use?
BSL 1.1 — self-host and embed freely. You cannot offer KiwiFS itself as a commercial hosted service. Each release converts to Apache 2.0 after four years.
Contribute?
Contribute?
See CONTRIBUTING.md.