Skip to main content

eVi — personal AI assistant

PyPI Downloads Docker (GHCR) GHCR pulls Python 3.13+ License: MIT

eVi 1.0 — shipped and public. Local-first personal assistant. Chat with a model on your hardware, let it use tools, generate images, automate scheduled tasks, drive your browser, and reach the same core from a terminal, a web app, or a native desktop window.

One Python core, three frontends, no cloud round-trips.

       ┌──────────────────────────────┐
       │       evi (core library)     │
       │  Agent · Tools · Memory ·    │
       │  Skills · Hooks · MCP ·      │
       │  Scheduler · Dream · …       │
       └────┬──────────┬──────────┬───┘
            │          │          │
        ┌───▼──┐   ┌───▼──┐   ┌───▼────┐
        │ CLI  │   │ Web  │   │Desktop │
        │      │   │ SSE  │   │ Tauri  │
        └──────┘   └──────┘   └────────┘

Requirements

Component Why Notes
Python 3.13+ Core runtime 3.13 tested
Git 2.17+ Optional — evi worktree 2.28+ for init -b
An LLM backend One of LM Studio / Ollama / llama-server / any OpenAI-compatible endpoint LM Studio default
NVIDIA GPU Optional — speeds up local LLMs and ComfyUI image gen CPU fallback works

Quickstart

Package name: the project is eVi, but the PyPI distribution is evi-assistant (the bare evi name was taken). Install with pip install evi-assistant; the import package and CLI command are both still evi (import evi, run evi).

pip install evi-assistant                # from PyPI
evi models recommend                     # honest read on what'll fit
evi chat                                 # off you go

Or work from a clone (editable install, all extras):

git clone https://github.com/evi-assistant/evi-ai.git evi && cd evi
py -3.13 -m venv .venv
.venv\Scripts\Activate.ps1            # Windows
# source .venv/bin/activate            # Linux / macOS

pip install -e .

# Pick a backend. LM Studio + a tool-capable model is the easiest first run.
# In LM Studio: load qwen2.5-7b-instruct → Developer → Start Server.

evi models recommend                    # honest read on what'll fit
evi chat                                # off you go

/help inside the REPL lists every slash command (goal tracking, plan mode, auto-approve, model switching, user-defined templates).

Three-machine setup

eVi is built to span machines. A typical setup:

Machine Role Backend
AI server (P40) LLM host + web UI Ollama or llama-server, evi web on port 8000
Desktop (16 GB) Full power workstation Local LM Studio
Laptop (2 GB) Thin client Profile points at the AI server

See docs/multi-machine.md for the wiring.

Major commands

