SpyBara
Go Premium

Documentation 2025-11-06 18:02 UTC to 2025-11-14 21:26 UTC

11 files changed +136 −46. View all changes and history on the product overview
2025
Thu 27 06:02 Wed 26 00:04 Tue 25 03:22 Mon 24 21:01 Fri 21 00:04 Thu 20 18:02 Wed 19 03:21 Tue 18 18:02 Mon 17 03:24 Sun 16 00:04 Fri 14 21:26 Thu 6 18:02 Tue 4 18:02 Mon 3 21:01 Sun 2 18:01 Sat 1 21:01
Details

29 29 

30* **Pro users**30* **Pro users**

31* **Max users**31* **Max users**

32 32* **Team premium seat users**

33Coming soon to Team and Enterprise premium seat users.33* **Enterprise premium seat users**

34 34 

35## Getting started35## Getting started

36 36 


92The universal image includes pre-configured environments for:92The universal image includes pre-configured environments for:

93 93 

94* **Python**: Python 3.x with pip, poetry, and common scientific libraries94* **Python**: Python 3.x with pip, poetry, and common scientific libraries

95* **Node.js**: Latest LTS versions with npm, yarn, and pnpm95* **Node.js**: Latest LTS versions with npm, yarn, pnpm, and bun

96* **Ruby**: Versions 3.1.6, 3.2.6, 3.3.6 (default: 3.3.6) with gem, bundler, and rbenv for version management

97* **PHP**: Version 8.4.14

96* **Java**: OpenJDK with Maven and Gradle98* **Java**: OpenJDK with Maven and Gradle

97* **Go**: Latest stable version with module support99* **Go**: Latest stable version with module support

98* **Rust**: Rust toolchain with cargo100* **Rust**: Rust toolchain with cargo

99* **C++**: GCC and Clang compilers101* **C++**: GCC and Clang compilers

100 102 

103#### Databases

104 

105The universal image includes the following databases:

106 

107* **PostgreSQL**: Version 16

108* **Redis**: Version 7.0

109 

101### Environment configuration110### Environment configuration

102 111 

103When you start a session in Claude Code on the web, here's what happens under the hood:112When you start a session in Claude Code on the web, here's what happens under the hood:

Details

21Customize Claude Code's behavior with these command-line flags:21Customize Claude Code's behavior with these command-line flags:

22 22 

23| Flag | Description | Example |23| Flag | Description | Example |

24| :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |24| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------- |

25| `--add-dir` | Add additional working directories for Claude to access (validates each path exists as a directory) | `claude --add-dir ../apps ../lib` |25| `--add-dir` | Add additional working directories for Claude to access (validates each path exists as a directory) | `claude --add-dir ../apps ../lib` |

26| `--agents` | Define custom [subagents](/en/sub-agents) dynamically via JSON (see below for format) | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |26| `--agents` | Define custom [subagents](/en/sub-agents) dynamically via JSON (see below for format) | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

27| `--allowedTools` | A list of tools that should be allowed without prompting the user for permission, in addition to [settings.json files](/en/settings) | `"Bash(git log:*)" "Bash(git diff:*)" "Read"` |27| `--allowedTools` | A list of tools that should be allowed without prompting the user for permission, in addition to [settings.json files](/en/settings) | `"Bash(git log:*)" "Bash(git diff:*)" "Read"` |

28| `--disallowedTools` | A list of tools that should be disallowed without prompting the user for permission, in addition to [settings.json files](/en/settings) | `"Bash(git log:*)" "Bash(git diff:*)" "Edit"` |28| `--disallowedTools` | A list of tools that should be disallowed without prompting the user for permission, in addition to [settings.json files](/en/settings) | `"Bash(git log:*)" "Bash(git diff:*)" "Edit"` |

