Skip to content

kura

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.