Tools Reference
Complete reference for CodeBuddy Code's available tools, including permission requirements.
CodeBuddy Code includes a set of built-in tools to help understand and modify your codebase. The tool names in the table below are the identifiers used in permission rules, sub-agent tool lists, and Hook matchers.
| Tool | Description | Requires Permission |
|---|---|---|
Agent | Spawns a sub-agent with an independent context window to handle tasks | No |
AskUserQuestion | Asks the user a multiple-choice question to gather requirements or clarify ambiguities | Yes |
Bash | Executes shell commands in your environment. See Bash Tool Behavior | Yes |
CronCreate | Schedules recurring or one-time tasks within the current session (expires on exit). See Scheduled Tasks | No |
CronDelete | Cancels a scheduled task by ID | No |
CronList | Lists all scheduled tasks in the current session | No |
DeferExecuteTool | Executes a deferred tool discovered via ToolSearch | No |
Edit | Performs precise string replacement edits on files | Yes |
EnterPlanMode | Switches to plan mode for designing implementation approaches before coding | No |
EnterWorktree | Creates an isolated git worktree and switches into it | Yes |
ExitPlanMode | Submits a plan for user approval and exits plan mode | Yes |
Glob | Finds files using glob patterns | No |
Grep | Searches file contents using regex patterns | No |
ImageEdit | Edits or modifies existing images based on text instructions | Yes |
ImageGen | Generates images from text descriptions | Yes |
LeaveWorktree | Exits the worktree session and returns to the original directory | Yes |
LSP | Provides code intelligence via Language Server. Automatically reports type errors and warnings after file edits. Also supports navigation operations such as go-to-definition, find references, get type info, list symbols, find implementations, and trace call hierarchies. Requires a Code Intelligence Plugin and its language server binary | No |
MultiEdit | Performs multiple edits on the same file in a single atomic operation | Yes |
NotebookEdit | Modifies Jupyter notebook cell contents | Yes |
PowerShell | Executes PowerShell commands on Windows. Only available on Windows, see PowerShell Tool Behavior | Yes |
Read | Reads file contents, supporting images, PDFs, and Jupyter notebooks | No |
SendMessage | Sends messages to teammates in an Agent Team | No |
Skill | Executes a Skill in the main conversation | No |
SlashCommand | Executes a custom slash command | Yes |
StructuredOutput | Returns structured output conforming to a JSON Schema | No |
TaskCreate | Creates a new task in the task list | No |
TaskGet | Retrieves full details of a specific task | No |
TaskList | Lists all tasks with their current status | No |
TaskOutput | Retrieves output from a background task or sub-agent | No |
TaskStop | Stops a running background task by ID | No |
TaskUpdate | Updates task status, dependencies, details, or deletes a task | No |
TeamCreate | Creates an Agent Team for coordinating multiple agents | No |
TeamDelete | Deletes an Agent Team and its task directory | No |
ToolSearch | Searches and loads deferred tools, supporting both built-in tools and MCP tools | No |
WebFetch | Fetches content from a specified URL and performs AI analysis | Yes |
WebSearch | Performs a web search | Yes |
Write | Creates or overwrites files | Yes |
Permission rules can be configured via the /permissions command or in permission settings. See also Tool-Specific Permission Rules.
Tool Aliases
Some tools have aliases that can be used interchangeably in permission rules:
| Tool | Alias |
|---|---|
TaskOutput | BashOutput |
TaskStop | KillShell |
PowerShell | pwsh, ps |
Bash Tool Behavior
The Bash tool executes each command in a separate process with the following persistence characteristics:
- Working directory persists across commands. Set
CODEBUDDY_BASH_MAINTAIN_PROJECT_WORKING_DIR=1to reset to the project directory after each command. - Environment variables do not persist. An
exportin one command will not take effect in the next command.
Activate your virtualenv or conda environment before launching CodeBuddy Code. To persist environment variables across Bash commands, set CODEBUDDY_ENV_FILE to point to a shell script before startup, or use a SessionStart Hook to populate it dynamically.
Sandbox Mode
The Bash tool supports sandbox isolation, which can restrict filesystem and network access. When sandbox is enabled, commands execute in a restricted environment to prevent unauthorized system access.
The dangerouslyDisableSandbox parameter allows bypassing the sandbox on a per-command basis (requires user approval).
Background Execution
The run_in_background parameter allows running commands in the background, using the TaskOutput tool to read the output. This is suitable for long-running builds, tests, and similar scenarios.
PowerShell Tool Behavior
The PowerShell tool is only available on Windows and provides native PowerShell command execution.
Relationship with Bash Tool
- With Git Bash: Both Bash and PowerShell tools are available; the model chooses the appropriate tool based on the scenario
- Without Git Bash: The Bash tool is automatically disabled, and the PowerShell tool becomes the only shell tool
- The PowerShell tool is not available on macOS/Linux
Version Adaptation
The PowerShell tool automatically detects the PowerShell version, preferring PowerShell 7+ (pwsh) and falling back to Windows PowerShell 5.1. Syntax guidance in prompts adjusts automatically based on version differences (e.g., the && operator is only supported in 7+).
Security Checks
The PowerShell tool includes a built-in security checker covering dangerous patterns such as code injection, download-and-execute, privilege escalation, and system destruction. Dangerous commands (e.g., Invoke-Expression, Add-Type) are blocked, and system-modifying commands require user confirmation.
Environment Variables
| Environment Variable | Description |
|---|---|
CODEBUDDY_POWERSHELL_PATH | Explicitly specify the PowerShell path (takes priority over auto-detection) |
CODEBUDDY_USE_POWERSHELL_TOOL | Set to 0 to disable the PowerShell tool |
Deferred Tool Loading
Some tools (such as those provided via MCP servers) use deferred loading. These tools do not appear in the initial tool list and must be discovered and activated via ToolSearch. Once activated, tools remain available for the rest of the session.
Tools can be configured as deferred via product configuration:
json
{
"tools": {
"ToolName": {
"deferLoading": true
}
}
}See Also
- Identity and Access Management: Permission system, rule syntax, and tool-specific rules
- Sub-Agents: Configuring tool access for sub-agents
- Hooks: Running custom commands before and after tool execution
- MCP Integration: Extending available tools via MCP servers
- Scheduled Tasks: Scheduling automated tasks with CronCreate
- Agent Teams: Multi-agent collaborative team system