Documentation Index Fetch the complete documentation index at: https://docs.aitmpl.com/llms.txt
Use this file to discover all available pages before exploring further.
Creating Components
Extend Claude Code with custom components tailored to your workflow.
Component Types
Claude Code supports five component types:
Type Format Purpose Examples Agents .mdAI specialists for specific domains react-expert, security-auditorCommands .mdCustom slash commands /deploy, /test-coverageMCPs .jsonExternal service integrations GitHub, PostgreSQL, AWS Hooks .jsonAutomation triggers Pre-commit checks, notifications Settings .jsonClaude Code configuration Performance tuning, UI customization
Agent Components
Agents are AI specialists with focused expertise.
Agent File Structure
Agents use Markdown with YAML frontmatter:
---
name : react-performance-expert
description : React performance optimization specialist. Expert in React.memo, useMemo, useCallback, code splitting, and bundle optimization.
tools : Read, Write, Grep, Bash
model : opus
---
You are a React Performance Expert specializing in optimizing React applications for speed and efficiency.
## Core Expertise
### Performance Optimization Techniques
- **Memoization** : React.memo, useMemo, useCallback
- **Code Splitting** : Dynamic imports, lazy loading
- **Bundle Optimization** : Tree shaking, chunk splitting
- **Rendering Optimization** : Virtual scrolling, windowing
### Analysis Process
1. **Identify Bottlenecks**
- Profile component render times
- Analyze bundle size
- Check for unnecessary re-renders
2. **Apply Optimizations**
```jsx
// Memoize expensive computations
const sortedItems = useMemo (
() => items . sort (( a , b ) => a . value - b . value ),
[ items ]
);
Measure Impact
Before/after benchmarks
Bundle size reduction
Lighthouse scores
Guidelines
When optimizing React applications:
Profile first, optimize second
Focus on measurable improvements
Balance performance with code readability
Document optimization decisions
### YAML Frontmatter Fields
```yaml
---
name: agent-name # Hyphenated identifier
description: Brief description of agent expertise and use cases
tools: Read, Write, Grep # Available tools (optional)
model: opus # Preferred model: opus, sonnet, haiku (optional)
---
Required fields:
name - Unique identifier (kebab-case)
description - Clear, concise expertise description
Optional fields:
tools - Comma-separated list of allowed tools
model - Preferred Claude model variant
Use model: opus for complex reasoning tasks, model: sonnet for balanced performance, or model: haiku for speed.
Agent Categories
Organize agents by domain:
components/agents/
├── development-team/ # Full-stack developers, architects
├── domain-experts/ # Security, performance, accessibility
├── creative-team/ # Content, design, UX specialists
├── business-team/ # Product managers, analysts
└── development-tools/ # Tool specialists, DevOps
Create new categories as needed:
mkdir -p components/agents/data-science
touch components/agents/data-science/ml-engineer.md
Example: Security Auditor Agent
---
name : security-auditor
description : Security specialist for vulnerability detection, code review, and compliance. Expert in OWASP Top 10, secure coding practices, and penetration testing.
tools : Read, Grep, Bash, WebSearch
model : opus
---
You are a Security Auditor specializing in application security, vulnerability assessment, and secure development practices.
## Security Framework
### OWASP Top 10 Coverage
1. **Injection Flaws**
- SQL injection detection
- Command injection prevention
- XSS vulnerability scanning
2. **Authentication Issues**
- Weak password policies
- Session management flaws
- Multi-factor authentication gaps
3. **Sensitive Data Exposure**
- Hardcoded secrets detection
- Encryption at rest/transit
- API key exposure
### Audit Process
< Steps >
< Step > **Reconnaissance** - Map attack surface </ Step >
< Step > **Static Analysis** - Scan code for vulnerabilities </ Step >
< Step > **Dynamic Testing** - Runtime security testing </ Step >
< Step > **Reporting** - Document findings with severity ratings </ Step >
</ Steps >
### Code Review Checklist
```javascript
// ❌ Bad: SQL Injection vulnerability
const query = `SELECT * FROM users WHERE id = ${userId}`;
// ✅ Good: Parameterized query
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);
Static Analysis : ESLint security plugins, Semgrep
Dependency Scanning : npm audit, Snyk
Secret Detection : git-secrets, TruffleHog
Penetration Testing : Burp Suite, OWASP ZAP
Provide actionable security recommendations with code examples and remediation steps.
## Command Components
Commands add custom slash commands to Claude Code.
### Command File Structure
Commands also use Markdown format:
```markdown
# /performance-audit
Run comprehensive performance audit on the current project.
## Purpose
Analyzes application performance across multiple dimensions:
- Bundle size and composition
- Runtime performance metrics
- Network waterfall analysis
- Core Web Vitals assessment
## Usage
```bash
/performance-audit
/performance-audit --target build/
/performance-audit --format json
Implementation
Bundle Analysis
npx webpack-bundle-analyzer build/stats.json
Lighthouse Audit
npx lighthouse https://localhost:3000 --output=json
Generate Report
Bundle size breakdown
Performance score
Optimization recommendations
{
"performance" : {
"score" : 87 ,
"metrics" : {
"fcp" : 1.2 ,
"lcp" : 2.1 ,
"cls" : 0.05
}
},
"bundle" : {
"size" : "245KB" ,
"gzipped" : "89KB"
}
}
Recommendations
Based on audit results, suggest:
Code splitting opportunities
Lazy loading strategies
Image optimization
Caching improvements
components/commands/
├── code-generation/ # Generate code, tests, docs
├── analysis/ # Code analysis, optimization
├── project-management/ # File operations, structure
├── testing/ # Test generation, validation
└── deployment/ # Build, deploy, CI/CD
## MCP Components
MCPs (Model Context Protocol) integrate external services.
### MCP File Structure
MCPs use JSON format:
```json
{
"description": "PostgreSQL database integration for Claude Code",
"mcpServers": {
"postgresql": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:password@localhost:5432/dbname"
}
}
}
}
Required Fields
{
"description" : "Clear description of MCP functionality" ,
"mcpServers" : {
"server-name" : {
"command" : "executable-path" ,
"args" : [ "array" , "of" , "arguments" ],
"env" : {
"ENV_VAR" : "<PLACEHOLDER_VALUE>"
}
}
}
}
Never hardcode secrets in MCP files. Always use placeholder values like <YOUR_API_KEY> or <DATABASE_URL>.
Environment Variables
Use placeholders for sensitive data:
{
"env" : {
"API_KEY" : "<YOUR_API_KEY>" ,
"API_SECRET" : "<YOUR_API_SECRET>" ,
"DATABASE_URL" : "<DATABASE_CONNECTION_STRING>"
}
}
Users replace placeholders after installation:
# After installing MCP
export API_KEY = actual_key_value
export DATABASE_URL = postgresql :// localhost : 5432 / mydb
Example: GitHub MCP
{
"description" : "GitHub integration for repository management, issue tracking, and PR operations" ,
"mcpServers" : {
"github" : {
"command" : "npx" ,
"args" : [ "-y" , "@modelcontextprotocol/server-github" ],
"env" : {
"GITHUB_TOKEN" : "<YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>" ,
"GITHUB_OWNER" : "<REPOSITORY_OWNER>" ,
"GITHUB_REPO" : "<REPOSITORY_NAME>"
}
}
}
}
MCP Categories
components/mcps/
├── integration/ # GitHub, GitLab, Jira
├── database/ # PostgreSQL, MySQL, MongoDB
├── cloud/ # AWS, Azure, GCP
├── devtools/ # Build tools, testing frameworks
└── ai-services/ # OpenAI, Anthropic, other AI APIs
Hook Components
Hooks automate actions based on events.
Hook File Structure
{
"description" : "Send desktop notifications when Claude Code operations complete" ,
"hooks" : {
"PostToolUse" : [
{
"matcher" : "*" ,
"hooks" : [
{
"type" : "command" ,
"command" : "if command -v osascript >/dev/null 2>&1; then osascript -e 'display notification \" Tool: $CLAUDE_TOOL_NAME completed \" with title \" Claude Code \" '; elif command -v notify-send >/dev/null 2>&1; then notify-send 'Claude Code' \" Tool: $CLAUDE_TOOL_NAME completed \" ; fi"
}
]
}
]
}
}
Hook Types
PreToolUse - Before tool execution
PostToolUse - After tool execution
PreConversation - Before conversation starts
PostConversation - After conversation ends
Example: Git Auto-Add Hook
{
"description" : "Automatically stage modified files after Claude Code edits them" ,
"hooks" : {
"PostToolUse" : [
{
"matcher" : "Edit" ,
"hooks" : [
{
"type" : "command" ,
"command" : "git add $CLAUDE_EDITED_FILE"
}
]
}
]
}
}
Available Variables
$CLAUDE_TOOL_NAME - Name of tool executed
$CLAUDE_EDITED_FILE - Path to edited file
$CLAUDE_PROJECT_PATH - Current project directory
$CLAUDE_CONVERSATION_ID - Active conversation ID
Hook Categories
components/hooks/
├── automation/ # Deployment, notifications
├── git-workflow/ # Git operations, commits
├── development-tools/ # Linting, formatting
├── testing/ # Test runners, coverage
└── monitoring/ # Logging, analytics
Settings Components
Settings configure Claude Code behavior.
Settings File Structure
{
"description" : "Enable read-only mode to prevent file modifications" ,
"allowedTools" : [ "Read" , "Grep" , "Glob" , "Bash" ],
"deniedTools" : [ "Write" , "Edit" ],
"showDenialMessage" : true ,
"denialMessage" : "Read-only mode is active. File modifications are disabled."
}
Common Settings
Performance:
{
"description" : "High-performance configuration for large codebases" ,
"cacheSize" : 1024 ,
"maxConcurrentTools" : 5 ,
"timeout" : 120000
}
UI Customization:
{
"description" : "Dark theme with custom syntax highlighting" ,
"theme" : "dark" ,
"syntaxHighlighting" : true ,
"fontFamily" : "JetBrains Mono" ,
"fontSize" : 14
}
Component Review Process
CRITICAL: Use the component-reviewer agent for ALL component changes Before submitting any component, use: Use the component-reviewer agent to review [component-path]
Validation Checklist
The component-reviewer agent checks:
✅ Valid YAML frontmatter (for agents/commands)
✅ Valid JSON structure (for MCPs/hooks/settings)
✅ Required fields present
✅ Kebab-case naming conventions
✅ No hardcoded secrets or API keys
✅ Relative paths only (no absolute paths)
✅ Clear, specific descriptions
✅ Correct category placement
Example Review
# After creating an agent
Use the component-reviewer agent to review cli-tool/components/agents/development-team/react-expert.md
Reviewer output:
✅ PASSED: Valid YAML frontmatter
✅ PASSED: Required fields present (name, description)
✅ PASSED: Kebab-case naming convention
⚠️ WARNING: Consider adding specific use cases to description
📋 SUGGESTION: Add code examples for common patterns
✅ Component is ready for submission
Publishing Components
Create Component
Write component file in appropriate category directory
Review with Agent
Use the component-reviewer agent to review [path]
Fix Issues
Address critical issues and warnings
Update Catalog
python scripts/generate_components_json.py
Test Installation
npx claude-code-templates@latest --agent your-agent --dry-run
Submit PR
Open pull request with clear description and examples
Catalog Generation
After creating/modifying components:
python scripts/generate_components_json.py
This updates docs/components.json with:
Component metadata
File contents
Installation instructions
Search indexes
Best Practices
Naming Conventions
DO:
✅ react-performance-expert (kebab-case)
✅ security-auditor (descriptive)
✅ github-integration (clear purpose)
DON’T:
❌ ReactExpert (PascalCase)
❌ expert_agent (snake_case)
❌ myagent (vague)
Descriptions
Good descriptions:
description : React performance optimization specialist. Expert in React.memo, useMemo, useCallback, code splitting, and bundle optimization.
Poor descriptions:
description : Helps with React # Too vague
Security
Never include:
API keys or tokens
Passwords or credentials
Absolute file paths (/Users/you/...)
Personal information
Proprietary code or business logic
Use placeholders:
{
"env" : {
"API_KEY" : "<YOUR_API_KEY_HERE>"
}
}
Next Steps
Contributing Guide Full contribution guidelines and workflow
Component Examples Browse 900+ existing components for inspiration