Demo using eca-emacs
instalation • configuration • models • protocol
A Free and OpenSource editor-agnostic tool that aims to easily link LLMs <-> Editors, giving the best UX possible for AI pair programming using a well-defined protocol. The server is written in Clojure and heavily inspired by the LSP protocol which is a success case for this kind of integration.
- Editor-agnostic protocol for any editor to integrate.
- Single configuration: Configure eca making it work the same in any editor.
- Chat interface: ask questions, review diffs, work together with an agent in your codebase.
- Context support: giving more details about your code to the LLM.
- Pluggable models: Ollama local models, OpenAI, Anthropic, more on the way.
Eca is written in Clojure and compiled into a native binary via graalvm. You can download the binaries from Github Releases or use the install script for convenience:
Stable release:
bash <(curl -s https://raw.githubusercontent.com/editor-code-assistant/eca/master/install)
nightly build:
bash <(curl -s https://raw.githubusercontent.com/editor-code-assistant/eca/master/install) --version nightly
Editors should spawn the server via eca server
and communicate via stdin/stdout.
The protocol can be found here, it follows the same standard of LSP documentation, defining how server and client communicate with each other.
Check the planned work here.
You can start eca with --log-level debug
which should log helpful information in stderr buffer like what is being sent to LLMs.
Contributions are very welcome, please open an issue for discussion or a pull request. For developer details, check this doc.