/stream
/stream summary|concise|chatty|full
/stream concise -jev
/stream -jev
/stream -jev off
/timeout
/timeout idle 15m
/timeout max 3h
/context
/compact [note]
/status
/s
/stop
/x

Verbosity (/stream)

Global. Survives /new.
ProfileWhat you see live
summaryNothing until the final answer
conciseDefault. One final answer. While it works: a few short ▸ step lines (what it is about to do, never part of the answer), fan-out 🧩 n/m, and a 15-min still-running note.
chattyNarration + throttled 🧠 excerpts
fullchatty + per-unit 🧠 + 🔧 tool lines
Concise step lines are sparse on purpose: none in the first 10 seconds (a fast turn is one message), then at least 45 seconds apart, at most 8 per turn, one plain sentence each. They say what it is about to do. They never name a command, a path, a tool, or a file. A tool that runs with no sentence sends nothing. Tool results and unbounded raw thinking are never relayed. /stream concise -jev (also --jev) records a Jev length label (terse, normal, or long) in the log. It does not instruct the agent. Default off. /stream concise without -jev turns it off. /stream -jev keeps the current profile and turns it on. /stream -jev off turns it off. Legacy names off notes measured comprehensive are accepted and stored as the canonical profile.

Timeouts

Idle does not stop a live turn. A long think with no stream line is work, not a stall. Max is the hard stop (default 3h). /stop aborts now. After 15 minutes of no output you get one still running note. The turn keeps going. Send /stop if you want it cancelled. Bounds: idle 30s–24h, max 60s–24h. Durations: seconds or 15m / 3h. CLI: telekit config timeout --idle 15m --max 3h. OpenCode buffers output, so its idle watchdog is effectively off; the max ceiling still applies.

Context and compact

/context — window use for this lane. No model turn. Telekit also sends a note the first time this lane crosses 50%, and again at 80%. At 50% there is still room. At 80% the note points at /compact or /new. Each mark fires once until /new or a compact. /settings set context.warn off stops those notes. Default is on, and it is one switch for every chat. The next message reads the new value. No daemon restart. Telekit sends a separate note the first time this lane’s transcript crosses 10 MB, and again at 20 MB. That note points at /new. Each mark fires once until /new or a compact. /settings set transcript.warn off stops those notes. Default is on, one switch for every chat. The next message reads the new value. No daemon restart. It leads with how full the window is — a percent, a bar, and one line telling you whether to act (green: room; orange: compact soon; red: compact or clear now). Below that: tokens used, tokens free, model, turn count, and the session id. The number is read live from the harness. If a harness does not publish a window (OpenCode, Telekit), /context says the use is unknown rather than guessing. Claude’s window comes from the model: Fable 5.1, Opus 5, and Sonnet 5 are 1M; Haiku is 200k. A figure larger than the window is dropped rather than shown as 100%. /compact [optional note] — ask the harness to compress. Codex has no manual compact; use /new. Grok writes a compact checkpoint; if it does not, the reply says the window is unchanged. After a compact, /context reports the new window straight away — the run it just discarded is not counted, and the turn count restarts.

Status

/session — live harness turns on this folder. /session <node> lists turns on every folder of that node (it does not switch /node). Each row has an Id. /session kill <id> stops that turn. /session prune drops waiters on this folder and leaves the running turn. prune and kill are reserved — /session prune never means “a node named prune.” /sessions is the same command. Several turns may run in one folder unless TELEKIT_FOLDER_LOCK=1. The wait line (⏳ Waiting) is the global cap, not a folder lock. Not leftover /new history. /status or /s — a two-tier snapshot. The headline is what you steer with: harness · model · effort, then the node (and thread, if it is not the default), then the context bar with the percent and a headroom note, then whether a turn is running. A Details table below it carries stream, ack, persona, timeouts, bot profile and the daemon version. A locked lane says so in the headline. No session ids, no paths. Works while locked.

Stop

/stop or /x — cancel your running turn on this lane and drop queued turns behind it. Locked-safe. Session id is kept, so the next message resumes the same thread.