Comprehensive reference of Claude Code features. Use when asking about Claude Code capabilities, hooks, skills, agents, plugins, or configuration.
Comprehensive list of Claude Code features as of January 2026.
| File | Purpose |
|---|---|
CLAUDE.md | Project memory, read at session start |
.claude/settings.json | Hook configuration, permissions |
.claude/settings.local.json | Personal overrides (gitignored) |
.mcp.json | MCP server configuration |
.lsp.json | LSP server configuration |
| Hook | Trigger |
|---|---|
SessionStart | Session begins |
SessionEnd |
| Session ends |
UserPromptSubmit | User submits prompt |
PreToolUse | Before tool execution |
PostToolUse | After tool succeeds |
PostToolUseFailure | After tool fails |
PermissionRequest | Permission requested |
Notification | Notification sent |
Stop | Agent stopping |
SubagentStart | Subagent begins |
SubagentStop | Subagent completes |
PreCompact | Before context compaction |
Setup | Repository init/maintenance |
command - Execute shell commandprompt - Inject prompt (Stop/SubagentStop only){
"continue": true,
"stopReason": "string",
"systemMessage": "string",
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow|deny|ask"
}
}
name - Lowercase, hyphens, max 64 charsdescription - When to use, max 1024 charsallowed-tools - Tools allowed without permissionmodel - Specific model to usecontext: fork - Isolated sub-agent contextagent - Agent type for fork contexthooks - Lifecycle hooksuser-invocable - Slash command visibilityname - Lowercase with hyphensdescription - When to delegatetools - Available toolsdisallowedTools - Denied toolsmodel - sonnet, opus, haiku, inheritpermissionMode - default, acceptEdits, dontAsk, bypassPermissions, planskills - Skills to loadhooks - Lifecycle hooksplugin/
├── .claude-plugin/plugin.json
├── commands/
├── agents/
├── skills/
├── hooks/hooks.json
├── .mcp.json
└── .lsp.json
{
"permissions": {
"allow": ["Bash(git diff:*)"],
"ask": ["Bash(git push:*)"],
"deny": ["Read(./.env)"]
}
}
{
"mcpServers": {
"name": {
"command": "npx",
"args": ["-y", "@package/name"],
"env": {}
}
}
}
Last verified: January 2026