eVera is a fully autonomous personal AI agent that works completely offline, on your local network, or with the full internet. It controls your computer, runs 160+ local AI models, speaks with a 3D animated avatar, and is available on every platform — Web, Desktop, Mobile, and VS Code.
Pre-built installers are published automatically on every tagged release via GitHub Actions CI. No Python, Node.js, or any other dependency needs to be installed manually.
| Platform | Download | Install |
|---|---|---|
| Windows | Vera-Setup-*.exe |
Run the installer — everything is bundled |
| macOS | Vera-*.dmg |
Open DMG → drag Vera to Applications |
| Linux (AppImage) | Vera-*.AppImage |
chmod +x Vera-*.AppImage && ./Vera-*.AppImage |
| Linux (deb) | Vera-*.deb |
sudo dpkg -i Vera-*.deb |
| Android | Vera-*.apk |
Enable "Install from unknown sources" → tap APK |
| Android Auto | Vera-Auto-*.apk |
Install on phone → connect to car |
| Wear OS | Vera-Wear-*.apk |
Sideload or install via Play Store |
| iOS | Vera.xcarchive.zip |
Open in Xcode → distribute to device |
| Web (PWA) | Open in browser | Install from browser address bar (Chrome/Edge/Safari) |
| VS Code | evera-ai.vsix |
code --install-extension evera-ai.vsix |
All binaries are built and published automatically by GitHub Actions on every
v*tag push. See Actions for live build status.
curl -fsSL https://raw.githubusercontent.com/embeddedos-org/eVera/master/install.sh | bashThis single command clones the repo, installs Python 3.12, creates a virtual environment, installs all Python packages, installs system libraries (tesseract, ffmpeg, portaudio, xdotool), installs Playwright Chromium, installs Ollama, pulls a default offline model, and installs Electron dependencies. Nothing else is needed.
irm https://raw.githubusercontent.com/embeddedos-org/eVera/master/setup.ps1 | iexsource .venv/bin/activate # Linux/Mac
# .venv\Scripts\activate # Windows
python main.py --mode server
# Open http://localhost:8000For full manual installation steps, see INSTALL.md.
| Feature | eVera | Manus | ChatGPT | Claude | OpenClaw | Cursor | AnythingLLM | AutoGen |
|---|---|---|---|---|---|---|---|---|
| Fully offline (no internet) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Runs on your hardware | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| 3D animated avatar | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Multi-accent voice (TTS) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Computer / OS control | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| LAN / org network access | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| LOCAL / LAN / WWW modes | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Virtual LLM router | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| RAG knowledge base | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Multi-agent crew | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Workflow automation | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| VS Code extension | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| WhatsApp integration | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Telegram integration | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Discord integration | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Web PWA | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| Desktop app | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
| Mobile app (Android/iOS) | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Android Auto | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Wear OS | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 54+ specialized agents | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| 160+ LLM models | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Ollama offline models | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| LM Studio / Jan / llama.cpp | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Open source | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
| Free (no subscription) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Data stays on your machine | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
eVera works in three distinct modes, selectable from the header dropdown at any time.
| Mode | Internet Required | LLMs Available | Computer Control | LAN Access |
|---|---|---|---|---|
| LOCAL | No | Ollama, LM Studio, Jan, llama.cpp | Full | No |
| LAN | No | All offline + LAN-hosted servers | Full | Yes |
| WWW | Yes | All 100+ models including cloud | Full | Yes |
Switch modes without restarting — the agent adapts its tool set and model selection automatically.
eVera works completely without internet using Ollama. Pull any model after setup:
# Recommended — best balance of quality and speed
ollama pull qwen3:8b # 5 GB
ollama pull llama3.2:3b # 2 GB — fastest
ollama pull deepseek-r1:7b # 5 GB — best reasoning
ollama pull qwen2.5-coder:7b # 5 GB — best code
# Ultra-low RAM (under 4 GB)
ollama pull qwen3:0.6b # 400 MB
ollama pull llama3.2:1b # 700 MB
# High-end hardware
ollama pull qwen3:32b # 20 GB
ollama pull llama3.3:70b # 40 GBeVera also auto-detects and integrates with:
| Tool | Default Port | Notes |
|---|---|---|
| LM Studio | 1234 | Load any GGUF model, start local server |
| Jan AI | 1337 | Load any model, enable API server |
| llama.cpp | 8080 | ./llama-server -m model.gguf --port 8080 |
All three appear in the model selector under green 🟢 groups, sorted before cloud providers.
eVera can control any function of the running computer system:
- Screen: take screenshots, read screen content, find UI elements
- Mouse & Keyboard: click, type, drag, scroll — full desktop automation
- Files: read, write, move, search, compress, extract
- Applications: launch, close, interact with any app
- System: manage processes, services, network interfaces, power state
- Browser: full web automation via Playwright (Chromium)
- Terminal: execute shell commands, run scripts, manage environments
A real-time 3D holographic avatar (Three.js WebGL) is displayed alongside the chat panel. The avatar:
- Animates through 8 expressions: idle, thinking, speaking, happy, excited, sad, error, listening
- Responds to voice amplitude in real time (mouth movement)
- Falls back to an animated 2D canvas face if WebGL is unavailable
- Is visible on desktop, web, and mobile (bottom tab on mobile)
All browser-native TTS voices are available in the voice selector, grouped by language and accent. Local (offline) voices are marked with ●, network voices with ○. Selection is saved across sessions.
eVera's Virtual LLM Router automatically selects the best available model for each task — no manual model selection needed:
| Task | Preferred Offline Model | Cloud Fallback |
|---|---|---|
| Coding | qwen2.5-coder:7b |
gpt-4o |
| Reasoning / math | qwq:32b |
o3-mini |
| Vision | llava:13b |
gpt-4o |
| Fast / chat | qwen3:0.6b |
gpt-4o-mini |
| Long context | qwen3:14b |
gemini-2.5-pro |
| Embedding | mxbai-embed-large |
(offline only) |
The router checks model availability in real time and falls back automatically if a model is not pulled.
Install the eVera extension to get AI assistance directly in your editor:
# From release download
code --install-extension evera-ai.vsix- Inline chat —
Ctrl+Shift+Vto open eVera chat in the sidebar - Explain code — right-click any selection → "eVera: Explain"
- Fix bug — right-click → "eVera: Fix Bug"
- Generate code — right-click → "eVera: Generate"
- Inline completion — Copilot-style suggestions as you type
- Works offline — uses your local Ollama models, no cloud required
Two modes — no account needed for local mode:
# Local (scan QR once, no API key)
cd vera/messaging && npm install whatsapp-web.js qrcode-terminal express
node whatsapp_bridge.js
# Or Twilio (production)
TWILIO_ACCOUNT_SID=ACxxx TWILIO_AUTH_TOKEN=xxx python main.pyeVera routes every request to the best-suited agent automatically:
| Category | Agents |
|---|---|
| Research | Web search, academic papers, news, Wikipedia |
| Code | Write, review, debug, execute, explain |
| Files | Read, write, convert, summarize, extract |
| System | Shell, process manager, service control |
| Browser | Navigate, scrape, fill forms, screenshot |
| Memory | Working memory, episodic memory, fact extraction |
| LAN | Network scanner, SSH, file shares, org data |
| Creative | Writing, brainstorming, translation, summarization |
| Messaging | WhatsApp, Telegram, Discord, Slack |
- Working memory: current conversation context
- Episodic memory: past conversations, searchable
- Fact memory: extracted facts about the user and their environment, persisted across sessions
eVera/
├── main.py ← Entry point (server / desktop / cli modes)
├── config.py ← All settings (Pydantic, .env-driven)
├── setup.sh ← One-command Linux/macOS installer
├── install.sh ← curl-pipe remote installer
├── setup.ps1 ← One-command Windows installer
├── INSTALL.md ← Full installation guide
├── vera/
│ ├── brain/ ← Agent orchestration, memory, planning
│ │ ├── agents/ ← 39+ specialized agents
│ │ ├── computer_use/ ← Desktop control (mouse, keyboard, screen)
│ │ ├── lan_agent.py ← LAN network discovery and access
│ │ └── orchestrator.py ← Multi-agent routing
│ ├── providers/
│ │ ├── models.py ← 100+ model definitions across 12+ providers
│ │ └── manager.py ← LiteLLM routing, health checks, streaming
│ ├── operating_mode.py ← LOCAL / LAN / WWW mode enforcement
│ └── static/ ← Web UI (PWA)
│ ├── index.html
│ ├── app.js ← Main UI logic, voice, mobile nav
│ ├── face.js ← Three.js 3D avatar + 2D fallback
│ ├── style.css ← Glassmorphism design system
│ ├── manifest.json ← PWA manifest
│ └── sw.js ← Service worker (offline cache)
├── electron/ ← Desktop app wrapper
│ ├── main.js ← Electron main process
│ └── package.json ← electron-builder config
├── mobile/ ← React Native mobile app
│ ├── android/ ← Android (Phone + Auto + Wear)
│ └── ios/ ← iOS
└── .github/workflows/
└── build.yml ← CI: builds all platforms on every v* tag
Every push to a v* tag triggers a full build across all platforms simultaneously:
| Job | Runner | Output |
|---|---|---|
| Pre-flight | ubuntu-latest | Lint (ruff), pytest, frontend validation |
| Desktop — Windows | windows-latest | Vera-Setup-*.exe (NSIS installer) |
| Desktop — macOS | macos-latest | Vera-*.dmg |
| Desktop — Linux | ubuntu-latest | Vera-*.AppImage, Vera-*.deb |
| Android | ubuntu-latest | Vera-*.apk, Vera-Auto-*.apk, Vera-Wear-*.apk |
| iOS | macos-latest | Vera.xcarchive.zip (unsigned, for distribution) |
| VS Code | ubuntu-latest | evera-ai.vsix |
| GitHub Release | ubuntu-latest | Creates release, attaches all 9 artifacts |
The Python backend is bundled into a self-contained binary via PyInstaller before Electron packages it. Users need no Python, Node.js, or any runtime installed.
To trigger a release manually:
git tag v2.x.x
git push origin v2.x.xAll settings are in .env (copy from .env.example). No setting is required — eVera runs fully offline with zero configuration.
| Variable | Default | Description |
|---|---|---|
VERA_LLM_OLLAMA_URL |
http://localhost:11434 |
Ollama server |
VERA_LLM_LM_STUDIO_URL |
http://localhost:1234 |
LM Studio server |
VERA_LLM_JAN_URL |
http://localhost:1337 |
Jan AI server |
VERA_LLM_LLAMACPP_URL |
http://localhost:8080 |
llama.cpp server |
VERA_LLM_OPENAI_API_KEY |
(empty) | OpenAI (optional) |
VERA_LLM_ANTHROPIC_API_KEY |
(empty) | Anthropic (optional) |
VERA_LLM_GEMINI_API_KEY |
(empty) | Google Gemini (optional) |
VERA_SERVER_PORT |
8000 |
Web server port |
VERA_SERVER_API_KEY |
(empty) | Auth key for LAN/WWW mode |
git clone https://github.com/embeddedos-org/eVera.git
cd eVera
bash setup.sh
source .venv/bin/activate
python main.py --mode serverRun tests:
pytest tests/ -vBuild desktop app locally (Linux):
bash setup.sh --build-desktop
# Output: electron/dist/Vera-*.AppImageMIT License. See LICENSE.
eVera is built by embeddedOS — open, local-first, and fully under your control.