ECA (Editor Code Assistant) Desktop is an AI-powered pair-programming client that runs as a standalone desktop app — no editor required.
It connects to an external eca server process to provide interactive chat, code suggestions, context management and more.
The rationale came from being able to offer all ECA server capabilities that are a lot in an easy way without requiring an editor, since most logic lives in ECA server, ECA Desktop is a thin wrapper layer re-using eca-webview.
For more details about ECA, features and configuration, check ECA server.
This app will auto download eca and manage the process.
Grab the latest installer for your platform from GitHub Releases:
| Platform | Architecture | Formats |
|---|---|---|
| macOS | Intel (x64) | .dmg, .zip |
| macOS | Apple Silicon (arm64) | .dmg, .zip |
| Linux | x64 | .AppImage, .deb |
| Linux | arm64 | .AppImage, .deb |
Release assets are published with SLSA build provenance so you can verify they were built by this repository's CI.
Auto-updates:
.dmg,.zip, and.AppImageupdate in place viaelectron-updater..debdoes not auto-update — upgrade by downloading a fresh.debfrom Releases.
Open Settings from the app menu to configure the eca server path, extra server args, and other preferences.
Check troubleshooting docs section.
- Node.js v18+
- npm
Make sure that you have the eca-webview submodule cloned:
git clone --recursive https://github.com/editor-code-assistant/eca-desktop.git
cd eca-desktop
npm installIf you already cloned without --recursive:
git submodule update --init --recursivenpm run devThis starts the eca-webview Vite dev server on http://localhost:5173 and launches Electron pointing to it, so any changes will be updated on the desktop app live.
If you already have an eca-webview Vite dev server running (for example one started by eca-vscode or eca-intellij), you can boot only the desktop side and have it connect to that same webview:
# Terminal A — the webview only (or already running from another client)
npm run dev:webview
# Terminal B — the desktop only, connects to http://localhost:5173 by default
npm run dev:appOverride the URL with the ECA_WEBVIEW_URL env var to point at a non-default host/port:
ECA_WEBVIEW_URL=http://localhost:6000 npm run dev:appnpm run package # current platform
npm run package:mac # macOS
npm run package:linux # LinuxInstallers are written to release/.
See CONTRIBUTING.md for more details.
| Platform | Status |
|---|---|
| macOS (Intel & Apple Silicon) | ✅ Supported |
| Linux (x64 & arm64) | ✅ Supported |
| Windows | 🔮 Planned |
Contributions are very welcome, please open an issue for discussion or a pull request. See CONTRIBUTING.md for development guidelines.
