Skip to content

Your first conversation ​

Open a project directory and launch Kuru. Starting with the offline provider makes it easy to explore the interface before signing in:

sh
cd /path/to/project
kuru --provider demo

The demo provider needs no credentials or network access. Kuru includes its verified Dolt engine and licenses; first memory use extracts them locally, and later launches reuse the cache. See local storage for details.

Or select the project without changing directories:

sh
kuru -C /path/to/project --provider demo

Meet the pool ​

The welcome portrait shows the selected framework. Type a prompt and press Enter. Kuru runs a bounded turn through its peers and returns a response under the selected speaking identity.

Try /parts to inspect the active peers and relationships. The starting IFS pool includes Self, two managers, two firefighters, and two exiles. Each role offers a different tendency; Self has no supervisory authority over the others.

The wide layout shows peer activity and relationship membership alongside the conversation. A narrow pane keeps the conversation and editor central. Each completed reply shows the returned speaker or relationship and its input/output token counts beneath the reply. Tool-call and peer-round limits are named separately. An empty model response is labeled as a response outcome, while an older limited result whose cause was not stored is labeled as an unspecified legacy limit. Activity reports describe routing and phases without exposing private peer messages; they do not determine the final reply.

Make it yours ​

For a one-shot script, use kuru run "PROMPT" --json, or pipe UTF-8 text into kuru run. An argument plus a nonempty pipe sends the argument followed by separately labeled literal data. Input is limited to 128 KiB before project authority starts. --output-format stream-json gives bounded public status, replaceable facing-text snapshots and a terminal outcome; it is not a lossless token stream. Errors, hooks and compaction notices stay on stderr. See headless input and output for precedence, gaps, exit codes and exact retry after interrupted output.

The controls beside the composer show your current choices:

KeyChoice
F2Model
F3Reasoning effort
F4Framework

Below them, a standing row keeps the last prepared request's context estimate and this session's cost estimate next to the permission counts, so one screen carries all six. An unknown price reads as cost unknown, never as a zero charge or a quota, and the figures are the ones /cost and /permissions report. Very narrow terminals abbreviate that row rather than drop a control.

Type in a picker to filter, use the arrow keys to move, and press Enter to select. Escape closes it. Your unsent draft stays in place. Choices persist for this project, including after quitting and relaunching.

Use Alt+Enter for a newline. Page Up, Page Down and the mouse wheel read the public transcript, fetching older pages as needed. Ctrl+F finds literal, case-sensitive text beyond the viewport; Enter visits the next match and Escape restores your previous reading position without changing the draft. During work, Escape or Ctrl+C cancels the operation. While idle, Ctrl+C quits.

The composer moves by grapheme, so combining marks and joined emoji stay together. At the top or bottom line, Up and Down browse submitted prompts from this session. Ctrl+R searches those prompts; Escape restores the unsent draft. This bounded history is temporary in-memory state, separate from the saved conversation.

On Unix terminals that send bracketed-paste events, large or multiline pastes appear as compact chips while the provider still receives the exact pasted text. Put the cursor on a chip and press Ctrl+G to expand or compact it, or Ctrl+X to remove only that pasted span. Drafts are limited to 128 KiB; a paste that would exceed the limit is rejected as a whole.

Windows currently receives pasted input as individual console keystrokes. It does not identify an atomic paste block, so paste chips and whole-block rejection are unavailable there; review multiline input before sending it.

Cancellation waits for the active operation to settle and keeps your submitted prompt in the transcript. If an answer completed first, Kuru shows it. Otherwise Kuru stores a fixed interruption marker that remains visible after later work and resume. /retry reuses only the last submission's exact durable ID, prompt and target. It can return an already completed result or finish work interrupted before possible dispatch without duplicating the displayed prompt. It refuses when an external call may already have been received. Entering another prompt is new work; Kuru does not retry automatically.

Settings cannot change during active work. Cancel or wait for the turn to finish before choosing another model or framework.

Work with files ​

File reading and listing are available inside the project. Writes and shell commands each need explicit permission:

sh
kuru --allow-write
kuru --allow-write --allow-shell

Shell commands use your account's process permissions, including access beyond the project. Tools and permissions explains these boundaries and configured MCP tools.

Tool calls appear as collapsed cards beneath their submitted prompt. Press F6 to select a card and F7 to expand or collapse it; your unsent draft stays in place. Shell previews are partial until the call settles. File changes can show the checked recorded diff, even if the workspace has changed since the write. Private peer and cognitive arguments and results stay withheld. Card details are temporary; resumed history does not reconstruct missing output. See tool cards.

Kuru reads applicable ancestor and project-root AGENTS.md and CLAUDE.md files, with nearer instructions taking precedence. Checked @relative/file.md imports can add bounded Markdown sources. When an actor first reaches nested project instructions through an authorized file path, Kuru asks for separate workspace trust before using them. A newly instructed write pauses for replanning before changing the file. See configuration and workspace trust.

Return to the work ​

/quit ends the session. A fresh launch starts a new conversation while preserving project choices and the peers' durable memories. To continue a specific transcript:

sh
kuru sessions
kuru --resume SESSION_ID

See sessions and dreaming for memory consolidation, membership changes, and their controls.

Reduce motion ​

Framework portraits use fixed ASCII contours with a slow color cycle. The composer stays still while you type. To make ornament static:

sh
KURU_REDUCED_MOTION=1 kuru

Operation timers and meaningful activity continue updating. No special icon font is needed.

For the complete command list, use /help or open commands and shortcuts.

Persistent peers. Deliberate tools. Your terminal.