MCPcopy Index your code
hub / github.com/evotai/evot

github.com/evotai/evot @v2026.7.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2026.7.6 ↗ · + Follow
3,658 symbols 11,171 edges 414 files 688 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Evot

An agent engine that completes complex, long-running work with minimal tokens and maximum quality.

Every gain measured under a rigorous trace + eval framework — earned through relentless iteration, never guessed at.

News · Benchmark · Why · Dashboard · Install · Quickstart · Dev

📢 News

  • 2026-07-03 [REPL] /copy — copy the last agent message's Markdown source to the clipboard.
  • 2026-06-30 [Distill] evot distill — generate verified SFT/RL datasets by driving evot as a teacher.
  • 2026-06-16 [REPL] Shift+Tab cycles reasoning effort; persisted per session.
  • 2026-06-05 [Dashboard] Built-in web dashboard — server metrics, sessions, usage, and tool traces.
  • 2026-05-30 [Engine] Major refactor — four-pass compaction, pi-aligned parallel tools, leaner core.

Benchmark

Same task, same eval environment, different models. evot completes the work with fewer tokens, less time, and lower cost — on both frontier and open-source models.

Claude Opus 4.6 DeepSeek V4 Pro
evot benchmark — Claude Opus 4.6 evot benchmark — DeepSeek V4 Pro

Task: Fix a real bug in serde_json (issue #979) — investigate root cause, apply fix, write regression test, verify all tests pass.

Model Metric evot claude-code Difference
Opus 4.6 Cost $2.24 $6.16 64% cheaper
Opus 4.6 Time 2m 56s 3m 51s 24% faster
Opus 4.6 Input tokens 574.8K 1.5M 62% fewer
DeepSeek V4 Pro Cost $0.02 $0.07 67% cheaper
DeepSeek V4 Pro Time 6m 10s 16m 34s 63% faster
DeepSeek V4 Pro Input tokens 42.9K 133.8K 68% fewer

All agents produce correct, passing code. The difference is how they manage context.

Why is evot faster and cheaper?

Give the LLM less context, but higher-quality context. Where other agents call the LLM to summarize when context overflows — burning extra tokens and time — evot uses zero LLM calls for context management:

  • Algorithmic compaction — a four-pass Rust pipeline (Reclaim → Shrink → Collapse → Evict) runs in microseconds between turns. Images downgrade to path references; old turns collapse to one-line summaries.
  • Spill to disk — large tool results write to disk with a short preview. The model re-reads on demand instead of carrying megabytes in context.
  • Compaction markers — structured metadata (files modified, conclusions, environment state) survives compaction, so progress is never lost.

Every gain is earned under a rigorous trace + eval framework, not guessed at. Each engine change is measured against live traces and a reproducible benchmark pipeline — the same real-world tasks run against Claude Code and Codex (latest versions) — before it ships. Token usage, cost, time, and success rate must improve or hold. Relentless trial and iteration, where the numbers decide what stays. Continuous improvement, no regression.

Dashboard

Evot ships with a built-in web dashboard for real-time observability: server resource usage, all connected sessions, and per-session detail — token usage, tool call sequences, and span-level traces.

Overview — server metrics & sessions Session detail — usage & tool traces
evot dashboard — overview evot dashboard — session detail

Installation

One-liner (recommended)

curl -fsSL https://evot.ai/install | sh

From source

git clone https://github.com/evotai/evot.git
cd evot
make setup && make install
evot

Quickstart

1. Set your API key

Create ~/.evotai/evot.env:

# Anthropic (default)
EVOT_LLM_ANTHROPIC_API_KEY=sk-ant-...
EVOT_LLM_ANTHROPIC_BASE_URL=your-anthropic-base-url
EVOT_LLM_ANTHROPIC_MODEL=claude-opus-4-6
# Multiple models: EVOT_LLM_ANTHROPIC_MODEL=claude-sonnet-4-6,claude-opus-4-6

# Or OpenAI
# EVOT_LLM_OPENAI_API_KEY=sk-...
# EVOT_LLM_OPENAI_BASE_URL=your-openai-base-url/v1
# EVOT_LLM_OPENAI_MODEL=gpt-5.5

# Or DeepSeek (Anthropic-compatible)
# EVOT_LLM_DEEPSEEK_API_KEY=sk-...
# EVOT_LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com/anthropic
# EVOT_LLM_DEEPSEEK_PROTOCOL=anthropic
# EVOT_LLM_DEEPSEEK_MODEL=deepseek-v4-pro

# Or Xiaomi MiMo-V2.5-Pro (Anthropic-compatible)
# EVOT_LLM_XIAOMI_API_KEY=tp-...
# EVOT_LLM_XIAOMI_BASE_URL=https://token-plan-cn.xiaomimimo.com/anthropic
# EVOT_LLM_XIAOMI_PROTOCOL=anthropic
# EVOT_LLM_XIAOMI_MODEL=mimo-v2.5-pro

Use --model provider:model for one-off overrides.

2. Run

evot                                          # interactive REPL
evot -p "summarize today's PRs"               # one-shot task
evot -p "review this" -f ./src/main.rs        # attach file context
evot -p "continue work" -c                    # continue latest session in cwd
evot -p "continue work" -r my-session         # resume or create session
evot distill --auto --domain "python backend" # generate an SFT/RL dataset

In the REPL: /help lists commands, Shift+Tab cycles the reasoning effort.

CLI flags & options

Flag Description
-p, --prompt Run a single prompt and exit
-f, --file <path> Attach file/directory context (repeatable)
-c, --continue Continue the latest session in the current directory
-r, --resume <id> Resume or create a session
--model <model> Override the configured model
--env-file <path> Path to a custom evot.env
--skills <dir> Add a skills directory (repeatable)
--verbose Enable info-level logging

Development

make setup        # install Rust toolchain, git hooks
make test         # all tests (engine + CLI)
make install      # compile standalone binary to ~/.evotai/bin/evot

License

Apache-2.0

Extension points exported contracts — how you extend this code

InputFilter (Interface)
Synchronous filter applied to user input before the LLM call. Implement this for injection detection, content moderatio [6 …
src/engine/src/types/agent_context.rs
Storage (Interface)
(no doc) [2 implementers]
src/app/src/storage/storage.rs
TextBlock (Interface)
(no doc)
cli/src/file-loader.ts
Case (Interface)
(no doc)
cli/tests/markdown-fuzz.test.ts
AgentTool (Interface)
(no doc) [20 implementers]
src/engine/src/types/tool.rs
MessageSink (Interface)
(no doc) [2 implementers]
src/app/src/gateway/delivery/traits.rs
CliOptions (Interface)
(no doc)
cli/src/cli.ts
StreamProvider (Interface)
(no doc) [11 implementers]
src/engine/src/provider/traits.rs

Core symbols most depended-on inside this repo

clone
called by 717
src/engine/src/types/tool.rs
push
called by 303
cli/src/render/output.ts
push
called by 267
src/engine/src/tools/explore/grep.rs
push
called by 227
cli/src/term/input/paste_accumulator.ts
len
called by 224
src/engine/src/tools/skill.rs
is_empty
called by 163
src/engine/src/tools/skill.rs
push
called by 158
src/app/src/conf/env_writer.rs
send
called by 145
src/app/src/agent/run_manager.rs

Shape

Function 2,304
Method 863
Class 321
Interface 106
Enum 64

Languages

Rust73%
TypeScript27%

Modules by API surface

src/app/src/agent/agent.rs76 symbols
src/engine/tests/tools/file/edit.rs71 symbols
src/engine/tests/agent/run.rs70 symbols
cli/src/native/index.ts57 symbols
cli/src/markdown/normalize/index.ts54 symbols
cli/src/term/repl.ts52 symbols
cli/src/render/output.ts45 symbols
src/app/tests/conf_load_test.rs44 symbols
src/engine/src/tools/file/edit.rs43 symbols
src/engine/tests/tools/validation.rs42 symbols
src/engine/src/agent/agent.rs41 symbols
src/engine/tests/fixtures/agent_harness.rs40 symbols

For agents

$ claude mcp add evot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page