Everything Claude Code, an agent configuration set
Everything Claude Code is a large collection of ready made configuration for coding agents: specialised roles, skills, hooks, commands, and rules. It grew out of one person's practice, someone who spent well over a year building products on these tools and then published the whole set under MIT. It works not only with Claude Code but with other agents reading the same format.
Who built it and why it took off
I will start with a correction, because a good deal of confusion circulates on this point and an earlier version of this text repeated it. This is not Anthropic's official repository. The address under the anthropics organisation does not exist and returns an error. The author is Affaan Mustafa, a developer based in San Francisco, and the project reached GitHub in January 2026 after winning a hackathon Anthropic ran with the Forum Ventures fund.
The scale of adoption, on the other hand, is real and unusual: the repository carries close to two hundred and forty thousand stars and over thirty six thousand forks, with changes landing daily. The directory name has since been shortened to ECC, so older links redirect.
That distinction matters practically and is not pedantry about naming. Vendor material and community material follow different rules: the first aligns with how the tool is meant to work and is maintained alongside it, the second reflects one person's way of working and can drift after any significant update. Both can be valuable, but they are treated differently.
What it contains and how to read it
The set covers close to seventy specialised agent roles and close to three hundred skills, meaning recorded procedures for carrying out specific tasks. Hooks triggered by events, close to a hundred ready made commands, and rules describing how to work round it out.
It is worth approaching this as somebody else's editor configuration rather than as a library. An experienced person's editor configuration is a mine of ideas and simultaneously something you cannot adopt wholesale, since it reflects that person's habits and projects rather than yours. The greatest value here lies in reading how somebody solved a problem you also have, not in installing everything at once.
The format the skills are written in has, incidentally, been an open standard since December 2025, covered more fully in Agent Skills. That is why the same directory is read by tools from different vendors, and why the set advertises itself as working beyond one ecosystem.
What to watch for
The set's size is both its strength and its main risk, so three things deserve stating plainly.
The first is context cost. Close to three hundred skills means close to three hundred descriptions the agent loads at startup to know which one to reach for. Progressive disclosure means full contents load only on a match, but the descriptions themselves cost something, and with many similar entries the risk grows that the agent picks the wrong one.
The second is hooks and permissions. A component executing commands automatically or loosening the scope of what the agent does without asking is convenient and simultaneously the riskiest part of any such configuration. Read those files before running them, exactly as you read an install script from an unknown source.
The third is fit with your work. The set grew around specific projects and specific habits. A rule requiring research before every change makes sense for exploratory work and is a nuisance when fixing a typo in copy. Review the rules against your team's rhythm before concluding the tool behaves badly.
There is a fourth point, less obvious and worth attention over a longer horizon. A repository receiving changes daily moves faster than you can review diffs. Copying the set today and updating it in three months means accepting hundreds of changes nobody on your side has read. It is wiser to treat the download as taking a starting point once and then developing your own version, returning to the source for ideas rather than for updates.
How this works with a team
Agent configuration stops being a private matter the moment two people work on a project, and a few things are worth settling before it turns into a mess.
The basic question is what is shared and what is personal, and it applies equally to configuration taken from catalogues such as Claude Code Templates. Knowledge about the project, meaning run commands, boundaries, and conventions, belongs in the repository and should be identical for everyone, otherwise the agent behaves differently for each person. Preferences about working style, whether somebody prefers small steps or larger batches, can stay in personal settings.
The second matter is review. Since configuration shapes what the agent does in the repository, changes to it deserve the same attention as changes to code. A new hook running a command on every file write changes the whole team's behaviour rather than being a minor config tweak.
The third is settling disagreements. When two people hold different views on how the agent should work, the configuration becomes the battleground, and that is a poor way to conduct the argument. Better to agree on a handful of rules everyone accepts and leave the rest to individuals than to encode a detailed process half the team rejects.
The fourth is tidiness when people leave. A rule set written by somebody no longer on the project is usually understood by nobody and touched by nobody. A short comment beside each unusual rule, saying why it exists, spares you that situation.
GitHub
Repository: github.com/affaan-m/everything-claude-code
Why reach for it at all
The value of this set comes from something documentation cannot convey: decisions made by somebody who worked with these tools daily for well over a year.
Vendor documentation describes what can be configured. It does not say which of those possibilities actually change anything and which are curiosities. A set born of practice answers that second question, because everything in it passed the test of daily use and survived.
The second value is ready phrasing. Writing an agent role description or a procedure so the model actually follows it takes a feel that arrives after dozens of attempts. Reading a dozen examples from somebody else shortens that path more than any guide to prompt writing.
The third is showing the scale. Many people configure an agent with a single instructions file and do not know it can be decomposed into roles, procedures, and conditionally triggered rules. Simply reviewing this repository's structure is often the moment it becomes clear what else can be organised, and that is usually worth more than any single skill taken from it directly.
One caveat applies to every large collection of this kind. The rules and procedures are written for the author's stack and way of working. If your project runs on Next.js and an example describes work with a completely different tool, the value is the pattern rather than the content, and rewriting it for your setup is part of the work rather than a step to skip.
Repository structure
Directory organization
ECC/ # former name: everything-claude-code
βββ agents/ # agent roles, close to seventy directories
βββ skills/ # skills, close to three hundred directories
βββ commands/ # ready made commands, close to a hundred
βββ hooks/ # hooks triggered by events
βββ rules/ # rules describing how to work
βββ workflows/ # composed workflows
βββ plugins/ # plugin bundles
βββ scaffolds/ # project scaffolds
βββ mcp-configs/ # MCP server configurations
βββ docs/ # documentation
βββ examples/ # usage examples
βββ integrations/ # integrations with external tools
βββ research/ # the author's research notes
βββ .claude/ # configuration for Claude Code
βββ .cursor/ .codex/ .gemini/ .zed/ # the same for other tools
βββ AGENTS.md CLAUDE.md RULES.md # rules the agent reads
βββ LICENSE # MITGuides - getting started
Quick start with Claude Code
# Install Claude Code
# macOS / Linux
curl -fsSL https://claude.ai/install.sh | sh
# or via npm
npm install -g @anthropic-ai/claude-code
# Verify installation
claude --version
# First session
claude
# With a specific task
claude "Create an email validation function in TypeScript"Basic environment configuration
# Sign in to the Anthropic account
claude auth login
# Or use your own API key
export ANTHROPIC_API_KEY="your-api-key-here"
# Settings live in ~/.claude/settings.json (global)
# or in .claude/settings.json inside the repository (shared with the team)
mkdir -p ~/.claude
cat > ~/.claude/settings.json << 'EOF'
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"model": "claude-sonnet-5",
"permissions": {
"allow": ["Bash(npm run lint)", "Bash(npm run test *)"],
"deny": ["Read(./.env)", "Read(./secrets/**)"]
},
"cleanupPeriodDays": 20
}
EOFConfiguring CLAUDE.md
The CLAUDE.md file is a key element of effective work with Claude Code. Placed in the project root directory, it defines the context and rules for the AI.
# Project: My Awesome App
## Tech Stack
- Next.js 15 (App Router)
- TypeScript 5.x (strict mode)
- Tailwind CSS 3.x
- Prisma ORM + PostgreSQL
- NextAuth.js for authentication
## Project Structuresrc/ βββ app/ # Next.js App Router pages βββ components/ # Reusable UI components βββ lib/ # Utilities and helpers βββ hooks/ # Custom React hooks βββ types/ # TypeScript type definitions βββ styles/ # Global styles
## Coding Conventions
- Use functional components with hooks
- Prefer server components where possible
- Keep components under 150 lines
- Use TypeScript strict mode
- Follow Prettier formatting
## Important Files
- `prisma/schema.prisma` - Database schema
- `src/lib/auth.ts` - Authentication configuration
- `src/components/ui/` - Shared UI components
## Commands
- `npm run dev` - Start development server
- `npm run build` - Production build
- `npm run test` - Run tests
- `npm run lint` - Check for linting errorsBest practices for CLAUDE.md
# CLAUDE.md Best Practices
## 1. Be specific about the tech stack
Don't: "We use React"
Do: "Next.js 15 App Router with TypeScript 5.x in strict mode"
## 2. Describe the directory structure
Claude needs to understand the project organization
to effectively navigate and modify files.
## 3. Define coding conventions
- Naming style (camelCase, PascalCase)
- Preferred patterns (hooks vs classes)
- Formatting (Prettier, ESLint rules)
## 4. List key files
Point Claude to the most important files it should
know before making changes.
## 5. Document commands
List all npm scripts with descriptions of what they do.
## 6. Specify constraints
- Maximum file length
- Testing requirements
- Import rules
## 7. Update regularly
CLAUDE.md should evolve along with the project.Project examples
Next.js app with Claude Code
# Project initialization
claude "Create a new Next.js 15 project with:
- TypeScript
- Tailwind CSS
- Prisma + SQLite
- NextAuth with GitHub OAuth
- Basic directory structure"
# Claude will execute:
# 1. npx create-next-app@latest
# 2. Install dependencies
# 3. Configure Prisma
# 4. Add NextAuth
# 5. Create CLAUDE.mdPython API with Claude Code
# Create a FastAPI application
claude "Create a REST API in FastAPI with:
- CRUD endpoints for users
- SQLAlchemy + PostgreSQL
- JWT authentication
- Pydantic validation
- Swagger docs"Example workflow
# Session 1: Project setup
$ claude
You: Initialize an e-commerce project with Next.js
# Session 2: Add functionality
$ claude --continue
You: Add a shopping cart with localStorage persistence
# Session 3: Payment integration
$ claude --continue
You: Integrate Stripe Checkout
# Session 4: Deployment
$ claude --continue
You: Configure deployment on Vercel with a production environmentIDE integrations
VS Code integration
// .vscode/settings.json
{
"terminal.integrated.profiles.osx": {
"claude": {
"path": "/usr/local/bin/claude",
"args": ["--interactive"]
}
},
"terminal.integrated.defaultProfile.osx": "claude"
}
// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Claude: Review Code",
"type": "shell",
"command": "claude",
"args": ["Review the file ${file}"],
"presentation": {
"reveal": "always",
"panel": "new"
}
},
{
"label": "Claude: Add Tests",
"type": "shell",
"command": "claude",
"args": ["Add unit tests for ${file}"],
"presentation": {
"reveal": "always"
}
},
{
"label": "Claude: Fix Errors",
"type": "shell",
"command": "claude",
"args": ["Fix TypeScript errors in ${file}"],
"presentation": {
"reveal": "always"
}
}
]
}
// Keybindings
// keybindings.json
[
{
"key": "ctrl+shift+c",
"command": "workbench.action.tasks.runTask",
"args": "Claude: Review Code"
}
]Cursor integration
# Cursor picks its model in the editor's own settings
# and does not read Claude Code configuration.
# Run Claude Code from Cursor's built-in terminal and
# attach it to the editor with the --ide flag:
claude --ide
# The same connection is available through the /ide
# command inside a running session.Neovim setup
# Anthropic ships no Neovim plugin - the repository
# anthropics/claude.nvim does not exist and returns a 404.
# What remains is a terminal beside the editor.
# A new session in the project directory
claude
# Back to the last session
claude --continue
# Pick a session from the list
claude --resumeTerminal workflow
# Aliases for .bashrc / .zshrc
alias cc="claude"
alias ccr="claude 'Do a code review of the last commit'"
alias cct="claude 'Add tests for changed files'"
alias ccf="claude 'Fix ESLint errors in the project'"
alias ccd="claude 'Explain what this code does'"
# Function for piping errors
function claude-fix() {
$@ 2>&1 | claude "Analyze these errors and suggest a solution"
}
# Usage:
# claude-fix npm run build
# claude-fix pytest tests/
# Git hooks with Claude
# .git/hooks/pre-commit
#!/bin/bash
changed_files=$(git diff --cached --name-only --diff-filter=ACM)
if [ -n "$changed_files" ]; then
echo "$changed_files" | claude "Check if these files are ready to commit.
Pay attention to:
- Potential bugs
- Missing tests
- Security issues"
fiCI/CD integration
GitHub Actions
# .github/workflows/claude-review.yml
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Run Code Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
# Get the list of changed files
changed_files=$(git diff --name-only origin/main...HEAD)
# Run review
for file in $changed_files; do
if [[ -f "$file" ]]; then
echo "Reviewing $file..."
claude "Do a code review of the file $file.
Check: security, performance, code quality.
Return the result as markdown." >> review.md
fi
done
- name: Post Review Comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review.md', 'utf8');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## π€ Claude Code Review\n\n${review}`
});GitLab CI
# .gitlab-ci.yml
stages:
- review
- test
claude-review:
stage: review
image: node:20
before_script:
- npm install -g @anthropic-ai/claude-code
script:
- |
export ANTHROPIC_API_KEY=$CLAUDE_API_KEY
git diff origin/main...HEAD --name-only | while read file; do
if [ -f "$file" ]; then
claude "Review $file for security and code quality" >> review.txt
fi
done
artifacts:
paths:
- review.txt
expire_in: 1 week
only:
- merge_requestsCollection of effective prompts
Coding prompts
# Create a component with types
claude "Create a React component <UserCard> with:
- Props: user (id, name, email, avatar, role)
- TypeScript interfaces
- Tailwind CSS styling
- Loading and error states
- Accessibility (ARIA labels)"
# Implement a hook
claude "Create a custom hook useDebounce with:
- Generic type support
- Configurable delay
- Cleanup on unmount
- Tests in Jest"
# API endpoint
claude "Create an API endpoint POST /api/users with:
- Zod validation for the body
- Error handling with proper status codes
- TypeScript types
- Rate limiting"Debugging prompts
# Error analysis
claude "Error: TypeError: Cannot read property 'map' of undefined
File: components/UserList.tsx:25
Context: The component renders a list of users from the API
Find the cause and suggest a fix"
# Performance debugging
claude "The component re-renders too frequently.
Analyze the code and find:
- Unnecessary re-renders
- Missing memoizations
- Problems with useEffect dependencies"
# Memory leak
claude "A memory leak was detected in the Dashboard component.
Analyze:
- Event listeners
- Subscriptions
- Async operations
- Cleanup functions"Refactoring prompts
# Refactoring to hooks
claude "Convert this class component to a functional one with hooks.
Preserve:
- All functionality
- Lifecycle behavior
- State management
Add TypeScript types"
# Extract component
claude "Extract the form logic from this component into:
- A custom hook useContactForm
- A ContactFormFields component
- A validation schema with Zod"
# SOLID principles
claude "Refactor this code following SOLID:
- Single Responsibility - separate concerns
- Open/Closed - use abstractions
- Dependency Inversion - inject dependencies"Documentation prompts
# JSDoc
claude "Add complete JSDoc comments to all
exported functions in src/utils/.
Include: @param, @returns, @throws, @example"
# README
claude "Generate a README.md for this project with:
- Project description
- Tech stack
- Installation
- Usage
- API reference
- Contributing guidelines"
# API docs
claude "Create OpenAPI/Swagger documentation for
all endpoints in src/app/api/"Tips & tricks from the community
Effective context management
# Pass only relevant files
claude "In the context of the files:
- src/components/Auth/LoginForm.tsx
- src/hooks/useAuth.ts
- src/lib/auth.ts
Add 2FA support"
# Use context from git
git diff HEAD~3 | claude "Summarize these changes and check
for breaking changes"
# Pass the project structure
tree -I node_modules -L 3 | claude "Given this structure,
suggest where to add a new notifications module"Workflow optimization
# Session handling
claude --continue # continue the last one
claude --resume # pick a session from the list
claude --fork-session # branch off a chosen session
# Unattended run with a turn and budget cap
claude -p --max-turns 20 --max-budget-usd 5 "Your task..."
# Batch operations
find src -name "*.tsx" -exec claude -p "Add data-testid
to all interactive elements in {}" \;
# Parallel execution
parallel claude -p ::: \
"Add tests for UserService" \
"Add tests for ProductService" \
"Add tests for OrderService"Debugging with Claude
# Stack trace analysis
cat error.log | claude "Analyze this stack trace and:
1. Identify the root cause
2. Suggest a fix
3. Add error handling to prevent this from happening again"
# Network debugging
curl -v https://api.example.com/endpoint 2>&1 | claude \
"Analyze this request/response.
Why am I getting a 403?"
# Performance profiling
node --prof app.js
node --prof-process isolate-*.log | claude \
"Analyze this profile. Where are the bottlenecks?"Case studies
Case study 1: TypeScript migration
# Project: Migrating 50k lines of JavaScript to TypeScript
# Step 1: Analysis
claude "Analyze the project and create a migration plan
to TypeScript. Identify:
- Files to migrate (starting with the simplest)
- Shared types to extract
- Potential issues"
# Step 2: Setup
claude "Configure TypeScript with:
- Strict mode
- Path aliases
- ESLint with typescript-eslint"
# Step 3: Iterative migration
for file in $(find src -name "*.js" | head -10); do
claude "Convert $file to TypeScript.
Add full types, do not use any."
done
# Result: 2 weeks instead of the estimated 2 monthsCase study 2: API redesign
# Project: Redesigning REST API to GraphQL
# Analyze existing endpoints
claude "Analyze all endpoints in src/api/
and create a GraphQL schema with:
- Types for all entities
- Queries and Mutations
- Resolvers structure"
# Generate the schema
claude "Based on the analysis, generate:
- schema.graphql
- TypeScript types with graphql-codegen
- Basic resolvers"
# Client migration
claude "Create a migration guide for API clients
showing the REST β GraphQL mapping"Troubleshooting
Common errors and solutions
# Context overflowing
# Solution: /compact or /clear inside the running session
# Error: "Rate limit exceeded"
# Solution: a fallback model for the overloaded stretch
claude --fallback-model claude-haiku-4-5
# A file outside the session directory
# Solution: add the directory to the session
claude --add-dir ../shared-types
# Doubts about sign-in or the installation itself
claude auth status
claude doctorOptimization for large projects
{
"permissions": {
"deny": [
"Read(./dist/**)",
"Read(./build/**)",
"Read(./coverage/**)",
"Read(./.env)"
],
"additionalDirectories": ["../shared-types"]
}
}The tool reads no .claudeignore file, so exclusions are written as permission rules in settings.json. In a monorepo you start the session inside the package directory and add the remaining paths through additionalDirectories or the --add-dir flag.
everything-claude-code vs other resources
| Aspect | everything-claude-code | Official documentation | Blogs |
|---|---|---|---|
| Scope | ~68 roles, ~285 skills, ~94 commands | Full description of the tool | Scattered |
| Source | One person's practice | The tool's vendor | Various authors |
| Licence | MIT | Vendor material | Depends on the author |
| Pace of change | Changes daily | Alongside tool releases | Irregular |
| Fit with the tool | Can drift after an update | Aligned by definition | Often stale |
| Reach beyond Claude Code | Format read by other agents too | This tool only | Varies |
The project publishes no public roadmap, so the only reliable indicator of direction is the repository's change history.
Using it sensibly
An approach that works better than installing everything has three steps and takes an afternoon rather than five minutes.
Start by reading rather than installing. Clone the repository and go through the skills directory looking for three or four matching tasks you actually perform every week. Across close to three hundred entries most concern work you do not do, and their presence only makes the agent's choice harder.
Then move the selected entries into your own repository and rewrite them for your setup. Command names, directory paths, and conventions will differ from the author's, and a skill referring to a script that does not exist is worse than none, because the agent will try to run it. This step is what separates a useful configuration from a copied one.
Finally add what no external set contains: knowledge of your project. Literal build and test commands, directories that must not be touched, conventions invisible in the code. Those three things usually deliver more improvement than every ready made skill combined, because the model knows general patterns and does not know your repository.
It is also worth settling where this configuration lives. Keeping it in the project repository rather than in user settings means changes pass through code review and the whole team works from the same set instead of each from their own.
FAQ
Is Everything Claude Code an official Anthropic project?
No. It is a community project by Affaan Mustafa, published in January 2026 after winning a hackathon Anthropic ran with the Forum Ventures fund. The address under the anthropics organisation does not exist, despite claims to the contrary circulating online.
Can I use it commercially?
Yes, the set is MIT licensed, so you may use and modify it at no cost, including in commercial projects.
Does it only work with Claude Code?
No. The skills are written in an open format other agent tools also read, so a substantial part of the set works beyond one ecosystem. Hooks and permission settings are more closely tied to a particular tool.
Is it worth installing all of it?
Usually not. A large number of similar skills makes it harder for the agent to pick the right one and occupies context. Better to select a few matching your work and rewrite them for your own repository.
Is it safe?
Plain text instructions are harmless, but hooks execute commands automatically and permission settings can widen the scope of what the agent does without asking. Read those files before running them, just as you read an install script from an unknown source.
The code and full contents of the set live in the project repository, and the skill format itself is described in the Agent Skills specification.