Skip to content

cli parity

dmang-dev edited this page Jul 20, 2026 · 1 revision

Surface parity — CLI ↔ Web ↔ Desktop

eVi has three front-ends over one engine. The CLI is the most complete (it's the admin + scripting surface); the Web UI is chat-centric with a full settings screen; the Desktop app is the Web UI in a native shell (menus, tray, updater, deep links). This table maps every CLI command group to its Web/Desktop equivalent and is honest about what is intentionally CLI-only.

Legend: ✅ first-class · ◐ partial / via a related surface · ⌨️ CLI-only by design (admin/scripting) · ➕ gap worth filling.

CLI What it does Web Desktop Notes
chat interactive chat ✅ main view the core loop
run headless one-shot /api/chat scripting; no "run once" button (not needed)
batch many prompts → JSONL ⌨️ ⌨️ batch/scripting
eval prompt→assertion suites ✅ settings → Evals browse suites/cases + run with per-case PASS/FAIL
ultracode exhaustive multi-agent pass ✅ settings → Ultracode /ultra + /effort ultracode in REPL; stages shown in the panel
agents list subagent profiles ◐ used by delegate a "profiles" list could live in Dispatch
workflow run/list/new/show ◐ run+list via 🗂 Dispatch authoring stays CLI
peer federation peers (list/add/remove/scan/run) ✅ settings → Peers live status + LAN scan; /api/federate serves
link make evi:// deep links n/a ✅ scheme handler desktop opens the links
stats local usage analytics ✅ settings → Usage sessions/messages/tokens, roles, top tools, busy days
sessions list/resume/fork/handoff ✅ tabs/history; handoff API resume via /?session=
recipe saved multi-turn flows ✅ settings → Routes & Recipes browse steps + run; also via routine webhook
routine webhook → recipe /api/routine/{token} inbound trigger
style output styles ✅ settings (llm.output_style)
voice TTS engine/speak/listen ✅ settings → Voice; speak toggle
guardrails content filter rules ✅ settings → Guardrails validated guardrails.toml editor + rule summary
hooks path/list/test (match resolution) ✅ settings → Hooks validated hooks.toml editor; catches event typos
command list/new (slash-command scaffold) /help lists; typed in chat authoring stays markdown files
keybindings path/list (effective bindings) n/a n/a REPL-only feature
plugin add/list/remove/search/install ✅ settings → Plugins list installed, search marketplace, install/remove
skill list/show/import/remove (incl. Claude skills) ◐ used in chat via invoke_skill skills load on demand; no manager UI (file/CLI managed)
mcp servers add/remove/enable/list + serve ✅ settings → MCP manage servers in-app; env vars via CLI/file
models list/use/info/pull ✅ Model picker + settings recommended-pull flow
config show/path ✅ full settings screen the settings UI is config
route multi-model routing ✅ settings → Routes & Recipes add/list/remove routing rules
sync git sync of ~/.evi ⌨️ ⌨️ machine admin
backup backup/restore state ⌨️ ⌨️ machine admin
calendar/obsidian integrations ◐ settings → Integrations
doctor diagnostics ✅ Help → Run Diagnostics
update self-update n/a ✅ Help → Check for Updates desktop updater
rewind undo file writes ✅ rewind dialog checkpoints
setup first-run wizard ✅ first-run desktop onboarding
review multi-agent code review ⌨️ ⌨️ dev workflow
finetune export training data ⌨️ ⌨️ scripting
worktree/profile/scheduler dev/daemon ⌨️ ⌨️ admin

In-chat parity (REPL slash commands ↔ web)

Many CLI REPL builtins have a web equivalent or are inherently REPL-only:

REPL /cmd Web equivalent
/help (slash commands work in the web chat too)
/model model picker chip
/context, /ctx click the usage chip → breakdown popover
/recent session tabs
/tools, /notools, /forcetool settings → Tools; per-turn via API
/effort, /fast, /json, /schema per-turn API params (output_schema for /schema)
/auto, /plan auto + plan chips
/compact automatic (config)
/image, /audio attach button (📎)
/speak speak toggle (🔇)
/goal goal chip

Honest take on "full parity"

Several commands are CLI-only by design — they're machine admin (sync, backup, worktree, profile, scheduler), batch/scripting (run, batch, finetune, review), or developer tooling. Forcing a web button for those adds surface without value.

The gaps worth filling (➕) — a web/desktop face for things a non-CLI user might want — are now all shipped as settings sections: the guardrails editor (Guardrails), the plugin browser/installer (Plugins), the usage/stats view (Usage), the evals results panel (Evals), and routes + recipes management (Routes & Recipes). Suite/recipe authoring still happens in TOML files (or via evi eval new / evi recipe new), but browsing and running them no longer requires the CLI.


Generated from docs/cli-parity.md — edit there, not here.

Clone this wiki locally