Japanese-aware search
Keyword search (FTS5 + the sqlite-vaporetto morphological tokenizer), semantic search (sqlite-vec KNN over local embeddings), and hybrid search with local-LLM reranking.
kura stores your Markdown and HTML documents in a single local
SQLite file and makes them searchable by both humans and AI agents —
with hybrid search tuned for Japanese text. No forced filing, no
cloud, no account.
Quick Start (5 min)
Read the concept
Notes pile up faster than any mandatory hierarchy can keep them tidy.
kura never forces a filing decision: documents organize themselves
through buckets, hierarchical tags (tech/db/sqlite), and
wiki links ([[Title]]), with optional document paths
(db/sqlite) when a folder-like name helps. Write a link before the
target exists and it connects automatically the moment that page is
created.
Retrieval is the hard part, and kura leans into it with a hybrid search pipeline built for Japanese: a morphological FTS index, semantic vector search over local embeddings, and local-LLM reranking — all inside one SQLite database.
Japanese-aware search
Keyword search (FTS5 + the sqlite-vaporetto morphological tokenizer), semantic search (sqlite-vec KNN over local embeddings), and hybrid search with local-LLM reranking.
Fully local
Your data lives in one SQLite file at ~/.kura/kura.db. Ollama
and LM Studio are auto-detected; without them, keyword search
still works.
Self-organizing
No forced filing. Buckets, hierarchical tags, and [[wiki links]]
keep documents connected; document paths are optional, and the
bucket root works as an inbox.
Built for AI agents
An MCP server (kura mcp) exposes search and CRUD as tools, and
every read command speaks --json.
kura keeps working without a model. Keyword search, document CRUD,
links, and tags never need one, and kura query still returns keyword
results when semantic search or reranking is unavailable — while clip
formatting and query expansion quietly fall back. The commands that are
inherently model-driven, kura vsearch and kura audit contradictions,
tell you when no provider is reachable. Run it on an airplane; you lose only the
features that genuinely need a model.
Ready? Head to the Quick Start.