editor-code-assistant/eca

Editor Code Assistant (ECA) - AI pair programming capabilities agnostic of editor

What it solves

ECA provides a standardized, editor-agnostic way to integrate Large Language Models (LLMs) into various code editors. It eliminates the need for each editor to implement its own complex AI logic, allowing developers to have a consistent AI pair-programming experience and a single configuration across different tools (such as Emacs, VS Code, and IntelliJ).

How it works

ECA operates as a server written in Clojure, inspired by the Language Server Protocol (LSP). Editors launch the ECA server via eca server and communicate with it using stdin/stdout. This server acts as a middle layer that manages tool calls, multiple LLM interactions, and telemetry, while the editor focuses on the user interface for editing and planning changes.

Who it’s for

It is designed for developers who use multiple different code editors or want a consistent, open-source AI assistant that supports a wide range of LLM providers (including OpenAI, Anthropic, Copilot, and local Ollama models).

Highlights

  • Editor-Agnostic Protocol: A unified protocol that allows any editor to integrate AI capabilities easily.
  • Multi-Model Support: Compatible with various providers including OpenAI, Anthropic, Copilot, and local models via Ollama.
  • Agentic Capabilities: Supports the configuration of multiple agents and subagents with distinct models, tools, and behaviors.
  • Comprehensive Feature Set: Includes chat, code rewriting, and code completion.
  • Context Awareness: Supports providing detailed code context to the LLM, including MCP resources and prompts.
  • Observability: Integrates OpenTelemetry to export metrics on tool and server usage.