affaan-m/ECC

★ 259,737⑂ 38,862

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

About affaan-m/ECC

affaan-m/ECC is an open-source project on GitHub, mainly written in JavaScript. The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode It currently holds 259,737 stars and 38,862 forks with 215 open issues, and was last pushed on 2026-09-15 (repository created 2026-01-18).

Project Overview

AI Homed tracks it on the AI Models & LLM Tools board, currently at rank #2 with 0 new stars today.

GitHub Repository Details

Repository affaan-m/ECC · default branch main · size 50681 KB · watchers 1,327 · source: GitHub REST API and repository README

README

https://github.com/affaan-m/ECC/blob/HEAD/ECC - the agent harness operating system

https://github.com/affaan-m/ECC/blob/HEAD/GitHub Trending Repository of the Day https://github.com/affaan-m/ECC/blob/HEAD/Star History Global Rank

Language: English | العربية | Português (Brasil) | 简体中文 | 繁體中文 | 日本語 | 한국어 | Türkçe | Русский | Tiếng Việt | ไทย | Deutsch | Español | Українська | Polski | বাংলা

https://github.com/affaan-m/ECC/blob/HEAD/Discord https://github.com/affaan-m/ECC/blob/HEAD/Website https://github.com/affaan-m/ECC/blob/HEAD/GitHub App https://github.com/affaan-m/ECC/blob/HEAD/MIT license

https://github.com/affaan-m/ECC/blob/HEAD/GitHub stars https://github.com/affaan-m/ECC/blob/HEAD/GitHub forks https://github.com/affaan-m/ECC/blob/HEAD/Contributors https://github.com/affaan-m/ECC/blob/HEAD/GitHub App installs

https://github.com/affaan-m/ECC/blob/HEAD/ecc-universal npm downloads https://github.com/affaan-m/ECC/blob/HEAD/ecc-agentshield npm downloads

https://github.com/affaan-m/ECC/blob/HEAD/Shell https://github.com/affaan-m/ECC/blob/HEAD/TypeScript https://github.com/affaan-m/ECC/blob/HEAD/Python https://github.com/affaan-m/ECC/blob/HEAD/Go https://github.com/affaan-m/ECC/blob/HEAD/Java https://github.com/affaan-m/ECC/blob/HEAD/Perl https://github.com/affaan-m/ECC/blob/HEAD/Markdown

[!WARNING]
Official sources only. Install ECC only from verified channels: the GitHub repository github.com/affaan-m/ECC, the npm packages ecc-universal and ecc-agentshield, the GitHub App, the plugin slug ecc@ecc, and the project website ecc.tools. Third-party re-uploads and unofficial mirrors are not maintained or reviewed by the project and may contain malware.

Install with Claude Code

Use the guided setup or native plugin commands. Both install the same ecc@ecc plugin. Choose one and do not stack a full manual Claude install on top.

https://github.com/affaan-m/ECC/blob/HEAD/ECC Tools
ECC Pro + GitHub App

Install free · Private repos from $19/seat/mo
https://github.com/affaan-m/ECC/blob/HEAD/
Sponsor ECC

Fund the open-source project
https://github.com/affaan-m/ECC/blob/HEAD/Discord
Community

Discord · Q&A · Show and Tell

OSS stays free. This repo is MIT-licensed forever. ECC Pro is the hosted GitHub App for private repos. Sponsors and Pro subscribers fund the work. That's why a single maintainer ships weekly across 7 harnesses.

Partners & sponsors

https://github.com/affaan-m/ECC/blob/HEAD/CodeRabbit    https://github.com/affaan-m/ECC/blob/HEAD/Greptile    https://github.com/affaan-m/ECC/blob/HEAD/Moonshot AI - Kimi    https://github.com/affaan-m/ECC/blob/HEAD/Itô Markets    https://github.com/affaan-m/ECC/blob/HEAD/SerpApi: Web Search API

Past sponsors: Atlas Cloud · Mike Morgan (inactive)

Community sponsors: @jasonwu513 · @1anter · @massimotodaro · @meadmccabe

Become a Sponsor · Sponsor Tiers · Sponsorship Program

Jump to install ↓

ECC

Your agent can write code, but ECC gives it a coordinated engineering system and toolbox: it plans before it builds, verifies changes with tests, reviews its own work from a fresh context, remembers what matters, and turns repeated wins into reusable skills and workflows.

plan -> test -> implement -> review -> verify -> remember -> improve

Instead of rebuilding that process in every prompt, you install it once and make it part of how your agent works.

