Bash tool description
SDK-CLI Agent SDK, print mode, v2.1.285. The text the model is given for this tool, line by line, with each line marked against the previous capture taken the same way. One model string produces this prompt.
As described in the system reminder: read empty request, not the ordinary one.
Lines121,097 characters
Moved+2−2 against v2.1.284
Sent to1model strings get this description
Copies1distinct descriptions under this name
Parameters51 of them required
Every tool→every description on this arm
Plain text · sha256 e11027a1e9a0
The description, line by line
12 lines Line numbers are v2.1.284 on the left and this capture on the right.
1
1
Executes a bash command and returns its output.
2
2
3
3
- Working directory persists between calls, but prefer absolute paths — `cd` in a compound command can trigger a permission prompt. Shell state (env vars, functions) does not persist; the shell is initialized from the user's profile.
4
4
- Command output is displayed to you, not reliably to the user.
5
- `timeout` is in milliseconds: default 120000, max 600000.
6
- `run_in_background` runs the command detached: it keeps running across turns and re-invokes you when it exits. No `&` needed.
5
- `timeout` is in milliseconds: default 120000, max 600000 for a foreground command.
6
- `run_in_background` runs the command detached: it keeps running across turns and re-invokes you when it exits. With it, `timeout` is how long the command may run in the background (default 1800000, max 7200000); at that limit it is stopped and you are re-invoked. No `&` needed.
7
7
8
8
# Git
9
9
- Interactive flags (`-i`, e.g. `git rebase -i`, `git add -i`) are not supported in this environment.
10
10
- Use the `gh` CLI for GitHub operations (PRs, issues, API).
11
11
- Commit or push only when the user asks. If on the default branch, branch first.
12
12
- End git commit messages and PR bodies with the attribution lines given in the conversation's system-reminder, when one is present.
What it accepts
5 parameters The JSON parameter schema sent beside this description, 1,859 characters of it. Name, type, then whether the client marked it required.command
string
required
The command to execute
dangerouslyDisableSandbox
boolean
optional
Set this to true to dangerously override sandbox mode and run commands without sandboxing.
description
string
optional
Clear, concise description of what this command does in active voice. Never use words like "complex" or "risk" in the description - just describe what it does.
Say what the command does in plain words: do not echo the command's text, its flags, or file paths - the user reads this description, often without seeing the command.
For simple commands (git, npm, standard CLI tools), keep it brief (5-10 words):
- ls → "List files in current directory"
- git status → "Show working tree status"
- npm install → "Install package dependencies"
For commands that are harder to parse at a glance (piped commands, obscure flags, etc.), add enough context to clarify what it does:
- find . -name "*.tmp" -exec rm {} \; → "Find and delete all .tmp files recursively"
- git reset --hard origin/main → "Discard all local changes and match remote main"
- curl -s url | jq '.data[]' → "Fetch JSON from URL and extract data array elements"
run_in_background
boolean
optional
Set to true to run this command in the background. With it, `timeout` limits how long the command may run in the background before it is stopped (default 1800000 ms, max 7200000 ms).
timeout
number
optional
Optional timeout in milliseconds (max 600000 for a foreground command)
sha256 7d0dff9a127a · the schema as the client sent it:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"command": {
"description": "The command to execute",
"type": "string"
},
"dangerouslyDisableSandbox": {
"description": "Set this to true to dangerously override sandbox mode and run commands without sandboxing.",
"type": "boolean"
},
"description": {
"description": "Clear, concise description of what this command does in active voice. Never use words like \"complex\" or \"risk\" in the description - just describe what it does.\n\nSay what the command does in plain words: do not echo the command's text, its flags, or file paths - the user reads this description, often without seeing the command.\n\nFor simple commands (git, npm, standard CLI tools), keep it brief (5-10 words):\n- ls \u2192 \"List files in current directory\"\n- git status \u2192 \"Show working tree status\"\n- npm install \u2192 \"Install package dependencies\"\n\nFor commands that are harder to parse at a glance (piped commands, obscure flags, etc.), add enough context to clarify what it does:\n- find . -name \"*.tmp\" -exec rm {} \\; \u2192 \"Find and delete all .tmp files recursively\"\n- git reset --hard origin/main \u2192 \"Discard all local changes and match remote main\"\n- curl -s url | jq '.data[]' \u2192 \"Fetch JSON from URL and extract data array elements\"",
"type": "string"
},
"run_in_background": {
"description": "Set to true to run this command in the background. With it, `timeout` limits how long the command may run in the background before it is stopped (default 1800000 ms, max 7200000 ms).",
"type": "boolean"
},
"timeout": {
"description": "Optional timeout in milliseconds (max 600000 for a foreground command)",
"type": "number"
}
},
"required": [
"command"
],
"type": "object"
}