Tauri desktop app for Claude/Codex agent workflows in either local Standalone mode or Remote mode backed by a separate
EVO-Code-hostservice.
EVO Code is the desktop UI. It manages:
- agent roster configuration
- persistent chat threads
- plan/run/review workflow files in your repo
- repo-scoped context files (
PROJECT.md,AGENTS.md, etc.)
The app supports two execution modes:
- Standalone (default): all agent execution runs on the same machine as the app.
- Remote: app acts as a thin client, execution runs on a host machine via the separate
EVO-Code-hostrepository.
- App repo (this repo): UI + local Tauri runtime
GitHub: https://github.com/0xdippo/EVO-Code - Host repo:
EVO-Code-host(separate repo/service process)
GitHub: https://github.com/0xdippo/EVO-Code-host
Remote mode requires both:
- EVO Code app on client machine
EVO-Code-hostrunning on host machine
- Node 18+
- Rust toolchain
claudeCLI and/orcodexCLI for providers you plan to use
- Rust toolchain
claudeand/orcodexinstalled on host- host config at
~/.config/evo-code-host/config.toml
npm install
npm run tauri devThen in the app:
- Open a local git repository in Setup
- Configure project metadata
- Add at least one agent to roster
- Use Thread to chat/run tasks
From the EVO-Code-host repo:
mkdir -p ~/.config/evo-code-host
cp config/config.example.toml ~/.config/evo-code-host/config.tomlEdit config:
listen_addr = "0.0.0.0:7700"
service_token = "<your-token>"
allowed_repo_roots = [
"/Volumes/External/GitHub",
]Install as launchd service (macOS):
./ops/launchd/install.sh
./ops/launchd/status.shHealth checks on host:
curl -sS http://127.0.0.1:7700/healthz
curl -sS http://127.0.0.1:7700/readyz- Open Settings → Mode → Remote
- Set Host URL (example:
192.168.1.203:7700) - Set Service Token (must match host config)
- In Setup, use Browse Host Repos (or manual path) and open repo
| Mode | Behavior |
|---|---|
| Standalone | Uses local Tauri commands and local machine CLIs |
| Remote | Uses HTTP/WS to EVO-Code-host; execution happens on host machine |
EVO Code writes and reads per-repo state under ops/:
ops/project.json # project config + agent roster
ops/state.json # run/phase state
ops/chat/thread.json # persistent thread history
ops/runs/* # plan/output artifacts
Tracked context files shown in Setup:
PROJECT.md
AGENTS.md
TOOLS.md
CHECKLISTS.md
TASKS.md
README.md
Warnings above Thread/Setup indicate missing/malformed tracked files or directories.
If remote shows Load failed / cannot reach host:
- From remote machine:
nc -vz <host-ip> 7700
curl -v http://<host-ip>:7700/healthz- Confirm token match in app and host config
- Confirm host listener:
lsof -nP -iTCP:7700 -sTCP:LISTEN- If app fails but
curlworks, ensure host has CORS-enabled build and restartEVO-Code-host
If remote thread errors with:
Failed to run provider claude: No such file or directory (os error 2)
EVO-Code-host can’t find provider binary in launchd PATH. Add PATH in:
~/Library/LaunchAgents/com.evocode.host.plist
Include your CLI locations (for example NVM bin path), then reload service.
# app frontend
npm run dev
# app desktop
npm run tauri dev
# app production build
npm run build
# app rust check
cd src-tauri && cargo checkEVO-Code (this repo)
src/ # React app
src-tauri/ # local runtime + IPC commands
Remote flow:
EVO-Code UI -> HTTP/WS -> EVO-Code-host -> claude/codex CLIs -> repo ops/