# affaan-m/ecc

> ecc is an agent harness performance optimization system for Claude Code, Codex, Opencode, Cursor and other agent harnesses. It installs skills, instincts, memory, security rules and research-first development workflows into each harness's own configuration. The core is written in JavaScript, with Python, Shell, TypeScript and Rust components.

Source: https://github.com/affaan-m/ecc
Indexed: commit d2ef268 on 2026-11-10 by Repowise. Facts come from the source and git history, not from the maintainer.

## Facts

- Type: Command-line tool
- Language: JavaScript
- Stars: 302,716 at index time
- License: MIT
- Code health: 5.7/10, Fair
- Last commit: 2026-10-30
- Contributors: 338

## Install

From the README: https://github.com/affaan-m/ecc#install-with-claude-code

Claude Code:

Clone the ecc repository.
    git clone https://github.com/affaan-m/ecc.git

Move into the ecc folder.
    cd ecc

Run the guided universal setup, which handles Claude Code plugin setup, updates, scope changes, and hook-profile changes.
    npx ecc-universal@2.2.3 setup

From a source checkout, install the hook runtime for Claude Code and enable its hooks.
    bash ./install.sh --target claude --modules hooks-runtime --enable-hooks

Install the full profile for GitHub Copilot, which writes files only under the .github directory.
    ./install.sh --profile full --target copilot

## How it works

Installation starts with the install.sh script or scripts/ecc.js, which copies files into the chosen harness and records what it placed in an install-state file. The --target option selects a harness such as claude or copilot, and --modules chooses which parts are installed. The skills directory holds the skill packages that get copied into a harness. For OpenCode, .opencode/index.ts is the plugin entry point, and the npm package ecc-universal exposes the same plugin module. hooks/hooks.json defines the Claude Code hooks, which the hook runtime registers in settings.json when installed with --enable-hooks. The ecc2 directory is a separate Rust package whose main.rs file starts a terminal dashboard.

- .opencode/index.ts: entry point
- docker/context-profiles/complex-eval/cases/sentinel-api/files/src/app.js: entry point
- docker/context-profiles/complex-eval/cases/webhook-relay/files/src/app.js: entry point
- docker/context-profiles/complex-eval/cases2/event-stats-api/files/src/app.js: entry point
- docker/context-profiles/complex-eval/cases2/forge-cli/files/src/cli.js: entry point
Modules: tests, scripts, docker, skills, src, ecc2, .cursor, .opencode. 4,510 files, 345,925 lines, 16,190 symbols.

## Code health

- Score: 5.7/10 (Fair)
- Rank: #200 of 4,000+ indexed repos
- Hotspots: ecc2/src/tui/dashboard.rs, ecc2/src/main.rs, tests/hooks/gateguard-fact-force.test.js, ecc2/src/session/manager.rs, scripts/hooks/gateguard-fact-force.js
- Lowest file: skills/continuous-learning-v2/scripts/instinct-cli.py
- Dead code: 115 findings

## Maintenance

- Last commit 2026-10-30, 2,678 commits
- 338 contributors, bus factor 3

## Security

- Security findings are shown to signed-in users at https://repowise.dev/repo/affaan-m/ecc/security

## More

- Page: https://repowise.dev/repo/affaan-m/ecc
- Ask this codebase: https://repowise.dev/repo/affaan-m/ecc/chat
- Docs: https://repowise.dev/repo/affaan-m/ecc/docs
- MCP (signs in with Repowise on first use):
    claude mcp add --transport http repowise https://api.repowise.dev/mcp/affaan-m/ecc
