1. Quick Start
Everything Claude Code (ECC) is a comprehensive collection of battle-tested configurations, skills, hooks, rules, commands, and agents for Claude Code and compatible AI-assisted coding tools. Evolved over 10+ months of intensive daily use by an Anthropic hackathon winner, ECC transforms Claude Code from a capable assistant into a fully governed, multi-agent development environment.
Key features:
- 130+ domain-specific skills covering languages, frameworks, security, DevOps, and business workflows
- 80+ slash commands for code review, TDD, deployment, and project management
- 19+ specialized agent definitions (planner, security-reviewer, e2e-runner, and more)
- Event-driven hook system with quality gates, formatting, and safety guardrails
- Language-specific rules for TypeScript, Python, Go, Rust, Swift, Kotlin, Java, C++, PHP, C#, Perl, and Dart
- Multi-IDE support (Claude Code, Cursor, Codex, Gemini, OpenCode, AntiGravity, CodeBuddy)
- Curated MCP server catalog with 20+ pre-configured integrations
- ECC 2.0 TUI dashboard for session orchestration and worktree management (Rust)
Prerequisites:
- Node.js >= 18
- Claude Code (or a compatible IDE target)
- Git
Install in one command:
npx ecc typescript
ecc-universal installed!
Run: npx ecc typescript
What to try next: Run /tdd to start a test-driven development workflow, /code-review for instant code review, or /plan to create an implementation plan.
Tip
If you already have an existing Claude Code setup, ECC merges its configuration non-destructively. Your existing rules and hooks are preserved.
2. Installation
System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| Node.js | 18+ | 20+ |
| OS | Windows 10, macOS 12, Linux (kernel 5.4+) | Latest stable |
| Disk | 50 MB | 100 MB |
| Claude Code | Any version | Latest |
Install Methods
npm (recommended)
npx ecc typescript
yarn
yarn dlx ecc-universal typescript
Manual (install script)
git clone https://github.com/affaan-m/everything-claude-code.git
cd everything-claude-code
./install.sh typescript
Windows (PowerShell)
git clone https://github.com/affaan-m/everything-claude-code.git
cd everything-claude-code
.\install.ps1 typescript
Important
When installing manually, copy entire rule directories — do not flatten with
/*. Thecommon/and language-specific directories contain files with the same names, and flattening breaks the../common/relative references that language-specific files depend on.
Multiple Languages
Install support for multiple languages at once:
npx ecc typescript python golang
Or install individual language packs:
npx ecc python
npx ecc golang
npx ecc swift
npx ecc kotlin
npx ecc java
npx ecc cpp
npx ecc php
npx ecc csharp
npx ecc perl
npx ecc dart
npx ecc rust
Install Profiles
ECC supports profile-based installation for targeted setups:
# Install a named profile from ecc-install.json
npx ecc-install --profile web-fullstack
Profiles group components by use case. You can also use component-based selection:
# Include specific capability components
npx ecc-install --include baseline:rules --include lang:typescript --include capability:security
| Component Family | Examples | Purpose |
|---|---|---|
baseline |
baseline:rules, baseline:hooks, baseline:commands, baseline:agents, baseline:platform, baseline:workflow |
Core infrastructure |
lang |
lang:typescript, lang:python, lang:go, lang:java, lang:swift, lang:cpp, lang:kotlin, lang:rust, lang:perl, lang:dart, lang:csharp |
Language-specific guidance |
framework |
framework:react, framework:nextjs, framework:django, framework:springboot |
Framework-specific patterns |
capability |
capability:security, capability:database, capability:research, capability:media, capability:orchestration |
Domain capabilities |
Multi-IDE Targets
ECC supports installation across different AI coding tools:
| Target | Command | Description |
|---|---|---|
| Claude Code | npx ecc typescript |
Default target |
| Cursor | npx ecc --target cursor typescript |
Cursor IDE |
| Codex | npx ecc --target codex typescript |
OpenAI Codex |
| Gemini | npx ecc --target gemini typescript |
Google Gemini |
| OpenCode | npx ecc --target opencode typescript |
OpenCode |
| AntiGravity | npx ecc --target antigravity typescript |
AntiGravity |
| CodeBuddy | npx ecc --target codebuddy typescript |
CodeBuddy |
Post-Install Verification
After installation, verify the setup:
npx ecc --version
1.10.0
Check installed components:
node scripts/list-installed.js
Run the diagnostic tool:
node scripts/doctor.js
Tip
Use
node scripts/doctor.jsafter installation to detect misconfigurations, missing hooks, or broken skill references.
Uninstalling
node scripts/uninstall.js
3. Configuration
Hook Profiles
ECC hooks enforce code quality and safety checks automatically. Control their behavior with environment variables:
# Set hook profile: minimal | standard | strict
export ECC_HOOK_PROFILE=standard
# Disable specific hooks by ID (comma-separated)
export ECC_DISABLED_HOOKS="pre:bash:tmux-reminder,post:edit:typecheck"
| Profile | Behavior |
|---|---|
minimal |
Only essential lifecycle and security hooks |
standard |
Default — balanced quality + safety checks |
strict |
Extra reminders and stricter guardrails |
Package Manager
ECC detects your project's package manager automatically. Override it with:
export CLAUDE_PACKAGE_MANAGER=yarn
Or run the interactive setup:
node scripts/setup-package-manager.js
MCP Server Configuration
ECC includes a curated catalog of 20+ MCP server configurations in mcp-configs/mcp-servers.json. To use them, copy the servers you need to your ~/.claude.json mcpServers section:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE"
}
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
Warning
Keep under 10 MCP servers enabled at once to preserve your context window. Disable unused MCPs with
ECC_DISABLED_MCPS=github,context7,...during install or sync.
For a full configuration reference, see the Admin Guide.
4. Core Usage
Skills
Skills are contextual knowledge modules that Claude Code loads automatically based on what you are working on. Each skill lives in skills/<name>/SKILL.md and contains domain-specific patterns, best practices, and code examples.
How skills activate: When you edit a Python file, python-patterns and python-testing load. Working on a Django project triggers django-patterns, django-security, and django-tdd. Running a TDD workflow activates tdd-workflow.
Skill Categories
| Category | Example Skills | When They Activate |
|---|---|---|
| Language Patterns | python-patterns, golang-patterns, rust-patterns, kotlin-patterns |
Editing files in that language |
| Framework | django-patterns, springboot-patterns, laravel-patterns, nextjs-turbopack |
Framework-specific projects |
| Testing | python-testing, golang-testing, e2e-testing, tdd-workflow |
Writing or running tests |
| Security | security-review, security-scan, django-security, laravel-security |
Security-sensitive code |
| DevOps | docker-patterns, deployment-patterns, database-migrations |
Infrastructure work |
| AI/ML | pytorch-patterns, cost-aware-llm-pipeline, eval-harness |
AI/ML development |
| Business | article-writing, investor-materials, market-research, seo |
Content and communications |
| Media | video-editing, manim-video, fal-ai-media, remotion-video-creation |
Media generation |
| Orchestration | autonomous-loops, continuous-agent-loop, enterprise-agent-ops |
Multi-agent workflows |
Note
The full skill catalog includes 130+ skills. Run
node scripts/catalog.jsto see the current inventory with descriptions.
Slash Commands
Slash commands are quick-access workflows invoked with /<command-name> in Claude Code. ECC provides 80+ commands organized by purpose.
Development Commands
| Command | Purpose |
|---|---|
/plan |
Create a structured implementation plan |
/tdd |
Start a test-driven development workflow |
/code-review |
Run code review for quality and security |
/build-fix |
Fix build and TypeScript errors |
/refactor-clean |
Remove dead code and clean up |
/verify |
Run build, test, and lint verification loop |
/test-coverage |
Analyze and improve test coverage |
/feature-dev |
Full feature development workflow |
Language-Specific Commands
| Command | Purpose |
|---|---|
/go-build, /go-test, /go-review |
Go development |
/rust-build, /rust-test, /rust-review |
Rust development |
/kotlin-build, /kotlin-test, /kotlin-review |
Kotlin development |
/cpp-build, /cpp-test, /cpp-review |
C++ development |
/python-review |
Python code review |
/flutter-build, /flutter-test, /flutter-review |
Flutter development |
Workflow Commands
| Command | Purpose |
|---|---|
/e2e |
Generate and run E2E Playwright tests |
/eval |
Run evaluation against criteria |
/update-docs |
Update documentation and codemaps |
/quality-gate |
Run quality gate checks |
/prompt-optimize |
Optimize prompts for LLM efficiency |
/hookify |
Create hooks through conversation |
/orchestrate |
Launch multi-agent orchestration |
/learn |
Trigger continuous learning evaluation |
Session Management Commands
| Command | Purpose |
|---|---|
/sessions |
List active sessions |
/save-session |
Save current session state |
/resume-session |
Resume a saved session |
/claw |
Interactive session launcher |
Agents
Agents are specialized AI personas with focused expertise. They are defined in AGENTS.md and the agents/ directory.
| Agent | Purpose | When to Use |
|---|---|---|
planner |
Implementation planning | Complex features, refactoring |
architect |
System design and scalability | Architectural decisions |
tdd-guide |
Test-driven development | New features, bug fixes |
code-reviewer |
Code quality | After writing code |
security-reviewer |
Vulnerability detection | Before commits, sensitive code |
build-error-resolver |
Fix build/type errors | When builds fail |
e2e-runner |
End-to-end Playwright testing | Critical user flows |
refactor-cleaner |
Dead code cleanup | Code maintenance |
doc-updater |
Documentation and codemaps | Updating docs |
loop-operator |
Autonomous loop execution | Running loops safely |
harness-optimizer |
Harness config tuning | Reliability, cost, throughput |
Language-specific agents are also available: go-reviewer, python-reviewer, typescript-reviewer, rust-reviewer, java-reviewer, kotlin-reviewer, cpp-reviewer, and database-reviewer.
Tip
Use
/agent-sortto automatically select the best agent for your current task based on the code context.
Hooks
Hooks run automatically before or after Claude Code tool executions. They enforce quality, safety, and consistency without manual intervention.
PreToolUse Hooks (run before actions)
| Hook | Triggers On | Behavior |
|---|---|---|
| Bash preflight dispatcher | Bash |
Quality, tmux, push, and GateGuard checks |
| Doc file warning | Write |
Warns about non-standard .md/.txt files |
| Suggest compact | Edit|Write |
Suggests /compact at logical intervals (~50 tool calls) |
| Config protection | Write|Edit|MultiEdit |
Blocks modifications to linter/formatter config files |
| MCP health check | * |
Checks MCP server health before MCP tool calls |
| GateGuard fact-force | Edit|Write|MultiEdit |
Blocks first edit per file until investigation is done |
| Governance capture | Bash|Write|Edit|MultiEdit |
Captures secrets and policy violation events (opt-in via ECC_GOVERNANCE_CAPTURE=1) |
PostToolUse Hooks (run after actions)
| Hook | Triggers On | Behavior |
|---|---|---|
| Bash postflight dispatcher | Bash |
Logging, PR tracking, build notifications |
| Quality gate | Edit|Write|MultiEdit |
Runs quality checks after edits |
| Design quality check | Edit|Write|MultiEdit |
Warns when UI drifts toward generic templates |
| Edit accumulator | Edit|Write|MultiEdit |
Records paths for batch format+typecheck at Stop |
| Console.log warning | Edit |
Warns about console.log statements |
Lifecycle Hooks
| Hook | Event | Behavior |
|---|---|---|
| Session start | SessionStart |
Loads previous context and detects package manager |
| Pre-compact | PreCompact |
Saves state before context compaction |
Warning
The GateGuard fact-force hook blocks the first
Edit/Write/MultiEditper file, requiring you to investigate the file's importers, data schemas, and user instructions before making changes. This prevents blind modifications. If this is too strict for your workflow, setECC_HOOK_PROFILE=minimalor disable it withECC_DISABLED_HOOKS="pre:edit-write:gateguard-fact-force".
Rules
Rules define broad coding standards and conventions. They are organized in a layered structure:
rules/
├── common/ # Language-independent (always installed)
│ ├── coding-style.md
│ ├── git-workflow.md
│ ├── testing.md
│ ├── performance.md
│ ├── patterns.md
│ ├── hooks.md
│ ├── agents.md
│ └── security.md
├── typescript/ # TypeScript/JavaScript
├── python/ # Python
├── golang/ # Go
├── swift/ # Swift
├── kotlin/ # Kotlin
├── java/ # Java
├── rust/ # Rust
├── cpp/ # C/C++
├── php/ # PHP
├── csharp/ # C#
├── perl/ # Perl
├── dart/ # Dart
└── web/ # Web-specific
Rule priority: When a language-specific rule conflicts with a common rule, the language-specific rule takes precedence — similar to CSS specificity.
Note
Rules tell you what to do; skills tell you how to do it. Language-specific rule files reference relevant skills for detailed implementation guidance.
5. Common Tasks
Start Test-Driven Development
Goal: Write a new feature using TDD methodology.
- Run
/tddto start the TDD workflow - Claude will prompt you for the feature requirements
- Write failing tests first
- Implement the minimum code to pass
- Refactor with confidence
Verify: Tests pass and coverage meets the 80% minimum threshold.
If it fails: Run /build-fix to resolve any build errors, then re-run tests.
Run a Code Review
Goal: Get a comprehensive code review before committing.
- Run
/code-reviewwith your changes staged - Claude reviews for quality, security, patterns, and test coverage
- Address any findings
- Run
/verifyto confirm all checks pass
Set Up Multi-Agent Orchestration
Goal: Run parallel agent sessions across git worktrees.
- Run
/orchestrateto launch the orchestration template - Define worker tasks and agent types
- Each agent works in an isolated worktree
- Use
node scripts/orchestration-status.jsto monitor progress - Merge completed worktrees back to the main branch
Verify: Run node scripts/orchestration-status.js — all workers should show completed status.
Add a New Skill
Goal: Create a custom skill for your domain.
- Create a directory
skills/your-skill-name/ - Add a
SKILL.mdfile with YAML frontmatter:
---
name: your-skill-name
description: Brief description shown in skill list
---
# Your Skill Title
Brief overview.
## Core Concepts
Key patterns and guidelines.
## Code Examples
\`\`\`language
// Practical examples
\`\`\`
## Best Practices
- Actionable guideline 1
- Actionable guideline 2
- Run
npm run catalog:syncto update the catalog
Configure MCP Servers
Goal: Set up external tool integrations.
- Open
mcp-configs/mcp-servers.jsonfor the full catalog - Copy desired server configurations to
~/.claude.json - Replace
YOUR_*_HEREplaceholders with actual API keys - Restart Claude Code to activate the new servers
Common MCP servers:
| Server | Purpose | API Key Required |
|---|---|---|
github |
PR, issue, and repo operations | Yes (GitHub PAT) |
context7 |
Live documentation lookup | No |
exa-web-search |
Web research | Yes (Exa API key) |
playwright |
Browser automation and E2E testing | No |
memory |
Persistent memory across sessions | No |
sequential-thinking |
Chain-of-thought reasoning | No |
Write Custom Hooks
Goal: Add project-specific automation to Claude Code.
Hooks are shell commands that receive JSON via stdin and output JSON to stdout.
// my-hook.js
let data = '';
process.stdin.on('data', chunk => data += chunk);
process.stdin.on('end', () => {
const input = JSON.parse(data);
const toolName = input.tool_name;
const toolInput = input.tool_input;
// Warn (non-blocking): write to stderr
console.error('[Hook] Warning message shown to Claude');
// Block (PreToolUse only): exit with code 2
// process.exit(2);
// Always output the original data to stdout
console.log(data);
});
Exit codes: 0 = success (continue), 2 = block tool call (PreToolUse only), other non-zero = error (logged, not blocked).
Use the Python GUI Dashboard
Goal: Browse ECC components visually.
python3 ecc_dashboard.py
The TkInter-based dashboard provides tabs for browsing agents, skills, commands, and rules with search and filtering capabilities.
Tip
The dashboard supports light and dark themes. Switch themes in the Settings tab.
Use the ECC 2.0 TUI
Goal: Use the Rust-based terminal dashboard for session management.
# Build the TUI (requires Rust toolchain)
cd ecc2
cargo build --release
# Launch the dashboard
./target/release/ecc-tui dashboard
The TUI provides real-time session monitoring, worktree management, merge queues, and coordination status. See the Admin Guide for the full ecc CLI reference.
6. Troubleshooting
Diagnostic Decision Tree
ECC not working?
├── Installation issues → Check Node.js version (>=18), run `node scripts/doctor.js`
├── Hooks not firing → Check `ECC_HOOK_PROFILE`, verify hooks.json is loaded
├── Skills not loading → Verify skill directory structure, check SKILL.md frontmatter
├── MCP servers offline → Check `ECC_MCP_HEALTH_STATE_PATH`, verify API keys
├── Windows-specific → Check path separators, ENOENT errors for spawn
└── Performance → Reduce enabled MCP servers (<10), check context window usage
Error: Failed to load hooks from hooks.json
Cause: Claude Code 2.1.x changed the hook schema to expect string commands, but ECC previously used argv arrays.
Solution:
- Update ECC to the latest version:
npx ecc typescript - If the issue persists, check that your
hooks.jsonuses string"command"fields, not arrays
Prevention: Keep ECC updated. The hooks system validates against schemas/hooks.schema.json at CI time.
Error: ENOENT when spawning claude or npx on Windows
Cause: Windows cannot find the claude or npx binary in the system PATH, especially when spawned from hooks (GitHub issue #1469).
Solution:
- Ensure Claude Code and Node.js are in your system PATH
- For
claw.jsspecifically, ensure theclaudebinary is accessible from the hook execution context - Set the
BASHenvironment variable if hooks need a specific shell
Prevention: Run node scripts/doctor.js to verify all required binaries are discoverable.
Error: GateGuard blocks all tool calls in auto mode
Cause: The gateguard-fact-force hook can enter a state where it blocks all operations, including the commands needed to disable it (GitHub issue #1427).
Solution:
- Set
ECC_DISABLED_HOOKS="pre:edit-write:gateguard-fact-force"before starting Claude Code - On Windows, if
fs.renameSyncfails withEEXIST, update ECC to get the Windows-specific fix (GitHub issue #1435) - Clear the GateGuard state: delete files in the directory specified by
GATEGUARD_STATE_DIR
Prevention: Use ECC_HOOK_PROFILE=minimal for autonomous/batch operations.
Caution
The GateGuard race condition (GitHub issue #1441) in the session state read-modify-write path can cause inconsistent state under concurrent access. Avoid running multiple Claude Code sessions with GateGuard enabled against the same state directory.
Error: PreToolUse+PostToolUse fork storm causes EAGAIN posix_spawn (macOS)
Cause: Dense Bash tool calls trigger too many hook processes simultaneously, exhausting system resources (GitHub issue #1423).
Solution:
- Reduce the number of synchronous hooks — mark non-critical hooks as
"async": true - Increase the process limit on macOS:
ulimit -u 2048 - Update ECC for consolidated dispatcher hooks that reduce fork count
Prevention: Use the consolidated pre-bash-dispatcher.js and post-bash-dispatcher.js (default in recent versions) instead of individual hook scripts.
Error: ECC breaks Claude Desktop / slash menu
Cause: getSupportedCommands validation failure when ECC is installed as a plugin (GitHub issue #1476).
Solution: This is a known open issue. As a workaround, install ECC directly via install.sh rather than as a Claude Desktop plugin.
Error: MCP health-check blocks all MCP calls on Windows
Cause: The MCP health-check hook spawns npx which fails with ENOENT on Windows (GitHub issue #1455).
Solution:
- Disable the MCP health check:
ECC_DISABLED_HOOKS="pre:mcp-health-check" - Or set
ECC_MCP_HEALTH_FAIL_OPEN=1to allow MCP calls even when health checks fail
Dashboard fails to launch on Windows
Cause: Terminal launch paths contain spaces or Windows-specific path issues (GitHub issue #1472).
Solution: Run the dashboard from a path without spaces, or update to the latest version which sanitizes cmd.exe command strings.
Warning
Several Windows-specific issues exist in hooks that use
spawn. If you encounterENOENTerrors on Windows, check whether the hook is trying to spawn a command that requires the full path on Windows. SettingECC_HOOK_PROFILE=minimalis a reliable workaround.
7. FAQ
Q: What is the difference between rules and skills?
Rules define broad standards and conventions (e.g., "80% test coverage", "no hardcoded secrets"). Skills provide detailed, actionable reference material for specific tasks (e.g., python-patterns shows you how to implement Python design patterns). Rules say what; skills say how.
Q: Do I need to install all skills?
No. Install only the components relevant to your technology stack. Use the component-based installer (--include lang:typescript --include capability:security) to pick exactly what you need.
Q: Can I use ECC with Cursor, Codex, or other AI tools?
Yes. ECC supports multiple IDE targets. Use npx ecc --target cursor typescript for Cursor, --target codex for Codex, and so on. Not all features are available on all targets — hooks and MCP configurations are Claude Code-specific.
Q: How do I disable a hook that is too aggressive?
Set ECC_DISABLED_HOOKS to a comma-separated list of hook IDs. For example: ECC_DISABLED_HOOKS="pre:edit-write:gateguard-fact-force,pre:bash:tmux-reminder". You can find hook IDs in hooks/hooks.json under the "id" field.
Q: How do I add support for a new programming language?
Create a rules/<language>/ directory with files that extend the common rules (coding-style.md, testing.md, patterns.md, hooks.md, security.md). Each file should start with > This file extends [common/xxx.md](../common/xxx.md) with <language>-specific content. Then create relevant skills under skills/.
Q: What is ECC 2.0 (ecc2)?
ECC 2.0 is a Rust-based TUI (Terminal User Interface) that acts as an agentic IDE control plane. It manages multi-agent sessions, git worktrees, merge queues, task delegation, and coordination — all from a terminal dashboard. It is a separate binary (ecc-tui) built with Rust and requires cargo build to compile. See the Admin Guide for the complete CLI reference.
Q: How do I update ECC?
Run npx ecc typescript again (or your chosen languages). The installer merges updates non-destructively. For git-cloned installs, git pull && ./install.sh typescript.
Q: What happens if I run multiple Claude Code sessions with the same hooks?
Most hooks are stateless and safe for concurrent use. However, GateGuard uses file-based state that has a known race condition under concurrent access (GitHub issue #1441). Use ECC_HOOK_PROFILE=minimal for parallel autonomous sessions.
Q: How do I contribute a new skill or command?
Create a skill directory with SKILL.md, or add a command markdown file under commands/. Run npm run catalog:sync to update the catalog. Run npm test to validate all manifests, schemas, and file references. Submit a PR to the repository.
Q: What is the plugin-hook-bootstrap.js that wraps all hooks?
Every hook command is wrapped by plugin-hook-bootstrap.js, which resolves the ECC installation root (whether installed globally, as a plugin, or from source). This bootstrap layer ensures hooks can locate their helper scripts regardless of installation method. You do not need to interact with it directly.