29| `--print`, `-p` | Print response without interactive mode (see [SDK documentation](https://docs.claude.com/en/api/agent-sdk) for programmatic usage details) | `claude -p "query"` |29| `--print`, `-p` | Print response without interactive mode (see [SDK documentation](https://docs.claude.com/en/docs/agent-sdk) for programmatic usage details) | `claude -p "query"` |

30| `--system-prompt` | Replace the entire system prompt with custom text (works in both interactive and print modes; added in v2.0.14) | `claude --system-prompt "You are a Python expert"` |30| `--system-prompt` | Replace the entire system prompt with custom text (works in both interactive and print modes; added in v2.0.14) | `claude --system-prompt "You are a Python expert"` |

31| `--system-prompt-file` | Load system prompt from a file, replacing the default prompt (print mode only; added in v1.0.54) | `claude -p --system-prompt-file ./custom-prompt.txt "query"` |31| `--system-prompt-file` | Load system prompt from a file, replacing the default prompt (print mode only; added in v1.0.54) | `claude -p --system-prompt-file ./custom-prompt.txt "query"` |

32| `--append-system-prompt` | Append custom text to the end of the default system prompt (works in both interactive and print modes; added in v1.0.55) | `claude --append-system-prompt "Always use TypeScript"` |32| `--append-system-prompt` | Append custom text to the end of the default system prompt (works in both interactive and print modes; added in v1.0.55) | `claude --append-system-prompt "Always use TypeScript"` |


114 114 

115For detailed information about print mode (`-p`) including output formats,115For detailed information about print mode (`-p`) including output formats,

116streaming, verbose logging, and programmatic usage, see the116streaming, verbose logging, and programmatic usage, see the

117[SDK documentation](https://docs.claude.com/en/api/agent-sdk).117[SDK documentation](https://docs.claude.com/en/docs/agent-sdk).

118 118 

119## See also119## See also

120 120 


123* [Quickstart guide](/en/quickstart) - Getting started with Claude Code123* [Quickstart guide](/en/quickstart) - Getting started with Claude Code

124* [Common workflows](/en/common-workflows) - Advanced workflows and patterns124* [Common workflows](/en/common-workflows) - Advanced workflows and patterns

125* [Settings](/en/settings) - Configuration options125* [Settings](/en/settings) - Configuration options

126* [SDK documentation](https://docs.claude.com/en/api/agent-sdk) - Programmatic usage and integrations126* [SDK documentation](https://docs.claude.com/en/docs/agent-sdk) - Programmatic usage and integrations

Details

6 6 

7<Note>7<Note>

8 Claude Code GitHub Actions is built on top of the [Claude Code8 Claude Code GitHub Actions is built on top of the [Claude Code

9 SDK](https://docs.claude.com/en/api/agent-sdk), which enables programmatic integration of9 SDK](https://docs.claude.com/en/docs/agent-sdk), which enables programmatic integration of

10 Claude Code into your applications. You can use the SDK to build custom10 Claude Code into your applications. You can use the SDK to build custom

11 automation workflows beyond GitHub Actions.11 automation workflows beyond GitHub Actions.

12</Note>12</Note>

gitlab-ci-cd.md +1 −1

Details

9</Info>9</Info>

10 10 

11<Note>11<Note>

12 This integration is built on top of the [Claude Code CLI and SDK](https://docs.claude.com/en/api/agent-sdk), enabling programmatic use of Claude in your CI/CD jobs and custom automation workflows.12 This integration is built on top of the [Claude Code CLI and SDK](https://docs.claude.com/en/docs/agent-sdk), enabling programmatic use of Claude in your CI/CD jobs and custom automation workflows.

13</Note>13</Note>

14 14 

15## Why use Claude Code with GitLab?15## Why use Claude Code with GitLab?

hooks.md +72 −8

Details

49 * `prompt`: (For `type: "prompt"`) The prompt to send to the LLM for evaluation49 * `prompt`: (For `type: "prompt"`) The prompt to send to the LLM for evaluation

50 * `timeout`: (Optional) How long a hook should run, in seconds, before canceling that specific hook50 * `timeout`: (Optional) How long a hook should run, in seconds, before canceling that specific hook

51 51 

52For events like `UserPromptSubmit`, `Notification`, `Stop`, and `SubagentStop`52For events like `UserPromptSubmit`, `Stop`, and `SubagentStop`

53that don't use matchers, you can omit the matcher field:53that don't use matchers, you can omit the matcher field:

54 54 

55```json theme={null}55```json theme={null}


289* `Write` - File writing289* `Write` - File writing

290* `WebFetch`, `WebSearch` - Web operations290* `WebFetch`, `WebSearch` - Web operations

291 291 

292Use [PreToolUse decision control](#pretooluse-decision-control) to allow, deny, or ask for permission to use the tool.

293 

294### PermissionRequest

295 

296Runs when the user is shown a permission dialog.

297Use [PermissionRequest decision control](#permissionrequest-decision-control) to allow or deny on behalf of the user.

298 

299Recognizes the same matcher values as PreToolUse.

300 

292### PostToolUse301### PostToolUse

293 302 

294Runs immediately after a tool completes successfully.303Runs immediately after a tool completes successfully.


297 306 

298### Notification307### Notification

299 308 

300Runs when Claude Code sends notifications. Notifications are sent when:309Runs when Claude Code sends notifications. Supports matchers to filter by notification type.

301 310 

3021. Claude needs your permission to use a tool. Example: "Claude needs your311**Common matchers:**

303 permission to use Bash"312 

3042. The prompt input has been idle for at least 60 seconds. "Claude is waiting313* `permission_prompt` - Permission requests from Claude Code

305 for your input"314* `idle_prompt` - When Claude is waiting for user input (after 60+ seconds of idle time)

315* `auth_success` - Authentication success notifications

316* `elicitation_dialog` - When Claude Code needs input for MCP tool elicitation

317 

318You can use matchers to run different hooks for different notification types, or omit the matcher to run hooks for all notifications.

319 

320**Example: Different notifications for different types**

321 

322```json theme={null}

323{

324 "hooks": {

325 "Notification": [

326 {

327 "matcher": "permission_prompt",

328 "hooks": [

329 {

330 "type": "command",

331 "command": "/path/to/permission-alert.sh"

332 }

333 ]

334 },

335 {

336 "matcher": "idle_prompt",

337 "hooks": [

338 {

339 "type": "command",

340 "command": "/path/to/idle-notification.sh"

341 }

342 ]

343 }

344 ]

345 }

346}

347```

306 348 

307### UserPromptSubmit349### UserPromptSubmit

308 350 


468 "cwd": "/Users/...",510 "cwd": "/Users/...",

469 "permission_mode": "default",511 "permission_mode": "default",

470 "hook_event_name": "Notification",512 "hook_event_name": "Notification",

471 "message": "Task completed successfully"513 "message": "Claude needs your permission to use Bash",

514 "notification_type": "permission_prompt"

472}515}

473```516```

474 517 


625 668 

626Additionally, hooks can modify tool inputs before execution using `updatedInput`:669Additionally, hooks can modify tool inputs before execution using `updatedInput`:

627 670 

628* `updatedInput` allows you to modify the tool's input parameters before the tool executes. This is a `Record<string, unknown>` object containing the fields you want to change or add.671* `updatedInput` allows you to modify the tool's input parameters before the tool executes.

629* This is most useful with `"permissionDecision": "allow"` to modify and approve tool calls.672* This is most useful with `"permissionDecision": "allow"` to modify and approve tool calls.

630 673 

631```json theme={null}674```json theme={null}


648 `"approve"` and `"block"` map to `"allow"` and `"deny"` respectively.691 `"approve"` and `"block"` map to `"allow"` and `"deny"` respectively.

649</Note>692</Note>

650 693 

694#### `PermissionRequest` Decision Control

695 

696`PermissionRequest` hooks can allow or deny permission requests shown to the user.

697 

698* For `"behavior": "allow"` you can also optionally pass in an `"updatedInput"` that modifies the tool's input parameters before the tool executes.

699* For `"behavior": "deny"` you can also optionally pass in a `"message"` string that tells the model why the permission was denied, and a boolean `"interrupt"` which will stop Claude.

700 

701```json theme={null}

702{

703 "hookSpecificOutput": {

704 "hookEventName": "PermissionRequest",

705 "decision": {

706 "behavior": "allow",

707 "updatedInput": {

708 "command": "npm run lint"

709 }

710 }

711 }

712}

713```

714 

651#### `PostToolUse` Decision Control715#### `PostToolUse` Decision Control

652 716 

653`PostToolUse` hooks can provide feedback to Claude after tool execution.717`PostToolUse` hooks can provide feedback to Claude after tool execution.

output-styles.md +26 −16

Details

27 27 

28Output styles directly modify Claude Code's system prompt.28Output styles directly modify Claude Code's system prompt.

29 29 

30* Non-default output styles exclude instructions specific to code generation and30* All output styles exclude instructions for efficient output (such as

31 efficient output normally built into Claude Code (such as responding concisely31 responding concisely).

32 and verifying code with tests).32* Custom output styles exclude instructions for coding (such as verifying code

33* Instead, these output styles have their own custom instructions added to the33 with tests), unless `keep-coding-instructions` is true.

34* All output styles have their own custom instructions added to the end of the

34 system prompt.35 system prompt.

36* All output styles trigger reminders for Claude to adhere to the output style

37 instructions during the conversation.

35 38 

36## Change your output style39## Change your output style

37 40 

38You can either:41You can either:

39 42 

40* Run `/output-style` to access the menu and select your output style (this can43* Run `/output-style` to access a menu and select your output style (this can

41 also be accessed from the `/config` menu)44 also be accessed from the `/config` menu)

42 45 

43* Run `/output-style [style]`, such as `/output-style explanatory`, to directly46* Run `/output-style [style]`, such as `/output-style explanatory`, to directly

44 switch to a style47 switch to a style

45 48 

46These changes apply to the [local project level](/en/settings)49These changes apply to the [local project level](/en/settings) and are saved in

47and are saved in `.claude/settings.local.json`.50`.claude/settings.local.json`. You can also directly edit the `outputStyle`

51field in a settings file at a different level.

48 52 

49## Create a custom output style53## Create a custom output style

50 54 

51To set up a new output style with Claude's help, run55Custom output styles are Markdown files with frontmatter and the text that will

52`/output-style:new I want an output style that ...`56be added to the system prompt:

53 

54By default, output styles created through `/output-style:new` are saved as

55markdown files at the user level in `~/.claude/output-styles` and can be used

56across projects. They have the following structure:

57 57 

58```markdown theme={null}58```markdown theme={null}

59---59---


72[Define how the assistant should behave in this style...]72[Define how the assistant should behave in this style...]

73```73```

74 74 

75You can also create your own output style Markdown files and save them either at75You can save these files at the user level (`~/.claude/output-styles`) or

76the user level (`~/.claude/output-styles`) or the project level76project level (`.claude/output-styles`).

77(`.claude/output-styles`).77 

78### Frontmatter

79 

80Output style files support frontmatter, useful for specifying metadata about the

81command:

82 

83| Frontmatter | Purpose | Default |

84| :------------------------- | :-------------------------------------------------------------------------- | :---------------------- |

85| `name` | Name of the output style, if not the file name | Inherits from file name |

86| `description` | Description of the output style. Used only in the UI of `/output-style` | None |

87| `keep-coding-instructions` | Whether to keep the parts of Claude Code's system prompt related to coding. | false |

78 88 

79## Comparisons to related features89## Comparisons to related features

80 90 

overview.md +1 −1

Details

92## Additional resources92## Additional resources

93 93 

94<CardGroup>94<CardGroup>

95 <Card title="Build with the Agent SDK" icon="code-branch" href="https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/overview">95 <Card title="Build with the Agent SDK" icon="code-branch" href="https://docs.claude.com/en/docs/agent-sdk/overview">

96 Create custom AI agents with the Claude Agent SDK96 Create custom AI agents with the Claude Agent SDK

97 </Card>97 </Card>

98 98 

Details

15| **Documentation Location** | Claude Code docs → SDK section | API Guide → Agent SDK section |15| **Documentation Location** | Claude Code docs → SDK section | API Guide → Agent SDK section |

16 16 

17<Note>17<Note>

18 **Documentation Changes:** The Agent SDK documentation has moved from the Claude Code docs to the API Guide under a dedicated [Agent SDK](https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/overview) section. The Claude Code docs now focus on the CLI tool and automation features.18 **Documentation Changes:** The Agent SDK documentation has moved from the Claude Code docs to the API Guide under a dedicated [Agent SDK](https://docs.claude.com/en/docs/agent-sdk/overview) section. The Claude Code docs now focus on the CLI tool and automation features.

19</Note>19</Note>

20 20 

21## Migration Steps21## Migration Steps


321 321 

322## Next Steps322## Next Steps

323 323 

324* Explore the [Agent SDK Overview](https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/overview) to learn about available features324* Explore the [Agent SDK Overview](https://docs.claude.com/en/docs/agent-sdk/overview) to learn about available features

325* Check out the [TypeScript SDK Reference](https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/typescript) for detailed API documentation325* Check out the [TypeScript SDK Reference](https://docs.claude.com/en/docs/agent-sdk/typescript) for detailed API documentation

326* Review the [Python SDK Reference](https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/python) for Python-specific documentation326* Review the [Python SDK Reference](https://docs.claude.com/en/docs/agent-sdk/python) for Python-specific documentation

327* Learn about [Custom Tools](https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/custom-tools) and [MCP Integration](https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/mcp)327* Learn about [Custom Tools](https://docs.claude.com/en/docs/agent-sdk/custom-tools) and [MCP Integration](https://docs.claude.com/en/docs/agent-sdk/mcp)

settings.md +1 −1

Details

343| `CLAUDE_CODE_SUBAGENT_MODEL` | See [Model configuration](/en/model-config) |343| `CLAUDE_CODE_SUBAGENT_MODEL` | See [Model configuration](/en/model-config) |

344| `CLAUDE_CODE_USE_BEDROCK` | Use [Bedrock](/en/amazon-bedrock) |344| `CLAUDE_CODE_USE_BEDROCK` | Use [Bedrock](/en/amazon-bedrock) |

345| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/en/google-vertex-ai) |345| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/en/google-vertex-ai) |

346| `DISABLE_AUTOUPDATER` | Set to `1` to disable automatic updates. This takes precedence over the `autoUpdates` configuration setting. |346| `DISABLE_AUTOUPDATER` | Set to `1` to disable automatic updates. |

347| `DISABLE_BUG_COMMAND` | Set to `1` to disable the `/bug` command |347| `DISABLE_BUG_COMMAND` | Set to `1` to disable the `/bug` command |

348| `DISABLE_COST_WARNINGS` | Set to `1` to disable cost warning messages |348| `DISABLE_COST_WARNINGS` | Set to `1` to disable cost warning messages |

349| `DISABLE_ERROR_REPORTING` | Set to `1` to opt out of Sentry error reporting |349| `DISABLE_ERROR_REPORTING` | Set to `1` to opt out of Sentry error reporting |

setup.md +12 −5

Details

23 <Tab title="Native Install (Recommended)">23 <Tab title="Native Install (Recommended)">

24 **Homebrew (macOS, Linux):**24 **Homebrew (macOS, Linux):**

25 25 

26 ```sh theme={null}26 ```sh theme={null} theme={null} theme={null} theme={null}

27 brew install --cask claude-code27 brew install --cask claude-code

28 ```28 ```

29 29 

30 **macOS, Linux, WSL:**30 **macOS, Linux, WSL:**

31 31 

32 ```bash theme={null}32 ```bash theme={null} theme={null} theme={null} theme={null}

33 curl -fsSL https://claude.ai/install.sh | bash33 curl -fsSL https://claude.ai/install.sh | bash

34 ```34 ```

35 35 

36 **Windows PowerShell:**36 **Windows PowerShell:**

37 37 

38 ```powershell theme={null}38 ```powershell theme={null} theme={null} theme={null} theme={null}

39 irm https://claude.ai/install.ps1 | iex39 irm https://claude.ai/install.ps1 | iex

40 ```40 ```

41 41 

42 **Windows CMD:**42 **Windows CMD:**

43 43 

44 ```batch theme={null}44 ```batch theme={null} theme={null} theme={null} theme={null}

45 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd45 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

46 ```46 ```

47 </Tab>47 </Tab>


49 <Tab title="NPM">49 <Tab title="NPM">

50 If you have [Node.js 18 or newer installed](https://nodejs.org/en/download/):50 If you have [Node.js 18 or newer installed](https://nodejs.org/en/download/):

51 51 

52 ```sh theme={null}52 ```sh theme={null} theme={null} theme={null} theme={null}

53 npm install -g @anthropic-ai/claude-code53 npm install -g @anthropic-ai/claude-code

54 ```54 ```

55 </Tab>55 </Tab>


163 Make sure that you remove any outdated aliases or symlinks before installing.163 Make sure that you remove any outdated aliases or symlinks before installing.

164</Tip>164</Tip>

165 165 

166**Binary integrity and code signing**

167 

168* SHA256 checksums for all platforms are published in the release manifests, currently located at `https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/{VERSION}/manifest.json` (example: replace `{VERSION}` with `2.0.30`)

169* Signed binaries are distributed for the following platforms:

170 * macOS: Signed by "Anthropic PBC" and notarized by Apple

171 * Windows: Signed by "Anthropic, PBC"

172 

166### NPM installation173### NPM installation

167 174 

168For environments where NPM is preferred or required:175For environments where NPM is preferred or required:

skills.md +1 −1

Details

597 Learn how Skills work across Claude products597 Learn how Skills work across Claude products

598 </Card>598 </Card>

599 599 

600 <Card title="Use Skills in the Agent SDK" icon="cube" href="https://docs.claude.com/enhttps://docs.claude.com/en/api/agent-sdk/skills">600 <Card title="Use Skills in the Agent SDK" icon="cube" href="https://docs.claude.com/en/docs/agent-sdk/skills">

601 Use Skills programmatically with TypeScript and Python601 Use Skills programmatically with TypeScript and Python

602 </Card>602 </Card>

603 603