SKILL.md
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 commandprompt- 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 charsdescription- When to use, max 1024 chars
Optional Frontmatter
allowed-tools- Tools allowed without permissionmodel- Specific model to usecontext: fork- Isolated sub-agent contextagent- Agent type for fork contexthooks- Lifecycle hooksuser-invocable- Slash command visibility
Subagents
Required Frontmatter
name- Lowercase with hyphensdescription- When to delegate
Optional Frontmatter
tools- Available toolsdisallowedTools- Denied toolsmodel- sonnet, opus, haiku, inheritpermissionMode- default, acceptEdits, dontAsk, bypassPermissions, planskills- Skills to loadhooks- 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