First Search
Register a database, start the daemon, drop a file into the inbox, and query it over the read-only HTTP API.
Register a database
kura add my_docs
This command:
- Collapses whitespace in the name into underscores.
- Creates
~/.config/kuradb/my_docs/inbox/. - Creates
~/Kura_my_docsas a symlink to the inbox. - Registers
my_docsin~/.config/kuradb/db.json.
The command fails when the name is already registered or ~/.config/kuradb/my_docs already exists. A database added while the daemon is running is not hot-loaded; restart KuraDB before querying it.
Start the daemon
kura
The foreground launcher starts a detached --daemon process and waits up to 10 seconds for the endpoint file. When ready, it prints a URL such as:
http://localhost:43127
The daemon loads registered databases, restores caches from SQLite, starts a watcher and an embedding loop for each loaded database, and binds the read-only HTTP API to 127.0.0.1. If the endpoint file does not appear in time, the launcher exits with an error that points at ~/.config/kuradb/daemon.log.
Index a file
cp document.md ~/Kura_my_docs/
The watcher polls every 10 seconds. Changed files are parsed and written to SQLite; the embedding scheduler polls every 5 seconds and processes at most 64 pending chunks per batch. Keyword search sees a chunk once it is written; semantic search sees it after it is embedded.
Run a search
Read the selected endpoint and query both strategies:
BASE="$(cat ~/.config/kuradb/endpoint)"
curl "$BASE/api/search?db=my_docs&q=what+is+RAG&limit=5"
Use target=keyword or target=semantic to run only one strategy:
curl "$BASE/api/search?db=my_docs&q=vector+cache&target=semantic"
See Search API for every parameter and the response shape.