Optimize the context window. Persist everything else.

ECC is MIT-licensed open source. It works best with Claude Code today, has native Codex and Qoder plugin paths, and provides capability-limited adapters for Cursor, OpenCode, Gemini, Zed, GitHub Copilot, Antigravity, Qwen, and other harnesses. See the support status matrix before assuming feature parity.

Access to 71 agents, 311 skills, and 97 legacy command shims, plus hooks, rules, memory, continuous learning, and AgentShield security scanning. The agents are specialized for planning, review, build repair, security, architecture, and domain work.

| Included | Count | What it gives you | | ---------------- | ----------: | ------------------------------------------------------------------------------------ | | Agents | 71 agents | Planning, review, build repair, security, architecture, and domain work | | Skills | 311 skills | TDD, research, security, docs, frontend, data, ML, operations, and more | | Commands | 97 commands | Convenient entry points while ECC moves to a skills-first surface | | Hooks and memory | Runtime | Enforcement, session summaries, continuous learning, instincts, and context controls | | Rules | Selective | Always-loaded standards you choose by language or project | | AgentShield | Included | Scanning for prompts, hooks, MCP config, permissions, secrets, and agent files |

https://github.com/affaan-m/ECC/blob/HEAD/Live star history chart for affaan-m/ECC

Install ECC

[!IMPORTANT]
ECC 2.2 includes guided package setup for Claude Code, Codex, and Kimi Code.
The universal package requires Node.js 18 or newer. Claude plugin setup also
requires Git and Claude Code 2.1 or newer on PATH.

Recommended: universal guided setup

For Claude Code plugin setup, updates, scope changes, and hook-profile changes:

npx ecc-universal@2.2.3 setup

Windows first-time walkthrough

If you are new to command-line tools, use this copy-and-paste path:

1. Install Node.js 18 or newer, Git, and Claude Code. 2. Open PowerShell from the Windows Start menu. 3. Confirm that each prerequisite is available:

   node --version
   git --version
   claude --version
   

4. Run the guided installer:

   npx ecc-universal@2.2.3 setup
   

5. For a typical personal setup, choose Global user, choose Standard hooks, and confirm. 6. Start a new Claude Code session and run /plugin list to verify that ecc@ecc is enabled.

This path does not require cloning the repository. If any prerequisite command is not found, install or repair that prerequisite before rerunning ECC setup.

If npm reports a version or cache error, confirm the registry version before retrying:

npm view ecc-universal version

ECC 2.2 supports the same guided setup through modern package runners:

| Package runner | Guided setup command | |---|---| | npm / npx | npx ecc-universal@2.2.3 setup | | pnpm | pnpm dlx ecc-universal@2.2.3 setup | | Yarn 2+ | yarn dlx ecc-universal@2.2.3 setup | | Bun | bunx ecc-universal@2.2.3 setup |

The examples select the published ECC 2.2.3 release, matching this repository's release version. A version pin is not a security audit or an integrity check. Review the release source and registry integrity before running package code; use a reviewed checkout for unreleased changes.

Yarn Classic 1 does not provide yarn dlx; use npx, install the package globally, or upgrade Yarn for a temporary one-shot run.

The wizard inventories the official marketplace and every native Claude install scope before making changes, then installs, updates, or safely moves ecc@ecc to the scope you choose. Rerun the same command whenever you want to update ECC, change scope, or change its hook profile. This setup wizard currently configures the Claude Code plugin; use the multi-harness wizard below for Codex or Kimi Code.

To configure more than one coding agent in one reviewed flow, use the multi-harness wizard:

npx ecc-universal@2.2.3 install --guided

It lets you select any combination of Claude Code, Codex, and Kimi Code, shows each install channel and destination, preflights every selection before the first write, and asks for one final confirmation.

| Harness | Guided install behavior | |---|---| | Claude Code | Native ecc@ecc plugin with one user, project, or local scope and an ECC hook profile | | Codex | Native Codex marketplace/plugin lifecycle; hook review and trust remain Codex-owned | | Kimi Code | Managed project files under ./.kimi-code; ECC hooks, model/provider settings, and authentication are not configured |

For automation, make every provider-specific choice explicit:

npx ecc-universal@2.2.3 install --guided \
  --harness claude --harness codex --harness kimi \
  --claude-scope local --claude-hooks standard \
  --profile core --yes

Verify the native guided Codex path and managed Kimi path without writing first:

npx ecc-universal@2.2.3 install --guided --harness codex --dry-run
npx ecc-universal@2.2.3 install --profile core --target kimi --dry-run

