-
Notifications
You must be signed in to change notification settings - Fork 1
features
A catalog of everything eVi does — what each feature is, how to use it from the CLI / REPL / Web, and where to configure it. Setup-heavy items link to Configuration; surface coverage is in Surface parity — CLI ↔ Web ↔ Desktop; the Claude-Code comparison is in eVi vs Claude Code — feature comparison.
Conventions: CLI =
evi <cmd>; REPL = a/slashcommand insideevi chat; Web = the browser/desktop UI. Everything is local-first and opt-in unless noted.
Interactive chat — evi chat (REPL) or the Web chat view. Streams tokens,
runs tools, shows a working-status bar (spinner + elapsed timer + live token
count) while a turn runs.
Session modes — Chat / Cowork / Code presets gate the tool set. REPL: pick
at launch; Web: the mode switcher; per-turn headless: evi run -m code.
Headless — evi run "prompt" [-m mode] [-y] [--format json] [--schema f].
One-shot for scripts/CI. Example: git diff | evi run "review for bugs" -y.
Batch — evi batch prompts.jsonl -o out.jsonl -j 4. Runs many prompts (each
its own agent), optional parallelism. Input is .jsonl/.json objects
({prompt, id?, mode?, schema?}) or one prompt per line.
Variants — evi variants "prompt" -n 3 — N independent takes on one prompt.
20+ built-in tools, each gated by a [tools] toggle in config.toml (Web:
Settings → Tools): fs, code (run_python, sandboxable), shell, web
(search/fetch), image (ComfyUI), vision, memory, pdf, sqlite, index
(semantic search), git, ocr, calendar, computer, voice, mcp,
subagent, federation. REPL: /tools lists active; /notools,
/forcetool <name> per turn.
Sandboxed code — [tools] sandbox = true runs run_python under bwrap
(Linux) / sandbox-exec (macOS): read-only FS + no network. Falls back gracefully.
Permission modes — [auto] mode = ask|accept_edits|plan|yolo + an
auto_approve category list + first-match rules (allow|deny <tool> [arg]).
REPL /auto, /plan. Trusted dirs/domains auto-approve fs/web under given
paths/hosts. MCP allowlist (tools.mcp_allow) gates which servers load.
Content guardrails — ~/.evi/guardrails.toml, three layers: regex
(block/redact), [[judge]] (the LLM classifies vs a policy), [[classifier]]
(a local HF model, [moderation] extra). evi guardrails list|test. See
Configuration.
Memory — the memory tool persists notes to ~/.evi/memory/; supports
tags. Auto-recalled into context.
Context management — automatic compaction ([llm] compact_*). REPL
/context (/ctx) shows a per-bucket breakdown (system/you/assistant/tools);
Web: click the usage chip. /compact forces it.
Predicted outputs — /predict <text|file> speculative-decoding hint.
Per-day JSONL transcripts (tools.transcripts). evi sessions list|show|resume| fork|continue|handoff; REPL /recent. Cross-device handoff: evi sessions handoff → resume on another machine after evi sync (or open /?session=<id>).
Checkpoints/rewind: evi rewind (Web: rewind dialog) undoes file writes.
Slash commands — built-in /cmd controls plus ~/.evi/commands/<name>.md →
/name templates (guide). Skills —
~/.evi/skills/<name>/SKILL.md instruction packets the model loads on demand via
invoke_skill (guide). Output styles — evi style /
[llm] output_style layer a persona onto the system prompt. Keybindings —
~/.evi/keybindings.toml maps a key to a REPL slash command.
~/.evi/hooks.toml — run a command (argv) or POST a url around events.
Tool events (before_tool_call/after_tool_call, glob match, veto_on_nonzero)
and lifecycle events (user_prompt_submit/before_compact/stop). See
Configuration.
evi plugin add <dir|git-url> installs a bundle under ~/.evi/plugins/<name>/
that can carry commands/, skills/, hooks.toml, mcp.json, and
agents.toml (subagent profiles), all auto-discovered. Marketplace:
evi plugin search <q> / evi plugin install <name> resolve from
~/.evi/marketplace.json + [plugins] index_urls; evi plugin index init|add.
Subagents — the delegate tool runs a scoped sub-agent by profile
(built-in explore/plan + plugin/user agents.toml); evi agents lists them,
evi agents new scaffolds a custom one. Agent teams — a shared, claimable
task list (evi team new/run): a lead decomposes a goal into dependency-ordered
tasks and teammates drain it in parallel (evi/teams.py).
Parallel research — parallel_research tool fans out read-only explorers.
Workflows — ~/.evi/workflows/<name>.toml, multi-step with parallel blocks +
{step}/{var} interpolation; evi workflow new|run. Dispatch (Web 🗂) —
lists live sessions + runnable workflows. Federation — delegate a task to a
trusted peer eVi (~/.evi/peers.json, delegate_peer tool, [federation] serve to answer). Code review — evi review --multi multi-agent review.
Multi-model routing — evi route picks a model per turn. Ultracode —
evi ultracode "<task>" / /ultra / /effort ultracode runs one hard task
through an exhaustive decompose → fan-out solvers → adversarial verify →
synthesize pipeline (guide).
Client: ~/.evi/mcp.json servers, tools.mcp on; evi mcp list-tools.
Server: evi mcp serve exposes eVi's tools/memory/commands over stdio+HTTP.
Recipes — evi recipe saved multi-turn flows. Routines — webhook →
recipe (evi routine, POST /api/routine/{token}). Scheduled tasks —
evi schedule add --cron … (--prompt | --eval <suite>); runs on cron, incl.
scheduled evals for drift watch. Channels — push an external alert into a
live web session (POST /api/session/{id}/channel).
Structured outputs — JSON-Schema-constrained replies: REPL /schema <file>,
evi run --schema, Web /api/chat output_schema. Evals — evi eval new|run runs prompt→assertion suites (contains/regex/equals + LLM-judge
rubric) with a pass-rate; exits non-zero to gate CI.
TTS — [voice] engine = system|coqui|f5|piper; evi voice speak|engines;
Web Settings → Voice; REPL /speak auto-speaks replies. STT — evi voice listen (faster-whisper, [stt] extra); always-on AutoListener. Vision —
attach images (/image, Web 📎) to VLM models. Image gen — ComfyUI via the
image tool.
Settings — full screen over config.toml (9 sections). Multi-user —
[web] multi_user + ~/.evi/users.json; each user gets an isolated
workspace (sessions/transcripts/memory under ~/.evi/users/<name>/).
Deep links — evi://session/<id> / evi://workflow/<name>; evi link.
Desktop — native menus, tray, silent auto-updater (with in-app progress),
first-run wizard. Status line — customizable REPL status ([statusline]).
OpenTelemetry — opt-in traces/metrics around tool calls ([telemetry] traces/metrics + otlp_endpoint, [otel] extra). Local stats — evi stats aggregates sessions/tools/tokens from transcripts. Crash reporting —
opt-in Sentry ([telemetry] crash_reports + dsn, [telemetry] extra).
Agent SDK — evi.sdk is the curated public library surface: build_agent()
(the convenience constructor the CLI itself delegates to), the streaming Agent
- all event types,
@tool, subagents, structured output,run_headless, sessions/checkpoints, MCP, ultracode/workflows, and telemetry — all under one stable namespace (py.typed). Guide: Agent SDK (evi.sdk); runnable scripts: examples/python/.
Sync — evi sync push|pull git-syncs portable ~/.evi state. Backup —
evi backup. Profiles — evi profile per-machine config overlays.
Worktrees — evi worktree for parallel work. Doctor — evi doctor
(Web: Help → Diagnostics). Fine-tune export — evi finetune export →
JSONL training set.
PyPI (v* tag, Trusted Publishing + sigstore signing), Docker image
(docker.yml → GHCR), desktop installers (desktop-v*, 3-OS), a reusable
evi-run GitHub Action, and CodeQL + gitleaks security scanning. See
Releasing. To build locally in one command (sidecar + Tauri),
run scripts/build-desktop.{ps1,sh} — see Self-build — developing and building eVi with eVi for
developing/building eVi with eVi (the EVI.md bootstrap).
Generated from docs/features.md — edit there, not here.
Start here
Guides
- Architecture
- [[Agent SDK (
evi.sdk)|sdk]] - SDK coverage + borrowable features
- Multi-machine setup
- Self-update design (Phase 29 proposal)
- [[Self-build — developing and building eVi with eVi|self-build]]
- Development notes
- Releasing
- Desktop bundling
- Code signing policy
- Surface parity — CLI ↔ Web ↔ Desktop
- eVi vs Claude Code — feature comparison
- Future integrations — backlog
- Roadmap
Feature deep-dives
- eVi feature guides
- Agents & Orchestration
- Recipes, Routines, Scheduled tasks, Channels
- Evals & LLM-as-judge
- Content Guardrails
- Hooks (tool + lifecycle, command/url)
- MCP (client + serve)
- Memory & Context management
- Observability (OpenTelemetry, stats, crash reports)
- Permissions & Sandbox
- Plugins & Marketplace
- Sessions, Resume, Handoff, Checkpoints
- Skills
- Slash commands
- Structured Outputs & Batch
- Ultracode
- Voice (TTS engines, STT, AutoSpeaker)
- Web & Desktop (settings, multi-user, deep links, updater)