Getting Started

Kura is a personal agent OS: a local Rust daemon (the control plane) plus thin clients — a full-screen terminal UI (kura-tui), a React web shell, and chat-channel connectors. The daemon owns runtime state, provider dispatch, policy gates, memory, and event fan-out; clients are thin consumers of its HTTP API.

Install

One line (macOS and Linux, arm64 + x86_64):

curl -fsSL https://kura.dopejs.com/install.sh | sh

The installer detects your platform, downloads the latest GitHub Release, verifies its SHA-256 against the release’s SHA256SUMS, and installs kura (the daemon) and kura-tui (the terminal client) into ~/.local/bin or /usr/local/bin.

Pin a version or destination with:

KURA_VERSION=v0.3.0 KURA_INSTALL_DIR=~/bin sh -c "$(curl -fsSL https://kura.dopejs.com/install.sh)"

Prefer manual? Grab a tarball from the releases page:

curl -LO https://github.com/dopejs/kura/releases/latest/download/kura-0.3.0-aarch64-apple-darwin.tar.gz
tar xzf kura-0.3.0-aarch64-apple-darwin.tar.gz
sudo install -m 755 kura-0.3.0-aarch64-apple-darwin/{kura,kura-tui} /usr/local/bin/

Build from source

Requirements: Rust (1.85+), pnpm (for the web client).

git clone https://github.com/dopejs/kura
cd kura

# Daemon + TUI
make daemon-build                 # emits crates/target/release/kura
cd crates && cargo build --release -p kura-tui  # emits target/release/kura-tui

# Web client + SDK
pnpm install
pnpm build:clients

Run the daemon

The kura CLI manages everything:

kura daemon start                 # background daemon: pidfile + logfile
kura daemon status                # pid, health, version
kura daemon stop                  # graceful stop
kura daemon run                   # foreground (for services/systemd)

kura tui                          # terminal client
kura web                          # serve + open the web operator shell
kura config show                  # effective configuration
kura config set llm.defaultProvider claude_code_cli
kura config edit                  # $EDITOR on config.json (validated)

Kura has two environments, selected by KURA_ENV:

Mode Data dir Bind address Command
prod (release default) ~/.kura 127.0.0.1:19191 kura daemon start
test ~/.kura-test 127.0.0.1:19192 KURA_ENV=test kura daemon start

From a source checkout, the Make targets wrap the same thing and default to the test environment (the safe development default):

make daemon-run-test              # test env
make daemon-test-status           # health check (GET /healthz)
make daemon-run-test-live         # test env with Discord enabled

Live connectors (Discord etc.) are disabled by default everywhere until you enable them in config.

First conversation

The daemon always ships a deterministic echo provider, so you can talk to it before configuring any model:

curl -s http://127.0.0.1:19191/v1/chat/query \
  -H 'content-type: application/json' \
  -d '{"query": "hello", "provider": "echo"}'

Then configure a real provider (Claude CLI, Codex CLI, or any OpenAI-compatible endpoint) — see Configuration.

Terminal UI

kura tui                          # full-screen Claude-Code-style client

The TUI includes a live daemon event stream viewer (/events).

Last updated: