Claude Code Feature Reference
Comprehensive list of Claude Code features as of January 2026.
Configuration Files
| 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 |
Hooks (13 Types)
| 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 |
Hook Types
command - Execute shell command
prompt - Inject prompt (Stop/SubagentStop only)
Hook Response Format
{
"continue": true,
"stopReason": "string",
"systemMessage": "string",
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow|deny|ask"
}
}
Skills
Required Frontmatter
name - Lowercase, hyphens, max 64 chars
description - When to use, max 1024 chars
Optional Frontmatter
allowed-tools - Tools allowed without permission
model - Specific model to use
context: fork - Isolated sub-agent context
agent - Agent type for fork context
hooks - Lifecycle hooks
user-invocable - Slash command visibility
Subagents
Required Frontmatter
name - Lowercase with hyphens
description - When to delegate
Optional Frontmatter
tools - Available tools
disallowedTools - Denied tools
model - sonnet, opus, haiku, inherit
permissionMode - default, acceptEdits, dontAsk, bypassPermissions, plan
skills - Skills to load
hooks - Lifecycle hooks
Built-in Agents
- Explore - Fast read-only (Haiku)
- Plan - Research for planning
- general-purpose - Complex tasks
- Bash - Terminal commands
Plugins
Structure
plugin/
āāā .claude-plugin/plugin.json
āāā commands/
āāā agents/
āāā skills/
āāā hooks/hooks.json
āāā .mcp.json
āāā .lsp.json
Permissions
{
"permissions": {
"allow": ["Bash(git diff:*)"],
"ask": ["Bash(git push:*)"],
"deny": ["Read(./.env)"]
}
}
MCP Servers
{
"mcpServers": {
"name": {
"command": "npx",
"args": ["-y", "@package/name"],
"env": {}
}
}
}
Last verified: January 2026