Additional package-name commands are also available through the 2.2 alias:

npx ecc-universal@2.2.3 consult "security reviews" --target claude
npx ecc-universal@2.2.3 install --profile minimal --target claude --with capability:machine-learning
npx ecc-universal@2.2.3 doctor --target kimi

Do not use npx ecc-install --profile minimal --target claude: ecc-install is a binary name inside ecc-universal, not a separately published npm package.

ECC also ships advanced managed adapters for cursor, antigravity, gemini, opencode, codebuddy, joycode, qwen, zed, hermes, and openclaw. Those targets still use their documented ecc install --target ... paths until each adapter has passed the guided collision, update, repair, and uninstall lifecycle matrix. Neither wizard silently installs into every detected harness.

Pick one path only (per harness)

You can use ECC with Claude Code, Codex, and other harnesses at the same time. Choose one install method for each harness:

Do not stack install methods. Installing ECC twice into the same harness can duplicate skills, commands, hooks, or configuration; installing it once into multiple harnesses does not.

If you already layered multiple installs and things look duplicated, skip straight to Reset / Uninstall ECC.

Install trouble? Open the short install or runtime problem form, or run ecc feedback. ECC never uploads diagnostics automatically.

Claude Code details

Alternatively, run Claude Code's native plugin commands inside Claude Code:

/plugin marketplace add https://github.com/affaan-m/ECC
/plugin install ecc@ecc

The native path installs ECC's skills, agents, commands, and plugin-managed hooks. If you choose it, stop there. Do not also run a full manual install into Claude Code.

Claude Code owns these built-in commands, including their errors when a marketplace, plugin, or conflicting scope already exists. ECC cannot intercept that parser. If either native command reports an existing install or scope conflict, use the 2.2 guided setup or resolve the conflicting Claude plugin scope before retrying; do not layer a manual install on top.

After ECC is installed, /ecc:configure-ecc is the namespaced in-Claude reconfiguration skill. It delegates to the same safe setup flow, but it is available only after the plugin is installed and cannot replace Claude Code's built-in /plugin command during a first install.

Claude Code plugins cannot distribute rules, so add only the rule packs you actually want:

git clone https://github.com/affaan-m/ECC.git
cd ECC
mkdir -p ~/.claude/rules/ecc
cp -R rules/common ~/.claude/rules/ecc/
cp -R rules/typescript ~/.claude/rules/ecc/  # replace with your stack

Start with rules/common plus one language or framework pack you actually use. If you install the plugin, do not run ./install.sh --profile full afterward.

Prefer settings.json? Add the marketplace declaratively

Add directly to your ~/.claude/settings.json:

{
  "extraKnownMarketplaces": {
    "ecc": {
      "source": {
        "source": "github",
        "repo": "affaan-m/ECC"
      }
    }
  },
  "enabledPlugins": {
    "ecc@ecc": true
  }
}

This gives you the same result as the two /plugin commands above.

Naming + migration note (ecc@ecc, affaan-m/ECC, ecc-universal)

ECC has three public identifiers, and they are not interchangeable:

  • GitHub source repo: affaan-m/ECC
  • Claude marketplace/plugin identifier: ecc@ecc
  • npm package: ecc-universal
This is intentional. Anthropic marketplace/plugin installs are keyed by a canonical plugin identifier, so ECC uses ecc@ecc to keep tool names and slash-command namespaces short enough for strict Desktop/API validators. Older posts may still show the former long marketplace identifier; treat that as a legacy alias only. Separately, the npm package stayed on ecc-universal, so npm installs and marketplace installs intentionally use different names.

npm releases are cut per version tag, not per commit, so ecc-universal tracks releases (2.1, 2.2, ...) rather than every push to main. Install from git if you want the bleeding edge.

If your local Claude setup was wiped or reset, that does not mean you need to repurchase anything. Start with node scripts/ecc.js list-installed, then run node scripts/ecc.js doctor and node scripts/ecc.js repair before reinstalling. That usually restores ECC-managed files without rebuilding your setup.

Codex App and CLI

Current Codex releases can install ECC as a native repo-marketplace plugin. The marketplace entry uses the repository root so Codex's cache receives the manifest together with all referenced skills, MCP configuration, hook runtime, scripts, and assets:

codex plugin marketplace add affaan-m/ECC
codex plugin add ecc@ecc
codex plugin list --json
node scripts/codex/check-plugin-cache.js

