A harness, not a wrapper.
The model calls real tools and reads their real output until the task is finished. Every call is a card you can open, and the whole run is cancellable.
A Rust core drives your model and runs its tools on your machine. A hand-written webview shows every step as it happens — no terminal, no framework, no black box.
What it does
The model calls real tools and reads their real output until the task is finished. Every call is a card you can open, and the whole run is cancellable.
OpenAI, Ollama, LM Studio, vLLM, Together, OpenRouter or your own gateway. Keep several configured at once and switch per chat — the model carries its provider, key and context window with it.
Conversations persist and fork, each with its own workspace, model and token budget. History summarises itself as a chat approaches the model's context window.
Git projects get an app-managed worktree per task by default, so parallel work never collides. Delete the task and the worktree goes with it.
Tokens, reasoning, tool cards and live token and cost counters all stream as the run happens. You are watching the loop, not a progress bar.
Tauri 2 uses the operating system's own webview instead of shipping a browser. One executable, a ~20 KB renderer, and no Electron underneath.
Extend
src-tauri/src/engine/tools.rs
rebuild
Settings ⚙
instant
~/.e/skills/<name>/SKILL.md
drop in
~/.e/plugins/<name>/index.js
drop in
~/.e/mcp.json
drop in
Each has a project-scoped form under <project>/.e/
that shadows the global one, so a repository can carry its own tools.
Extending e
Install
irm https://eharness.dev/install.ps1 -OutFile $env:TEMP\e.ps1; pwsh -NoProfile -File $env:TEMP\e.ps1
Prefer to see it first? Download the bootstrap script, grab the installer straight from Releases, or build from source.