Skip to content

editor-code-assistant/eca

Repository files navigation

GitHub Release GitHub Stars Downloads License: Apache 2.0

ECA (Editor Code Assistant)

Demo using eca-emacs demo

Demo using eca-vscode demo


installationfeaturesconfigurationmodelsprotocol


  • 📄 Editor-agnostic: protocol for any editor to integrate.
  • ⚙️ Single configuration: Configure eca making it work the same in any editor via global or local configs.
  • Chat interface: ask questions, review code, work together to code.
  • Agentic: let LLM work as an agent with its native tools and MCPs you can configure.
  • 💉 Context: support: giving more details about your code to the LLM, including MCP resources and prompts.
  • 🚀 Multi models: OpenAI, Anthropic, Ollama local models, and custom user config models.

Rationale

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.

The protocol makes easier for other editors integrate and having a server in the middle helps adding more features quickly like exporting metrics of features usage or single way to configure it for any editor.

Getting started

Install the plugin for your editor and ECA server will be downloaded and started automatically.

Supported editors

How it works

Editors spawn the server via eca server and communicate via stdin/stdout, similar to LSPs. Supported editors already download latest server on start and require no extra configuration.

Roadmap

Check the planned work here.

Troubleshooting

You can start eca with --log-level debug or --verbose which should log helpful information to stderr buffer like what is being sent to LLMs or what ECA is responding to editors.

Contributing

Contributions are very welcome, please open an issue for discussion or a pull request. For developer details, check this doc.

Support the project 💖

Consider sponsoring the project to help grow faster, the support helps to keep the project going, being updated and maintained!