Docs / CLI reference

The lisa command center.

One command center: every user-facing verb lives under lisa <verb> — never scattered helper scripts (PLAN §5.4, Appendix E rule 4). This table is generated from the actual clap definitions in cli/lisa/src/main.rs.

Text verbs share one endpoint flag: --url defaults to http://127.0.0.1:7777 (env LISA_INFERENCE_URL).

VerbWhat it doesKey flags
lisa askAsk the system model. Reads stdin when piped, e.g. git log | lisa ask "changelog, markdown".--model, --no-stream, --json-schema <file>, --background, --url
lisa explainExplain the last failed command: lisa explain --exit 101 cargo build, or pipe the output — make 2>&1 | lisa explain. Bare lisa explain uses what the terminal hooks stashed about the last failure.--exit <code>, --model, --url
lisa suggestNatural language → ONE shell command, printed for review — never executed (the Ctrl+G terminal hook calls this). stdout is exactly the command; the explanation goes to stderr.--json, --model, --url
lisa modelsManage the local model store: list, verify, gc, rm, pull (pinned blake3), profile, catalog, get, hash, add.--store <dir>; per-subcommand flags like --json, --runnable, --blake3
lisa doNatural language → a confirmed tool action on the Agent Bus: lisa do "add milk to my notes" (ADR-0013 intent router).--dry-run, --yes, --model, --url
lisa toolsList tools on the Agent Bus.
lisa callCall a tool on the Agent Bus directly: lisa call app.lisaos.notes create_note '{"title":"milk"}'.--yes
lisa undoRevert the last undoable agent action.
lisa ledgerRead the append-only audit ledger.--tail <n> (default 20), --json, --db <path>
lisa contextContext fabric: index and search your files. Subcommands: index <dir>, search <query>.index: --embed · search: --limit, --hybrid, --scope (repeatable)
lisa memoryPer-app durable memory. Subcommands: get, set, list, wipe.--app <namespace> (default "host"); wipe: --yes
lisa installWrite the newest Lisa OS release to a whole disk — ERASES IT. The proto-installer (a guided OOBE installer is M7).--from <file>, --yes
lisa updatePull the newest OS release into the inactive A/B slot (systemd-sysupdate; Track I systems).--reboot
lisa appsUpdate the shell apps independently of the OS image (ADR-0020). Subcommands: update, status, rollback.
lisa remoteManage BYO remote model providers. Subcommands: list, add, key, consent. Inference uses them via lisa ask --model remote:<provider>:<model>.consent <scope> <on|off> — scopes: prompt, files, mail, calendar, screen, memory
lisa transcribeTranscribe an audio file with whisper.cpp (STT).--model <path>
lisa saySpeak text with the local voice (piper / say) (TTS).
lisa ambientLisa Ambient: the voice loop (ADR-0011). Subcommands: classify, once.once: --speak, --classify, --model, --url
lisa forgeLisaCode: talk an app into existence — the Forge harness drives a model to write + fix code until it passes analysis.--project <dir> (default ./lisa-app), --model, --max-iters <n> (default 6), --url
lisa embedEmbed text into a vector (reads stdin when piped).--url

Pipes are context

git log | lisa ask "changelog, markdown"   # piped stdin becomes context
make 2>&1 | lisa explain                   # explain a failing build
lisa ask --json-schema recipe.json "…"     # grammar-constrained: always parses
lisa ask --model remote:moonshot:kimi-k2 … # BYO cloud via the egress broker, ledgered

Remote (remote:<provider>:<model>) requests go to the egress broker, not the local engine: the broker holds the key, enforces per-scope consent, and ledgers the egress — the inference daemon never gets network.

Safety posture, encoded in the verbs

  • lisa suggest prints a command for review — it never executes; the Ctrl+G hook inserts it for you to edit before Enter.
  • lisa install demands a typed confirmation before touching a disk (--yes is for scripts/CI only).
  • lisa do and lisa call honor the bus's confirmation tiers; --yes auto-approves chip-level confirmations only — modal ones still refuse.
  • Model output is sanitized before printing: terminal escape sequences from untrusted text can't reach your terminal.