evi chat                           Start the REPL
evi web --host 0.0.0.0             Run the FastAPI + SSE web UI
evi dream                          Curate long-term memory from yesterday's chats
evi models recommend / list / use  Hardware-aware model selection
evi models pull <ref>              Pull via Ollama tag or hf:<repo>:<file>
evi schedule add / list / run-now  Cron-style scheduled prompts
evi scheduler                      Foreground daemon for scheduled tasks
evi worktree create <branch>       Spin up a git worktree for parallel work
evi profile add home --backend …   Per-machine config overlays
evi voice listen / speak           STT + TTS
evi mcp list-tools                 Show MCP server-provided tools
evi mcp serve                      Run eVi AS an MCP server (other agents use eVi's tools)

What's built

Everything below ships in 1.0. Gmail / Microsoft 365 email is the one deferred surface — scaffolded but off by default.

Feature Status
Foundation, CLI, agent loop, fs/code tools ✅
ComfyUI image generation ✅
FastAPI + SSE web UI ✅
Tauri desktop shell (local + remote modes) ✅
Persistent memory + scoped subagents ✅
MCP (Model Context Protocol) integration ✅
Skills + scheduled tasks ✅
Backends, model registry, hardware recommender, profiles ✅
EVI.md, slash commands, /goal, plan mode ✅
Hooks, auto mode, git worktrees ✅
Transcripts, dreaming, web search, voice TTS, computer use ✅
STT, web UI parity, polish ✅
Gmail / Microsoft 365 email ⏸ deferred

Layout

evi/                core library
  agent.py          agent loop with permission + hooks
  backends/         LM Studio / Ollama / llama.cpp / OpenAI-compat
  llm/              client + subagent runner
  tools/            built-in tool catalog (fs, code, image, web, voice, …)
  mcp/              MCP client bridge + manager
  memory.py         long-term memory store
  skills.py         user skill packets
  scheduler.py      APScheduler driver
  dream.py          memory-consolidation runner
  hardware.py       GPU + RAM detection
  recommend.py      curated model picks per VRAM
  …
  apps/             frontends that consume the core (shipped in the wheel)
    cli/main.py     Typer CLI
    web/server.py   FastAPI + SSE
    web/static/     chat UI (vanilla JS)
desktop/            Tauri 2 shell (NOT a Python package; local-spawn or EVI_REMOTE_URL)
tests/              pytest
docs/               deeper guides
scripts/            install + dev helpers

Configuration

Per-user config lives in ~/.evi/. Highlights:

~/.evi/
  config.toml         primary settings — backend, tools, auto-approve
  profiles/*.toml     overlay profiles for per-machine config
  memory/*.md         long-term memory; `.attic/` holds soft-deleted entries
  skills/<name>/      installed skill packets (SKILL.md + assets)
  commands/<name>.md  user-defined slash command templates
  scheduled/*.json    saved scheduled prompts
  hooks.toml          before/after_tool_call hooks
  mcp.json            MCP server list
  transcripts/        per-session JSONL (input to dreaming)
  logs/               run logs (dreams, scheduled tasks)

See docs/configuration.md for the full reference, the feature catalog for what every feature does + how to use it, and surface parity for the CLI ↔ Web ↔ Desktop map.

Optional dependency groups

pip install -e '.[web]'        # FastAPI + uvicorn for `evi web`
pip install -e '.[mcp]'        # Model Context Protocol client
pip install -e '.[scheduler]'  # APScheduler for cron-style tasks
pip install -e '.[downloads]'  # huggingface_hub for `evi models pull hf:...`
pip install -e '.[web-tools]'  # DuckDuckGo search + BeautifulSoup
pip install -e '.[stt]'        # faster-whisper + sounddevice
pip install -e '.[computer]'   # pyautogui for mouse/keyboard control
pip install -e '.[dev]'        # pytest + ruff

Or all at once:

pip install -e '.[dev,web,mcp,scheduler,downloads,web-tools,stt,computer]'

Development

pip install -e '.[dev]'
pytest -q              # ~1,300+ unit tests (E2E are opt-in: -m e2e)
ruff check evi apps    # style + bug-pattern lint

See docs/development.md for architecture notes, and docs/self-build.md for developing/building eVi with eVi (the EVI.md project context + the one-command scripts/build-desktop build).

Safety posture

  • Default tool toggles lean conservative: shell, subagent, web, voice, computer, gmail, outlook, image, and mcp are all OFF until you flip them in config.toml.
  • auto.auto_approve lists categories that run without prompting. The defaults are fs, code, memory, skills, image. computer is never in this list — every mouse click / keystroke prompts.
  • Hook vetoes (~/.evi/hooks.toml) can block any tool by glob match.
  • Soft-delete memory sends "forgotten" entries to ~/.evi/memory/.attic/ so the dreaming engine can't permanently lose anything.

Code signing

See the Code signing policy for how eVi's desktop installers are signed, who approves releases, and how to verify a download.

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

License

MIT - see LICENSE.

Metadata

Release files for evi-assistant 1.0.52

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evi-assistant 1.0.52
File Size Uploaded
evi_assistant-1.0.52.tar.gz 753.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for evi-assistant 1.0.52
File Interpreter ABI Platform
evi_assistant-1.0.52-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / evi_assistant-1.0.52.tar.gz

Download URL evi_assistant-1.0.52.tar.gz
Size 753.5 kB
Tags Source
SHA-256 checksum
How to use checksums
6e12c1c15b33228f1bbd3c5142ac9bdea4b3081fc8a8d4d232d928be6e994a5d
BLAKE2b-256 checksum
How to use checksums
ea0db0cb93a43e9041366b8c575698e27741f845f59049cecac770533aa266f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / evi_assistant-1.0.52-py3-none-any.whl

Download URL evi_assistant-1.0.52-py3-none-any.whl
Size 617.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22d05e9324e825e013d0a857da51b67a5d688b911ed1168f65a1ffa0c32dbeaf
BLAKE2b-256 checksum
How to use checksums
767dadcd87a531ba5cfbb0a283d2756cf2fe0554a2d9343da3b9a087185505ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.52 This release

2 release files

1.0.51

2 release files

1.0.50

2 release files

1.0.49

2 release files

1.0.48

2 release files

1.0.47

2 release files

1.0.46

2 release files

1.0.45

2 release files

1.0.44

2 release files

1.0.43

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.1

2 release files

0.36.0

2 release files

0.35.0

2 release files

0.34.1

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page