Docs assistant

Searches these docs locally; a configured answer service can generate responses.

Ask about this page or the wider Carina docs. Try: “How do I roll back a patch?”

llms.txt

Skip to content

Markdown

CLI & TUI

Drive Carina from the terminal — CLI golden path and interactive TUI surface.

The CLI and TUI share the same daemon, policy kernel, and audit trail as JSON-RPC.

  1. Doctor

    carina doctor
  2. Run or open TUI

    cd /path/to/repo
    carina run "your task"
    # or interactive:
    carina

    carina run creates a safe-edit session in cwd and waits for the task (unless --background). Bare carina opens the interactive TUI and auto-starts the daemon when needed.

  3. Inspect

    carina sessions
    carina audit SESSION
    carina audit verify SESSION
    carina patch list SESSION

Open with carina (TTY required). This is the primary operator surface for the 0.8 line.

InputBehavior
?Toggle the help surface (same content as /help)
/Open the slash-command palette (type to filter)
EscClose overlays / dismiss
Ctrl-CInterrupt the active run (default; remappable)
Ctrl-OExpand truncated tool output (default; remappable)

Footer status often shows help/command hints, plus context pressure (ctx% / estimates), HITL approval state, and queue depth when relevant. Prefer the on-screen footer over memorizing keys.

Registered in the TUI (crates/carina-tui/src/command.rs). /exit aliases /quit. Dynamic skill commands (e.g. /review) appear when the daemon registers them.

CommandPurpose
/settingsOpen settings
/statusRuntime and session status
/contextContext pressure and compaction receipt detail
/changesReview patch transactions, files, hunks, and rollback
/densityToggle Compact / Comfortable transcript density
/symbolsPreview and choose terminal symbols
/providerChoose or reconfigure a provider
/modelChoose a model
/planToggle plan mode (exit may require governed approval)
/buildSwitch to build mode
/sessionsBrowse sessions
/importImport local Claude Code or Codex conversations
/resumeResume a session
/cancelCancel the active run (only when a run is active)
/queueInspect / drop follow-up execution queue
/minimalScreen mode: minimal chrome
/fullscreenScreen mode: fullscreen review
/inlineScreen mode: inline / capability fallback
/keymapKeybinding reference
/doctorHealth checks and recovery UI
/helpFull help surface
/quitQuit Carina (/exit alias)

List from the CLI (daemon-backed registry, includes skills when available):

carina commands list

Compact is the default: routine successful reads collapse and verified edits stay reviewable without filling the transcript. Comfortable adds spacing and opens routine tool detail by default. Use /density or the Density row in Settings; both persist the same tui_density preference. An explicit expand/collapse choice always wins over the density default.

Density changes presentation only. It does not change screen mode, policy, approval state, patch identity, or daemon data.

Open /symbols or choose Symbols in Settings to compare four preferences in place:

PreferenceBehavior
AutomaticUnicode by default; ASCII for established legacy-terminal safety signals
UnicodeStandard symbols for fonts with common Unicode coverage
Nerd FontAn explicit opt-in that requires Nerd Font Mono
ASCIIMaximum font compatibility

The saved setting is tui_glyphs: "auto" | "unicode" | "nerd" | "ascii" in the normal global/project config cascade. Candidate rows preview immediately without saving; Apply commits the choice, while Esc keeps the previous one. This is presentation only and preserves the draft, transcript state, selection, disclosure, policy, and screen mode.

Automatic cannot reliably detect installed terminal fonts and never selects Nerd Font. Its conservative ASCII signals include TERM=dumb and legacy native Windows consoles; font coverage can still vary in Windows Terminal and on macOS or Linux. Choose the preview row that remains aligned. Boxes or misaligned symbols mean the font is missing coverage, so use ASCII as the recovery tier.

A valid CARINA_TUI_GLYPHS=auto|unicode|nerd|ascii has highest priority. When it is unset, a truthy legacy CARINA_ASCII forces ASCII ahead of the saved preference. Settings discloses when an environment override owns the active tier. NO_COLOR is independent: it disables product color without changing the symbol tier.

The composer keeps one stable two-row status surface. The first row owns the current action or recovery notice. The second row owns Run, Queue, HITL, Isolation, Context, and ScreenMode. Starting work, receiving output, or waiting for approval does not move the composer or replace those controls with a different layout.

At narrow widths, lower-priority context is compacted before governance state. Run, HITL, Isolation, and a non-zero Queue remain visible; warning or critical context pressure is also protected.

A failure cell records the model that actually served the failed run. The model in the header is the preference for the next run, so changing it never rewrites the history shown in an older failure.

ActionBehavior
Retry currentReuses the failed prompt with the session’s current model and reasoning preference
Replay originalReuses the failed run’s original governed model and reasoning configuration
DetailsShows the retry root, latest run, and failure event identities
Copy IDCopies the failure identity for audit or support

Each retry creates a new immutable run linked to the original; it does not overwrite the failed outcome. Related attempts stay in one failure cell with an attempt count. Once recovery is queued, the retry actions are disabled until a new terminal result arrives.

Actions are visible and clickable. With an empty composer and no active run, press Tab to focus the newest retryable failure, use Tab or the arrow keys to move, Enter to activate, and Esc to return to the composer. Existing drafts and active-run follow-up behavior keep ownership of Tab.

next

In Fullscreen mode, /changes projects each patch as a transaction → file → numbered hunk review. The selected file keeps A/M/D state, addition/deletion totals, hunk attribution, and a bounded diff window. Large diffs show an explicit continuation instead of blocking the frame loop; verify and rollback still operate on the complete daemon transaction.

Rollback confirmation is bound to the exact previewed patch_id and transaction_id, and only opens while the workspace still matches that preview. Navigation is frozen until confirm or cancel, so moving a row cannot retarget a destructive action. Minimal and Inline modes keep the compact changes surface and native scrollback behavior.

Motion communicates active execution or background validation; static approval/input waits do not animate. Set CARINA_REDUCED_MOTION=1 to remove decorative animation deadlines while preserving state, layout, keyboard actions, and progress text.

Risky side effects surface an approval overlay (dual-axis HITL: isolation + approval queue). You can also resolve from another terminal:

carina approve SESSION DECISION_ID
carina deny SESSION DECISION_ID "reason"

See Policy.

Defaults live in the TUI; project/global config can override via tui_keybindings (see product config). Prefer the on-screen footer, ?, and /keymap over memorizing keys.

AreaCommands
Lifecycleinit, status, doctor, update, daemon *, runtime *, runtimes
Workrun, ask, resume, fork, steer, answer, import *
Inspectsessions, items, watch, cost, session review, checkpoint *
Governanceapprove, deny, profile, audit*, patch*, report, export
Orchestrationworkflow *, worker *, schedule *
Memory / contextmemory *, context *
Providersauth *, providers list

Full tables: CLI reference.

Conversation migration: Import conversations.

  • Live binary: carina --help
  • TUI slash registry: crates/carina-tui/src/command.rs · capability ledger: crates/carina-tui/CAPABILITIES.md
  • Recipes: Common workflows

Was this page helpful?

One vote per page is recorded during this session.