@lovinka/eve
v0.2.2
Published
Terminal client for eve — chat TUI, priority-lane asks, live control plane, approvals.
Downloads
425
Readme
@lovinka/eve
Terminal client for the eve agent. Chat TUI, priority-lane asks, live control plane, human-in-the-loop approvals — over the same HTTP surface the web console uses. eve lives on the WireGuard mesh; off-mesh the CLI fails fast with a hint.
npm i -g @lovinka/eve
eve setup # onboarding: pick what to install — completion, Claude skill,
# MCP registration, base URL config, vitrinka watch refresheve setup is interactive on a TTY (numbered multi-select, a = all) and scriptable
via flags (--all, --completion, --skill, --mcp, --config, --vitrinka);
it finishes with eve doctor. Everything it installs ships inside the package —
no repo checkout needed on a new machine.
Daily driver
eve # chat TUI — "/" palette (subagents live from the catalog),
# [a]/[d] on approval cards, /image pastes the clipboard
eve ask "is the deploy pin current?"
git diff | eve ask "confirm this migration is safe" # piped stdin = context
eve watch <sessionId> # tail a run live
eve approvals && eve approve 1eve ask is hybrid: when the task queue is idle it opens a session directly;
when eve is busy it enqueues on the interactive priority band (100) — first
in line, ahead of board/review/background work — and attaches to the spawned
session's stream. --direct / --queue force a lane.
Machine contract (Claude Code and friends)
git diff | eve ask --json "confirm this is safe"
# → {"status":"done","answer":"…","sessionId":"…","consoleUrl":"…","transport":"direct"}Exit codes: 0 done/waiting, 1 failed, 3 eve unreachable. All decoration
goes to stderr; stdout is the answer (TTY) or one JSON object (--json).
MCP hosts get the same surface as typed tools: eve setup --mcp registers
eve mcp (stdio JSON-RPC server) with Claude Code — tools eve_ask,
eve_sessions, eve_tasks, eve_approvals, eve_flows.
Control plane (live, no restart)
eve model # active + per-scope overrides + catalog
eve model set codex/gpt-5.5 --key pr_review
eve tools disable send_telegram
eve tools approval open_pr always
eve flows # deployed subagents
eve tasks / eve sessions # queue + runsCompletion + updates
eve completion zsh > ~/.zsh/completions/_eve # or: eval "$(eve completion zsh)" in .zshrc
eve update # self-update + vitrinka watch CLIValue positions complete live (model ids, tool slugs, flows, session ids) from a 60s cache; off-mesh it degrades to static.
Tenants
One CLI, every tenant. eve, fixit, fixit-internal, and livi are built in
(derived from the eve base URL by console base path); eve tenant set adds or
overrides entries.
eve tenant list # known tenants (* = sticky default)
eve -t livi approvals # target one command (put -t before the command)
eve tenant use livi # sticky default
EVE_TENANT=fixit eve doctor # env routingConfig: EVE_BASE_URL env / --base-url / ~/.config/eve-cli/config.json
(tenants, defaultTenant, legacy baseUrl). Resolution:
--base-url > --tenant > EVE_BASE_URL > EVE_TENANT > defaultTenant >
legacy baseUrl > default. Unknown tenant names error listing the registry —
never a silent fallback.
