My personal Claude Code configuration, forked from affaan-m/everything-claude-code.
- Language-agnostic structure - Universal configs at user-level, language-specific templates for projects
- Auto-detection - SessionStart hook automatically detects project type and injects relevant rules
- Multi-language support - TypeScript and Python templates included
- Universal hooks - Single hooks file handles all languages with smart file extension matching
claude-code-configs/
│
├── user-level/ # Universal configs → symlink to ~/.claude/
│ ├── agents/ # Language-agnostic agents
│ ├── rules/ # Universal principles (no code examples)
│ ├── commands/ # Slash commands
│ ├── hooks/ # Universal + all language hooks
│ │ ├── hooks.json
│ │ ├── auto-detect/ # Project language detection
│ │ ├── memory-persistence/
│ │ └── strategic-compact/
│ ├── skills/
│ └── contexts/
│
├── project-templates/ # Copy to project/.claude/ as needed
│ ├── typescript/ # TypeScript/JavaScript projects
│ │ ├── rules/ # Zod, React patterns, TS examples
│ │ ├── agents/ # Jest/Vitest, tsc-specific
│ │ ├── hooks/ # (Optional - already in universal)
│ │ ├── skills/
│ │ └── CLAUDE.md
│ │
│ └── python/ # Python projects
│ ├── rules/ # Pydantic, FastAPI, type hints
│ ├── agents/ # pytest, mypy-specific
│ ├── hooks/ # (Optional - already in universal)
│ ├── skills/
│ └── CLAUDE.md
│
├── agents/ # Original agents (from upstream)
├── rules/ # Original rules (from upstream)
├── commands/ # Original commands (from upstream)
├── skills/ # Original skills (from upstream)
├── hooks/ # Original hooks (from upstream)
├── mcp-configs/ # MCP server configurations
└── examples/ # Example configurations
cd /path/to/claude-code-configs
ln -sf "$(pwd)/user-level/agents" ~/.claude/agents
ln -sf "$(pwd)/user-level/rules" ~/.claude/rules
ln -sf "$(pwd)/user-level/commands" ~/.claude/commands
ln -sf "$(pwd)/user-level/skills" ~/.claude/skills
ln -sf "$(pwd)/user-level/contexts" ~/.claude/contexts
ln -sf "$(pwd)/user-level/hooks" ~/.claude/hooksThe auto-detection hook will:
- Detect project type on session start (via
package.json,pyproject.toml, etc.) - Inject language-specific rules into context
- Apply appropriate hooks (Prettier for TS, ruff for Python, etc.)
If no project files exist yet:
# Option A: Use the init command
/init typescript
# or
/init python
# Option B: Create a quick override file
echo "typescript" > .claude-langOn every session, detect-language.sh runs and:
- Checks for monorepo structure first
- Falls back to single-project detection
- Checks for
.claude-langoverride file - Scans for project markers:
package.json/tsconfig.json→ TypeScriptpyproject.toml/requirements.txt→ Pythongo.mod→ GoCargo.toml→ Rust
- Outputs language-specific rules as context
Automatically detects common monorepo structures:
myproject/
├── backend/ # Python (FastAPI)
│ └── pyproject.toml
├── frontend/ # TypeScript (Next.js)
│ └── package.json
└── packages/
├── ui/ # TypeScript
└── shared/ # TypeScript
Detected patterns:
backend/,server/,api/,services/*frontend/,client/,web/packages/*(pnpm/yarn workspaces)apps/*(Turborepo)services/*(microservices)
What you'll see on SessionStart:
# ═══════════════════════════════════════════════════════════
# MONOREPO DETECTED
# ═══════════════════════════════════════════════════════════
## Project Structure
| Path | Language | Type |
|------|----------|------|
| `backend/` | python | backend |
| `frontend/` | typescript | frontend |
## Working With This Monorepo
- Rules are loaded based on file extensions (works across all subdirs)
- Hooks apply automatically: `.ts`→Prettier/tsc, `.py`→ruff/mypy
- For subdirectory-specific overrides, create `<subdir>/.claude-lang`
Per-subdirectory overrides:
# Override detection for a specific subdirectory
echo "python" > backend/.claude-lang
echo "typescript" > frontend/.claude-langThe hooks file includes all languages with smart matchers:
| Hook | Files | Action |
|---|---|---|
| Prettier | *.ts, *.tsx, *.js, *.jsx |
Auto-format |
| tsc | *.ts, *.tsx |
Type check |
| console.log warning | *.ts, *.tsx, *.js, *.jsx |
Warn |
| ruff | *.py |
Format + lint |
| mypy | *.py |
Type check |
| print() warning | *.py |
Warn |
For project-specific overrides, copy the appropriate template:
# TypeScript project
cp -r project-templates/typescript/* your-project/.claude/
# Python project
cp -r project-templates/python/* your-project/.claude/This is optional - the auto-detection and universal hooks handle most cases.
The Unity template includes MCP servers for 3D asset generation. Here's how to set them up:
Generates 3D models from text or images using Meshy AI.
-
Get an API key from meshy.ai/settings/api
-
Set the environment variable:
# Add to ~/.zshrc or ~/.bashrc export MESHY_API_KEY="your_api_key_here"
-
The MCP config (already in Unity template):
{ "meshy-ai": { "command": "npx", "args": ["-y", "meshy-ai-mcp-server"], "env": { "MESHY_API_KEY": "${MESHY_API_KEY}" } } } -
Restart Claude Code to load the new MCP
Source: pasie15/meshy-ai-mcp-server
Enables Claude to control Blender for 3D modeling.
Prerequisites:
Setup:
-
Download the addon from blender-mcp releases
- Get
addon.pyfrom the latest release
- Get
-
Install in Blender:
- Open Blender → Edit → Preferences → Add-ons
- Click "Install..." → Select the downloaded
addon.py - Enable the checkbox next to "Blender MCP"
-
Start the server:
- In Blender's sidebar (press
N), find the "BlenderMCP" tab - Click "Start MCP Server"
- In Blender's sidebar (press
-
The MCP config (already in Unity template):
{ "blender": { "command": "uvx", "args": ["blender-mcp"] } } -
Restart Claude Code with Blender's MCP server running
Source: ahujasid/blender-mcp
Based on Everything Claude Code by @affaanmustafa.
Read the original guides:
MIT