| Tool | Description | Permission Required |
|---|---|---|
Agent |
Spawns a subagent with its own context window | No |
AskUserQuestion |
Asks multiple-choice questions to gather requirements | No |
Bash |
Executes shell commands | Yes |
CronCreate |
Schedules a recurring/one-shot prompt in current session | No |
CronDelete |
Cancels a scheduled task by ID | No |
CronList |
Lists all scheduled tasks in the session | No |
Edit |
Makes targeted edits to specific files | Yes |
EnterPlanMode |
Switches to plan mode before coding | No |
EnterWorktree |
Creates isolated git worktree and switches into it | No |
ExitPlanMode |
Presents plan for approval; exits plan mode | Yes |
ExitWorktree |
Exits worktree session, returns to original directory | No |
Glob |
Finds files by pattern matching | No |
Grep |
Searches for patterns in file contents | No |
ListMcpResourcesTool |
Lists resources from connected MCP servers | No |
LSP |
Code intelligence: type errors, go-to-def, references | No |
NotebookEdit |
Modifies Jupyter notebook cells | Yes |
Read |
Reads file contents | No |
ReadMcpResourceTool |
Reads a specific MCP resource by URI | No |
Skill |
Executes a skill within the main conversation | Yes |
TaskCreate |
Creates a task in the task list | No |
TaskGet |
Gets full details for a specific task | No |
TaskList |
Lists all tasks with their current status | No |
TaskOutput |
Retrieves output from a background task | No |
TaskStop |
Kills a running background task by ID | No |
TaskUpdate |
Updates task status, dependencies, or deletes tasks | No |
TodoWrite |
Manages session task checklist (non-interactive / SDK) | No |
ToolSearch |
Searches for and loads deferred tools | No |
WebFetch |
Fetches content from a URL | Yes |
WebSearch |
Performs web searches | Yes |
Write |
Creates or overwrites files | Yes |
Bash, Edit, ExitPlanMode, NotebookEdit, Skill, WebFetch, WebSearch, Write
- Working directory persists across commands
- Environment variables do not persist (
exportin one command is gone in the next) - Set
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1to reset cwd to project root after each command - Activate virtualenvs before launching Claude Code
- Use
CLAUDE_ENV_FILEor aSessionStarthook to persist env vars across Bash commands
Tool names used in permission rules, subagent tool lists, and hook matchers must match exactly (case-sensitive):
{
"permissions": {
"allow": ["Read", "Glob", "Grep"],
"deny": ["Bash(curl *)", "Write"]
}
}- Requires a code intelligence plugin and its language server binary
- Reports type errors/warnings automatically after file edits
- Supports: jump to definition, find references, type info, list symbols, call hierarchies
TodoWrite: non-interactive mode and Agent SDKTaskCreate/TaskGet/TaskList/TaskUpdate: interactive sessions (replaces TodoWrite in REPL)
Source: tools-reference.md