Both add commands are idempotent. To refresh later, run codex plugin marketplace upgrade ecc followed by codex plugin add ecc@ecc. Codex stores one enabled plugin state in the active CODEX_HOME; it does not offer Claude's user, project, and local scopes. Its native hooks require an explicit trust decision and do not use Claude's four ECC hook profiles. Inside Codex, invoke $configure-ecc for the guided provider-aware flow.

The older scripts/sync-ecc-to-codex.sh path is a deprecated compatibility option for users who intentionally need copied and merged configuration in ~/.codex; it is not required for the native plugin. New sync runs write an ownership manifest so cleanup can preserve modified user files. Run Codex once first so ~/.codex/config.toml exists, then:

git clone https://github.com/affaan-m/ECC.git
cd ECC
npm install
bash scripts/sync-ecc-to-codex.sh

To inspect or remove that legacy layer without touching Codex conversations or native plugin caches:

node scripts/ecc.js uninstall --legacy-codex-sync --dry-run
node scripts/ecc.js uninstall --legacy-codex-sync

Pre-manifest installations are handled conservatively: ECC removes its marked AGENTS.md block but preserves copied files it cannot prove it owns and reports them for review.

You can also open the ECC repository directly in Codex for a project-local setup. Codex reads the root AGENTS.md and the trusted project configuration in .codex/ without a global sync. Do not add the native marketplace plugin on top of the sync flow.

For repo navigation, surface ownership, and PR diff packet guidance, read the Codex ECC Navigation Map. See the .codex plugin notes for native lifecycle details.

Qoder CLI and IDE

ECC ships a native Qoder plugin that reuses the canonical skills, agents, 95 legacy command shims, and the pinned chrome-devtools MCP definition. From a reviewed checkout, validate and install it with Qoder CLI:

qoder plugins validate . --strict
qoder plugins install .
qoder plugins list

For Qoder IDE, upload a ZIP of the repository root. The ZIP root must contain .qoder-plugin/ together with skills/, agents/, commands/, hooks/, scripts/, and .mcp.json; uploading only the manifest directory or one SKILL.md omits required resources.

The universal Node.js 18+ requirement applies to Qoder's non-interactive hook environment. The MCP server also requires npx and network access on first use. Qoder receives one reviewed, cross-platform SessionStart bootstrap using QODER_PLUGIN_ROOT and exec-form arguments. ECC does not copy the full Claude hook profile into Qoder: blocking tool hooks, async stop jobs, and Claude-specific matchers remain outside this initial native integration. See the .qoder-plugin notes for the exact boundary.

Other agents and editors

Cursor, OpenCode, Gemini, Zed, Antigravity, Qwen, Hermes, OpenClaw, Kimi, CodeBuddy, JoyCode, Copilot

Clone ECC once, then choose the target that matches your harness:

git clone https://github.com/affaan-m/ECC.git
cd ECC

| Harness | Install or setup | Notes | |---|---|---| | Cursor | ./install.sh --profile minimal --target cursor | Project-local .cursor/ adapter | | OpenCode | npm install && npm run build:opencode && ./install.sh --profile full --target opencode --enable-hooks | Builds the plugin payload before the full install | | Gemini CLI | ./install.sh --profile minimal --target gemini | Project-local .gemini/ config | | Zed | ./install.sh --profile minimal --target zed | Project-local .zed/ adapter | | Antigravity | ./install.sh --profile minimal --target antigravity | See the Antigravity guide | | Qwen CLI | `.

GitHub Stars & Activity

259,737Stars
38,862Forks
215Open issues
JavaScriptLanguage

GitHub Popularity

GitHub stars259,737
Forks38,862
Open issues215
Primary languageJavaScript
LicenseMIT
Stars gained today0
Created2026-01-18
Last pushed2026-09-15

Trending History

Daily boardrank #2 · ▲ 0 stars
Weekly boardrank #2 · ▲ 0 stars
Monthly boardrank #2 · ▲ 0 stars

Related AI Projects

1

DietrichGebert / ponytail

JavaScript★ 166,923⑂ 0
→
2

tt-a1i / archify

JavaScript★ 85,353⑂ 0
→
3

Mintplex-Labs / anything-llm

JavaScript★ 67,281⑂ 0
→
4

SillyTavern / SillyTavern

JavaScript★ 34,647⑂ 0
→
5

morluto / rea

TypeScript★ 320,235⑂ 0
→
6

NousResearch / hermes-agent

Python★ 254,906⑂ 0
→
7

firecrawl / firecrawl

TypeScript★ 192,727⑂ 0
→
8

Significant-Gravitas / AutoGPT

Python★ 187,642⑂ 0
→

More AI Rankings