Documentation

Everything eVi can do, and how to configure it. These pages are generated from docs/ in the repo, and ship inside the app too — Help → Documentation works offline.

Start here

Guides

Architecture

A walk through how eVi's pieces fit together. Read this once when you join the project; refer back to the per-module docs when you need detail.

eVi vs Claude Code — feature comparison

How eVi's capabilities line up against the full Claude Code docs surface (reviewed 2026-06-16, eVi 0.33.0). eVi is local-first, single-user, privacy-first, so a number of Claude Co…

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…

Code signing policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

Desktop bundling

How the Tauri desktop app is built, and how to make it a standalone installer that doesn't need Python on the target machine.

Development notes

For people working on eVi itself.

Future integrations — backlog

A scratch list of third-party app/service integrations eVi could grow. Nothing here is committed; the point is to capture ideas as they come up so we don't lose them. When we pick…

Multi-machine setup

How to wire eVi across a workstation, a laptop, and a headless AI server on the same LAN — what most people actually want once they have a "server class" GPU.

Releasing

How to cut a new version of eVi.

Roadmap

Forward plan for eVi. Shipped work lives in CHANGELOG.md + project memory; this file is what's *next* and why. Items carry a rough size (S = an afternoon, M = a day, L = a phase) a…

SDK coverage + borrowable features

A review of which OpenAI Chat Completions features we've wired up, which are still useful and unbuilt, and what we could borrow from other vendors' SDKs (Anthropic, Google, Bedrock…

Agent SDK (`evi.sdk`)

eVi is a library first and a CLI/app second. The same primitives the CLI and the web app are built on are importable under one stable namespace — evi.sdk — so you can embed an eVi…

Self-build — developing and building eVi *with* eVi

eVi is meant to maintain itself. It already has everything needed to work on its own source: a coding agent with file/shell/git tools, an isolated permission model, the full test s…

Self-update design (Phase 29 proposal)

evi update lets a user pull a newer eVi version, verify it works, and roll back if it doesn't. This doc is the design — none of it is built yet. Once approved, it becomes Phase 29.

Feature deep-dives

eVi feature guides

Deep-dive docs for every feature area — overview, how it works, setup, usage (CLI/REPL/Web), and worked examples. For the one-page catalog see ../features.md; for config keys see .…

Agents & Orchestration

eVi is single-user and local-first, but a single linear chat is not always the best shape for a task. Agents & Orchestration is the family of features that let one eVi run *other*…

Recipes, Routines, Scheduled tasks, Channels

These four features make up eVi's automation surface. They let you save reusable workflows, fire them over HTTP, run prompts on a cron schedule, and push outside alerts into a live…

Evals & LLM-as-judge

Use evals to:

Content Guardrails

Content Guardrails are a lightweight, fully local content-filter layer that sits between you and the model. They let you block or scrub specific content on the way *in* (your messa…

Hooks (tool + lifecycle, command/url)

Hooks let you run your own code (or call a webhook) automatically at key moments while eVi works: right before and right after every tool call, and around three lifecycle events in…

MCP (client + serve)

MCP (Model Context Protocol) lets eVi connect to other tool-providing programs — and lets other AI apps connect to eVi. eVi plays both roles:

Memory & Context management

eVi has two complementary mechanisms for remembering things across time:

Observability (OpenTelemetry, stats, crash reports)

eVi gives you three independent ways to see what your assistant is doing — OpenTelemetry traces/metrics for tool calls, local usage stats computed from your transcripts, and opt-in…

Permissions & Sandbox

eVi runs language models locally and lets them call tools — read and write files, run Python, search the web, control the mouse, talk to MCP servers, and more. Permissions decide *…

Plugins & Marketplace

A plugin is an installable bundle that extends eVi without touching your own configuration directories. One plugin can ship any mix of:

Sessions, Resume, Handoff, Checkpoints

eVi keeps a durable record of your conversations and the file changes it makes, so you can pick up where you left off and undo mistakes.

Skills

Skills are named markdown instruction packets the model loads on demand. You write the "how" of a task once (a review rubric, a house style, a checklist), and the agent pulls it in…

Slash commands

Inside a chat you can type /<name> to run a command instead of sending a message. There are two kinds:

Structured Outputs & Batch

Two related features let you treat eVi like a programmable text-to-data tool instead of just a chat assistant:

Ultracode

instead of a single pass: it decomposes the task, fans out several solver agents that attack it from different angles, has an adversarial critic try to break each candidate, then s…

Voice (TTS engines, STT, AutoSpeaker)

eVi can both speak (text-to-speech, TTS) and listen (speech-to-text, STT) entirely on your own machine. Like the rest of eVi, voice is local-first: the default TTS engine uses what…

Web & Desktop (settings, multi-user, deep links, updater)

eVi ships the same assistant in three skins: a Typer CLI, a web UI (FastAPI + Server-Sent Events), and a Tauri desktop app that wraps that web UI in a native window with a menu bar…