{"id":30676384,"url":"https://github.com/editor-code-assistant/eca","last_synced_at":"2026-04-09T15:04:20.135Z","repository":{"id":300413700,"uuid":"1002983772","full_name":"editor-code-assistant/eca","owner":"editor-code-assistant","description":"Editor Code Assistant (ECA) - AI pair programming capabilities agnostic of editor","archived":false,"fork":false,"pushed_at":"2026-02-23T19:14:40.000Z","size":19652,"stargazers_count":653,"open_issues_count":61,"forks_count":40,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-02-23T21:29:35.472Z","etag":null,"topics":["ai","chat","completion","editor","hacktoberfest","jsonrpc","llm","protocol","tooling"],"latest_commit_sha":null,"homepage":"http://eca.dev","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/editor-code-assistant.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"editor-code-assistant","open_collective":"editor-code-assistant"}},"created_at":"2025-06-16T12:51:55.000Z","updated_at":"2026-02-23T13:47:13.000Z","dependencies_parsed_at":"2025-07-13T14:31:56.241Z","dependency_job_id":"739e3aff-3d00-4926-8076-14ae2c7eda5d","html_url":"https://github.com/editor-code-assistant/eca","commit_stats":null,"previous_names":["editor-code-assistant/eca"],"tags_count":255,"template":false,"template_full_name":null,"purl":"pkg:github/editor-code-assistant/eca","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/editor-code-assistant%2Feca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/editor-code-assistant%2Feca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/editor-code-assistant%2Feca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/editor-code-assistant%2Feca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/editor-code-assistant","download_url":"https://codeload.github.com/editor-code-assistant/eca/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/editor-code-assistant%2Feca/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29832696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T17:17:09.781Z","status":"ssl_error","status_checked_at":"2026-02-25T17:16:50.421Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chat","completion","editor","hacktoberfest","jsonrpc","llm","protocol","tooling"],"created_at":"2025-09-01T10:01:38.748Z","updated_at":"2026-04-09T15:04:20.130Z","avatar_url":"https://github.com/editor-code-assistant.png","language":"Clojure","readme":"\u003ca href=\"https://eca.dev\"\u003e\u003cimg src=\"images/logo.png\" width=\"110\" align=\"right\"\u003e\u003c/a\u003e\n\n[![GitHub Release](https://img.shields.io/github/v/release/editor-code-assistant/eca?display_name=release\u0026style=flat-square)](https://github.com/editor-code-assistant/eca/releases/latest)\n\u003ca href=\"https://github.com/editor-code-assistant/eca/stargazers\"\u003e\u003cimg alt=\"GitHub Stars\" title=\"Total number of GitHub stars the ECA project has received\"\nsrc=\"https://img.shields.io/github/stars/editor-code-assistant/eca?style=flat-square\u0026logo=github\u0026color=f1c40f\u0026labelColor=555555\"/\u003e\u003c/a\u003e\n[![Downloads](https://img.shields.io/github/downloads/editor-code-assistant/eca/total.svg?style=flat-square)](https://github.com/editor-code-assistant/eca/releases/latest)\n[![Chat community](https://img.shields.io/badge/Slack-chat-blue?style=flat-square)](https://clojurians.slack.com/archives/C093426FPUG)\n\n# ECA (Editor Code Assistant)\n\n\u003ctable align=\"center\"\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/editor-code-assistant/eca-emacs\"\u003eeca-emacs\u003cimg src=\"https://raw.githubusercontent.com/editor-code-assistant/eca-emacs/master/demo.gif\" width=\"720\"/\u003e\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/editor-code-assistant/eca-vscode\"\u003eeca-vscode\u003cimg src=\"https://raw.githubusercontent.com/editor-code-assistant/eca-vscode/master/demo.gif\" width=\"720\"/\u003e\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/editor-code-assistant/eca-intellij\"\u003eeca-intellij\u003cimg src=\"https://raw.githubusercontent.com/editor-code-assistant/eca-intellij/master/demo.gif\" width=\"720\"/\u003e\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n \n\u003chr\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://eca.dev/config/introduction/#installation\"\u003e\u003cstrong\u003einstallation\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://eca.dev/features\"\u003e\u003cstrong\u003efeatures\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://eca.dev/config/introduction\"\u003e\u003cstrong\u003econfiguration\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://eca.dev/config/models\"\u003e\u003cstrong\u003emodels\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://eca.dev/protocol\"\u003e\u003cstrong\u003eprotocol\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://eca.dev/troubleshooting\"\u003e\u003cstrong\u003etroubleshooting\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003chr\u003e\n\n- :page_facing_up: **Editor-agnostic**: protocol for any editor to integrate.\n- :gear: **Single configuration**: Configure eca making it work the same in any editor via global or local configs.\n- :loop: **Multiple features**: chat, rewrite, and completion — all powered by your LLM.\n- :coffee: **Agents / Subagents**: configure multiple agents with different models, tools, and behaviors.\n- :syringe: **Context**: support: giving more details about your code to the LLM, including MCP resources and prompts.\n- :rocket: **Multi models**: Login to OpenAI, Anthropic, Copilot, Ollama local models and many more.\n- :chart_with_upwards_trend: **OpenTelemetry**: Export metrics of tools, prompts, server usage.\n\n## Rationale \n\n\u003cimg src=\"images/rationale.jpg\" width=\"500\"\u003e\n\nA Free and OpenSource editor-agnostic tool that aims to easily link LLMs \u003c-\u003e 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](https://microsoft.github.io/language-server-protocol/) which is a success case for this kind of integration.\n\nThe protocol makes it easier for other editors to integrate, and having a server in the middle helps add more features quickly, some examples:\n- Tool call management\n- Multiple LLM interaction \n- Telemetry of feature usage\n- Single way to configure for any editor\n- Same UX, easy to onboard people and teams. \n\nWith the LLMs models race, the differences between them tend to be irrelevant in the future, but UX on how to edit code or plan changes is something that will exist; ECA helps editors focus on that.\n\n**How it works**: Editors spawn the server via `eca server` and communicate via stdin/stdout, similar to LSPs. Supported editors already download the latest server on start and require no extra configuration.\n\n## Quickstart\n\n### 1. Install the editor plugin\n\nInstall the plugin for your editor and ECA server will be downloaded and started automatically:\n\n- [Emacs](https://github.com/editor-code-assistant/eca-emacs)\n- [VsCode](https://github.com/editor-code-assistant/eca-vscode)\n- [Vim](https://github.com/editor-code-assistant/eca-nvim)\n- [Intellij](https://github.com/editor-code-assistant/eca-intellij)\n\n### 2. Set up your first model\n\nTo use ECA, you need to configure at least one model / provider (_tip: Github Copilot offer free models!_).\n\nSee the [Models documentation](https://eca.dev/config/models#adding-and-configuring-models) for detailed instructions:\n\n1. Type in the chat `/login`.\n2. Choose your provider\n3. Follow the steps to configure the key or auth for your provider.\n4. This will add to the global config.json the config for that provider.\n\nor [configure manually](https://eca.dev/config/models/).\n\n**Note**: For other providers or custom models, see the [custom providers documentation](https://eca.dev/config/models#custom-providers).\n\n### 3. Start chatting, completing, rewriting\n\nOnce your model is configured, you can start using ECA's features interface in your editor to ask questions, review code, and work together on your project.\n\n__Check [Suggested Workflow](https://eca.dev/workflows) for the best way to use ECA.__\n\n## Roadmap\n\nCheck the planned work [here](https://github.com/orgs/editor-code-assistant/projects/1).\n\n## Be the first to sponsor the project 💖\n\nConsider [sponsoring the project](https://github.com/sponsors/editor-code-assistant) to help grow faster, the support helps to keep the project going, being updated and maintained!\n\n## Contributing\n\nContributions are very welcome, please open an issue for discussion or a pull request.\nFor developer details, check [development docs](https://eca.dev/development).\n\nThese are all the incredible people who helped make ECA better!\n\n[\u003cimg src=\"https://opencollective.com/editor-code-assistant/contributors.svg?width=890\u0026button=false\" alt=\"Code Contributors\" style=\"max-width:100%;\"\u003e](https://github.com/editor-code-assistant/eca/graphs/contributors)\n","funding_links":["https://github.com/sponsors/editor-code-assistant","https://opencollective.com/editor-code-assistant"],"categories":["Clojure","Uncategorized","人工智能","IDE Extensions","Editor Integrations"],"sub_categories":["Uncategorized","Other IDEs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feditor-code-assistant%2Feca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feditor-code-assistant%2Feca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feditor-code-assistant%2Feca/lists"}