SpyBara
Go Premium

Documentation 2025-12-17 15:02 UTC to 2025-12-18 21:01 UTC

9 files changed +273 −25. View all changes and history on the product overview
2025
Sat 27 06:02 Tue 23 18:02 Sat 20 00:04 Fri 19 21:01 Thu 18 21:01 Wed 17 15:02 Tue 16 21:01 Mon 15 21:01 Sat 13 06:02 Fri 12 21:01 Thu 11 21:02 Wed 10 09:03 Tue 9 18:01 Mon 8 21:01 Sat 6 18:02 Fri 5 00:04 Thu 4 21:02 Wed 3 00:04 Tue 2 21:01 Mon 1 03:31

chrome.md +218 −0 created

Details

1# Use Claude Code with Chrome (beta)

2 

3> Connect Claude Code to your browser to test web apps, debug with console logs, and automate browser tasks.

4 

5<Note>

6 Chrome integration is in beta and currently works with Google Chrome only. Arc and Dia browsers are not yet supported. WSL (Windows Subsystem for Linux) is also not supported.

7</Note>

8 

9Claude Code integrates with the Claude in Chrome browser extension to give you browser automation capabilities directly from your terminal. Build in your terminal, then test and debug in your browser without switching contexts.

10 

11## What the integration enables

12 

13With Chrome connected, you can chain browser actions with terminal commands in a single workflow. For example: scrape documentation from a website, analyze it, generate code based on what you learned, and commit the result.

14 

15Key capabilities include:

16 

17* **Live debugging**: Claude reads console errors and DOM state directly, then fixes the code that caused them

18* **Design verification**: Build a UI from a Figma mock, then have Claude open it in the browser and verify it matches

19* **Web app testing**: Test form validation, check for visual regressions, or verify user flows work correctly

20* **Authenticated web apps**: Interact with Google Docs, Gmail, Notion, or any app you're logged into without needing API connectors

21* **Data extraction**: Pull structured information from web pages and save it locally

22* **Task automation**: Automate repetitive browser tasks like data entry, form filling, or multi-site workflows

23* **Session recording**: Record browser interactions as GIFs to document or share what happened

24 

25## Prerequisites

26 

27Before using Claude Code with Chrome, you need:

28 

29* [Google Chrome](https://www.google.com/chrome/) browser

30* [Claude in Chrome extension](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) installed

31* [Claude Code CLI](/en/quickstart#step-1:-install-claude-code) installed

32* A paid Claude plan (Pro, Team, or Enterprise)

33 

34## How the integration works

35 

36Claude Code communicates with Chrome through the Claude in Chrome browser extension. The extension uses Chrome's [Native Messaging API](https://developer.chrome.com/docs/extensions/develop/concepts/native-messaging) to receive commands from Claude Code and execute them in your browser. This architecture lets Claude Code control browser tabs, read page content, and perform actions while you continue working in your terminal.

37 

38When Claude encounters a login page, CAPTCHA, or other blocker, it pauses and asks you to handle it. You can provide credentials for Claude to enter, or log in manually in the browser. Once you're past the blocker, tell Claude to continue and it picks up where it left off.

39 

40Claude opens new tabs for browser tasks rather than taking over existing ones. However, it shares your browser's login state, so if you're already signed into a site in Chrome, Claude can access it without re-authenticating.

41 

42<Note>

43 The Chrome integration requires a visible browser window. When Claude performs browser actions, you'll see Chrome open and navigate in real time. There's no headless mode since the integration relies on your actual browser session with its login state.

44</Note>

45 

46## Set up the integration

47 

48<Steps>

49 <Step title="Update Claude Code">

50 Chrome integration requires a recent version of Claude Code. If you installed using the [native installer](/en/quickstart#step-1:-install-claude-code), updates happen automatically. Otherwise, run:

51 

52 ```bash theme={null}

53 claude update

54 ```

55 </Step>

56 

57 <Step title="Start Claude Code with Chrome enabled">

58 Launch Claude Code with the `--chrome` flag:

59 

60 ```bash theme={null}

61 claude --chrome

62 ```

63 </Step>

64 

65 <Step title="Verify the connection">

66 Run `/chrome` to check the connection status and manage settings. If the extension isn't detected, you'll see a warning with a link to install it.

67 </Step>

68</Steps>

69 

70You can also enable Chrome integration from within an existing session using the `/chrome` slash command.

71 

72## Try it out

73 

74Once connected, type this into Claude to see the integration in action:

75 

76```

77Go to code.claude.com/docs, click on the search box,

78type "hooks", and tell me what results appear

79```

80 

81Claude opens the page, clicks into the search field, types the query, and reports the autocomplete results. This shows navigation, clicking, and typing in a single workflow.

82 

83## Example workflows

84 

85Claude can navigate pages, click and type, fill forms, scroll, read console logs and network requests, manage tabs, resize windows, and record GIFs. Run `/mcp` and click into `claude-in-chrome` to see the full list of available tools.

86 

87The following examples show common patterns for browser automation.

88 

89### Test a local web application

90 

91When developing a web app, ask Claude to verify your changes work correctly:

92 

93```

94I just updated the login form validation. Can you open localhost:3000,

95try submitting the form with invalid data, and check if the error

96messages appear correctly?

97```

98 

99Claude navigates to your local server, interacts with the form, and reports what it observes.

100 

101### Debug with console logs

102 

103If your app has issues, Claude can read console output to help diagnose problems:

104 

105```

106Open the dashboard page and check the console for any errors when

107the page loads.

108```

109 

110Claude reads the console messages and can filter for specific patterns or error types.

111 

112### Automate form filling

113 

114Speed up repetitive data entry tasks:

115 

116```

117I have a spreadsheet of customer contacts in contacts.csv. For each row,

118go to our CRM at crm.example.com, click "Add Contact", and fill in the

119name, email, and phone fields.

120```

121 

122Claude reads your local file, navigates the web interface, and enters the data for each record.

123 

124### Draft content in Google Docs

125 

126Use Claude to write directly in your documents without API setup:

127 

128```

129Draft a project update based on our recent commits and add it to my

130Google Doc at docs.google.com/document/d/abc123

131```

132 

133Claude opens the document, clicks into the editor, and types the content. This works with any web app you're logged into: Gmail, Notion, Sheets, and more.

134 

135### Extract data from web pages

136 

137Pull structured information from websites:

138 

139```

140Go to the product listings page and extract the name, price, and

141availability for each item. Save the results as a CSV file.

142```

143 

144Claude navigates to the page, reads the content, and compiles the data into a structured format.

145 

146### Run multi-site workflows

147 

148Coordinate tasks across multiple websites:

149 

150```

151Check my calendar for meetings tomorrow, then for each meeting with

152an external attendee, look up their company on LinkedIn and add a

153note about what they do.

154```

155 

156Claude works across tabs to gather information and complete the workflow.

157 

158### Record a demo GIF

159 

160Create shareable recordings of browser interactions:

161 

162```

163Record a GIF showing how to complete the checkout flow, from adding

164an item to the cart through to the confirmation page.

165```

166 

167Claude records the interaction sequence and saves it as a GIF file.

168 

169## Best practices

170 

171When using browser automation, keep these guidelines in mind:

172 

173* **Modal dialogs can interrupt the flow**: JavaScript alerts, confirms, and prompts block browser events and prevent Claude from receiving commands. If a dialog appears, dismiss it manually and tell Claude to continue.

174* **Use fresh tabs**: Claude creates new tabs for each session. If a tab becomes unresponsive, ask Claude to create a new one.

175* **Filter console output**: Console logs can be verbose. When debugging, tell Claude what patterns to look for rather than asking for all console output.

176 

177## Troubleshooting

178 

179### Extension not detected

180 

181If Claude Code shows "Chrome extension not detected":

182 

1831. Verify the extension is installed in Chrome

1842. Check that Chrome is running

1853. Run `/chrome` and select "Reconnect extension" to re-establish the connection

186 

187### Browser not responding

188 

189If Claude's browser commands stop working:

190 

1911. Check if a modal dialog (alert, confirm, prompt) is blocking the page

1922. Ask Claude to create a new tab and try again

1933. Restart the Chrome extension by disabling and re-enabling it

194 

195### First-time setup

196 

197The first time you use the integration, Claude Code installs a native messaging host that allows communication between the CLI and Chrome. If you encounter permission errors, you may need to restart Chrome for the installation to take effect.

198 

199## Enable by default

200 

201Chrome integration requires the `--chrome` flag each time you start Claude Code. To enable it by default, run `/chrome` and select "Enabled by default".

202 

203<Note>

204 Enabling Chrome by default increases context usage since browser tools are always loaded. If you notice increased context consumption, disable this setting and use `--chrome` only when needed.

205</Note>

206 

207Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on. Run `/chrome` to see current permission settings.

208 

209## See also

210 

211* [CLI reference](/en/cli-reference) - Command-line flags including `--chrome`

212* [Common workflows](/en/common-workflows) - More ways to use Claude Code

213* [Getting started with Claude for Chrome](https://support.anthropic.com/en/articles/12012173-getting-started-with-claude-for-chrome) - Full documentation for the Chrome extension, including shortcuts, scheduling, and permissions

214 

215 

216---

217 

218> To find navigation and other pages in this documentation, fetch the llms.txt file at: https://code.claude.com/docs/llms.txt

Details

28| `--allowedTools` | Tools that execute without prompting for permission. To restrict which tools are available, use `--tools` instead | `"Bash(git log:*)" "Bash(git diff:*)" "Read"` |28| `--allowedTools` | Tools that execute without prompting for permission. To restrict which tools are available, use `--tools` instead | `"Bash(git log:*)" "Bash(git diff:*)" "Read"` |

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

30| `--betas` | Beta headers to include in API requests (API key users only) | `claude --betas interleaved-thinking` |30| `--betas` | Beta headers to include in API requests (API key users only) | `claude --betas interleaved-thinking` |

31| `--chrome` | Enable [Chrome browser integration](/en/chrome) for web automation and testing | `claude --chrome` |

31| `--continue`, `-c` | Load the most recent conversation in the current directory | `claude --continue` |32| `--continue`, `-c` | Load the most recent conversation in the current directory | `claude --continue` |

32| `--dangerously-skip-permissions` | Skip permission prompts (use with caution) | `claude --dangerously-skip-permissions` |33| `--dangerously-skip-permissions` | Skip permission prompts (use with caution) | `claude --dangerously-skip-permissions` |

33| `--debug` | Enable debug mode with optional category filtering (for example, `"api,hooks"` or `"!statsig,!file"`) | `claude --debug "api,mcp"` |34| `--debug` | Enable debug mode with optional category filtering (for example, `"api,hooks"` or `"!statsig,!file"`) | `claude --debug "api,mcp"` |


41| `--max-turns` | Limit the number of agentic turns in non-interactive mode | `claude -p --max-turns 3 "query"` |42| `--max-turns` | Limit the number of agentic turns in non-interactive mode | `claude -p --max-turns 3 "query"` |

42| `--mcp-config` | Load MCP servers from JSON files or strings (space-separated) | `claude --mcp-config ./mcp.json` |43| `--mcp-config` | Load MCP servers from JSON files or strings (space-separated) | `claude --mcp-config ./mcp.json` |

43| `--model` | Sets the model for the current session with an alias for the latest model (`sonnet` or `opus`) or a model's full name | `claude --model claude-sonnet-4-5-20250929` |44| `--model` | Sets the model for the current session with an alias for the latest model (`sonnet` or `opus`) or a model's full name | `claude --model claude-sonnet-4-5-20250929` |

45| `--no-chrome` | Disable [Chrome browser integration](/en/chrome) for this session | `claude --no-chrome` |

44| `--output-format` | Specify output format for print mode (options: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |46| `--output-format` | Specify output format for print mode (options: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

45| `--permission-mode` | Begin in a specified [permission mode](/en/iam#permission-modes) | `claude --permission-mode plan` |47| `--permission-mode` | Begin in a specified [permission mode](/en/iam#permission-modes) | `claude --permission-mode plan` |

46| `--permission-prompt-tool` | Specify an MCP tool to handle permission prompts in non-interactive mode | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |48| `--permission-prompt-tool` | Specify an MCP tool to handle permission prompts in non-interactive mode | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |


133 135 

134## See also136## See also

135 137 

138* [Chrome extension](/en/chrome) - Browser automation and web testing

136* [Interactive mode](/en/interactive-mode) - Shortcuts, input modes, and interactive features139* [Interactive mode](/en/interactive-mode) - Shortcuts, input modes, and interactive features

137* [Slash commands](/en/slash-commands) - Interactive session commands140* [Slash commands](/en/slash-commands) - Interactive session commands

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

hooks.md +4 −0

Details

15* `.claude/settings.local.json` - Local project settings (not committed)15* `.claude/settings.local.json` - Local project settings (not committed)

16* Enterprise managed policy settings16* Enterprise managed policy settings

17 17 

18<Note>

19 Enterprise administrators can use `allowManagedHooksOnly` to block user, project, and plugin hooks. See [Hook configuration](/en/settings#hook-configuration).

20</Note>

21 

18### Structure22### Structure

19 23 

20Hooks are organized by matchers, where each matcher can have multiple hooks:24Hooks are organized by matchers, where each matcher can have multiple hooks:

iam.md +1 −14

Details

147**MCP**147**MCP**

148 148 

149* `mcp__puppeteer` Matches any tool provided by the `puppeteer` server (name configured in Claude Code)149* `mcp__puppeteer` Matches any tool provided by the `puppeteer` server (name configured in Claude Code)

150* `mcp__puppeteer__*` Wildcard syntax that also matches all tools from the `puppeteer` server

150* `mcp__puppeteer__puppeteer_navigate` Matches the `puppeteer_navigate` tool provided by the `puppeteer` server151* `mcp__puppeteer__puppeteer_navigate` Matches the `puppeteer_navigate` tool provided by the `puppeteer` server

151 152 

152<Warning>

153 Unlike other permission types, MCP permissions do NOT support wildcards (`*`).

154 

155 To approve all tools from an MCP server:

156 

157 * ✅ Use: `mcp__github` (approves ALL GitHub tools)

158 * ❌ Don't use: `mcp__github__*` (wildcards are not supported)

159 

160 To approve specific tools only, list each one:

161 

162 * ✅ Use: `mcp__github__get_issue`

163 * ✅ Use: `mcp__github__list_issues`

164</Warning>

165 

166### Additional permission control with hooks153### Additional permission control with hooks

167 154 

168[Claude Code hooks](/en/hooks-guide) provide a way to register custom shell commands to perform permission evaluation at runtime. When Claude Code makes a tool call, PreToolUse hooks run before the permission system runs, and the hook output can determine whether to approve or deny the tool call in place of the permission system.155[Claude Code hooks](/en/hooks-guide) provide a way to register custom shell commands to perform permission evaluation at runtime. When Claude Code makes a tool call, PreToolUse hooks run before the permission system runs, and the hook output can determine whether to approve or deny the tool call in place of the permission system.

mcp.md +9 −1

Details

841 841 

842### Setting up enterprise MCP configuration842### Setting up enterprise MCP configuration

843 843 

844System administrators can deploy an enterprise MCP configuration file alongside the managed settings file. See [settings files](/en/settings#settings-files) for the `managed-mcp.json` file locations on each platform.844System administrators deploy an enterprise MCP configuration file to a system-wide directory:

845 

846* macOS: `/Library/Application Support/ClaudeCode/managed-mcp.json`

847* Linux and WSL: `/etc/claude-code/managed-mcp.json`

848* Windows: `C:\Program Files\ClaudeCode\managed-mcp.json`

849 

850<Note>

851 These are system-wide paths (not user home directories like `~/Library/...`) that require administrator privileges. They are designed to be deployed by IT administrators.

852</Note>

845 853 

846The `managed-mcp.json` file uses the same format as a standard `.mcp.json` file:854The `managed-mcp.json` file uses the same format as a standard `.mcp.json` file:

847 855 

Details

67### Common configuration variables67### Common configuration variables

68 68 

69| Environment Variable | Description | Example Values |69| Environment Variable | Description | Example Values |

70| ----------------------------------------------- | --------------------------------------------------------- | ------------------------------------ |70| ----------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------ |

71| `CLAUDE_CODE_ENABLE_TELEMETRY` | Enables telemetry collection (required) | `1` |71| `CLAUDE_CODE_ENABLE_TELEMETRY` | Enables telemetry collection (required) | `1` |

72| `OTEL_METRICS_EXPORTER` | Metrics exporter type(s) (comma-separated) | `console`, `otlp`, `prometheus` |72| `OTEL_METRICS_EXPORTER` | Metrics exporter type(s) (comma-separated) | `console`, `otlp`, `prometheus` |

73| `OTEL_LOGS_EXPORTER` | Logs/events exporter type(s) (comma-separated) | `console`, `otlp` |73| `OTEL_LOGS_EXPORTER` | Logs/events exporter type(s) (comma-separated) | `console`, `otlp` |


83| `OTEL_METRIC_EXPORT_INTERVAL` | Export interval in milliseconds (default: 60000) | `5000`, `60000` |83| `OTEL_METRIC_EXPORT_INTERVAL` | Export interval in milliseconds (default: 60000) | `5000`, `60000` |

84| `OTEL_LOGS_EXPORT_INTERVAL` | Logs export interval in milliseconds (default: 5000) | `1000`, `10000` |84| `OTEL_LOGS_EXPORT_INTERVAL` | Logs export interval in milliseconds (default: 5000) | `1000`, `10000` |

85| `OTEL_LOG_USER_PROMPTS` | Enable logging of user prompt content (default: disabled) | `1` to enable |85| `OTEL_LOG_USER_PROMPTS` | Enable logging of user prompt content (default: disabled) | `1` to enable |

86| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval for refreshing dynamic headers (default: 1740000ms / 29 minutes) | `900000` |

86 87 

87### Metrics cardinality control88### Metrics cardinality control

88 89 


120echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"121echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

121```122```

122 123 

123#### Important limitations124#### Refresh behavior

124 125 

125**Headers are fetched only at startup, not during runtime.** This is due to OpenTelemetry exporter architecture limitations.126The headers helper script runs at startup and periodically thereafter to support token refresh. By default, the script runs every 29 minutes. Customize the interval with the `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` environment variable.

126 

127For scenarios requiring frequent token refresh, use an OpenTelemetry Collector as a proxy that can refresh its own headers.

128 127 

129### Multi-team organization support128### Multi-team organization support

130 129 

settings.md +25 −1

Details

22 * Linux and WSL: `/etc/claude-code/`22 * Linux and WSL: `/etc/claude-code/`

23 * Windows: `C:\Program Files\ClaudeCode\`23 * Windows: `C:\Program Files\ClaudeCode\`

24 24 

25 <Note>

26 These are system-wide paths (not user home directories like `~/Library/...`) that require administrator privileges. They are designed to be deployed by IT administrators.

27 </Note>

28 

25 See [Enterprise managed settings](/en/iam#enterprise-managed-settings) and [Enterprise MCP configuration](/en/mcp#enterprise-mcp-configuration) for details.29 See [Enterprise managed settings](/en/iam#enterprise-managed-settings) and [Enterprise MCP configuration](/en/mcp#enterprise-mcp-configuration) for details.

26 30 

27 <Note>31 <Note>


72| `permissions` | See table below for structure of permissions. | |76| `permissions` | See table below for structure of permissions. | |

73| `hooks` | Configure custom commands to run before or after tool executions. See [hooks documentation](/en/hooks) | `{"PreToolUse": {"Bash": "echo 'Running command...'"}}` |77| `hooks` | Configure custom commands to run before or after tool executions. See [hooks documentation](/en/hooks) | `{"PreToolUse": {"Bash": "echo 'Running command...'"}}` |

74| `disableAllHooks` | Disable all [hooks](/en/hooks) | `true` |78| `disableAllHooks` | Disable all [hooks](/en/hooks) | `true` |

79| `allowManagedHooksOnly` | (Enterprise) Prevent loading of user, project, and plugin hooks. Only allows managed hooks and SDK hooks. See [Hook configuration](#hook-configuration) | `true` |

75| `model` | Override the default model to use for Claude Code | `"claude-sonnet-4-5-20250929"` |80| `model` | Override the default model to use for Claude Code | `"claude-sonnet-4-5-20250929"` |

81| `otelHeadersHelper` | Script to generate dynamic OpenTelemetry headers. Runs at startup and periodically (see [Dynamic headers](/en/monitoring-usage#dynamic-headers)) | `/bin/generate_otel_headers.sh` |

76| `statusLine` | Configure a custom status line to display context. See [`statusLine` documentation](/en/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |82| `statusLine` | Configure a custom status line to display context. See [`statusLine` documentation](/en/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

77| `fileSuggestion` | Configure a custom script for `@` file autocomplete. See [File suggestion settings](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |83| `fileSuggestion` | Configure a custom script for `@` file autocomplete. See [File suggestion settings](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

78| `outputStyle` | Configure an output style to adjust the system prompt. See [output styles documentation](/en/output-styles) | `"Explanatory"` |84| `outputStyle` | Configure an output style to adjust the system prompt. See [output styles documentation](/en/output-styles) | `"Explanatory"` |


224your-repo-file-index --query "$query" | head -20230your-repo-file-index --query "$query" | head -20

225```231```

226 232 

233### Hook configuration

234 

235**Enterprise-only setting**: Controls which hooks are allowed to run. This setting can only be configured in [managed settings](#settings-files) and provides enterprise administrators with strict control over hook execution.

236 

237**Behavior when `allowManagedHooksOnly` is `true`:**

238 

239* Managed hooks and SDK hooks are loaded

240* User hooks, project hooks, and plugin hooks are blocked

241 

242**Configuration:**

243 

244```json theme={null}

245{

246 "allowManagedHooksOnly": true

247}

248```

249 

227### Settings precedence250### Settings precedence

228 251 

229Settings apply in order of precedence. From highest to lowest:252Settings apply in order of precedence. From highest to lowest:


585</Note>608</Note>

586 609 

587| Variable | Purpose |610| Variable | Purpose |

588| :----------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |611| :-------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

589| `ANTHROPIC_API_KEY` | API key sent as `X-Api-Key` header, typically for the Claude SDK (for interactive usage, run `/login`) |612| `ANTHROPIC_API_KEY` | API key sent as `X-Api-Key` header, typically for the Claude SDK (for interactive usage, run `/login`) |

590| `ANTHROPIC_AUTH_TOKEN` | Custom value for the `Authorization` header (the value you set here will be prefixed with `Bearer `) |613| `ANTHROPIC_AUTH_TOKEN` | Custom value for the `Authorization` header (the value you set here will be prefixed with `Bearer `) |

591| `ANTHROPIC_CUSTOM_HEADERS` | Custom headers you want to add to the request (in `Name: Value` format) |614| `ANTHROPIC_CUSTOM_HEADERS` | Custom headers you want to add to the request (in `Name: Value` format) |


610| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Set to `1` to disable automatic terminal title updates based on conversation context |633| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Set to `1` to disable automatic terminal title updates based on conversation context |

611| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Skip auto-installation of IDE extensions |634| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Skip auto-installation of IDE extensions |

612| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Set the maximum number of output tokens for most requests |635| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Set the maximum number of output tokens for most requests |

636| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval for refreshing dynamic OpenTelemetry headers in milliseconds (default: 1740000 / 29 minutes). See [Dynamic headers](/en/monitoring-usage#dynamic-headers) |

613| `CLAUDE_CODE_SHELL_PREFIX` | Command prefix to wrap all bash commands (for example, for logging or auditing). Example: `/path/to/logger.sh` will execute `/path/to/logger.sh <command>` |637| `CLAUDE_CODE_SHELL_PREFIX` | Command prefix to wrap all bash commands (for example, for logging or auditing). Example: `/path/to/logger.sh` will execute `/path/to/logger.sh <command>` |

614| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Skip AWS authentication for Bedrock (for example, when using an LLM gateway) |638| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Skip AWS authentication for Bedrock (for example, when using an LLM gateway) |

615| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Skip Azure authentication for Microsoft Foundry (for example, when using an LLM gateway) |639| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Skip Azure authentication for Microsoft Foundry (for example, when using an LLM gateway) |

Details

333 333 

334### MCP permissions and wildcards334### MCP permissions and wildcards

335 335 

336Wildcards aren't supported in [permissions for MCP tools](/en/iam#tool-specific-permission-rules).336To approve all tools from an MCP server, use either the server name alone or wildcard syntax:

337 

338To approve all tools from an MCP server, use the server name alone, without wildcards:

339 337 

340* `mcp__github` (approves all GitHub tools)338* `mcp__github` (approves all GitHub tools)

339* `mcp__github__*` (wildcard syntax, also approves all GitHub tools)

341 340 

342To approve specific tools, list each one explicitly:341To approve specific tools, list each one explicitly:

343 342 

344* `mcp__github__get_issue`343* `mcp__github__get_issue`

345* `mcp__github__list_issues`344* `mcp__github__list_issues`

346 345 

346See [MCP permission rules](/en/iam#tool-specific-permission-rules) for more details.

347 

347## `SlashCommand` tool348## `SlashCommand` tool

348 349 

349The `SlashCommand` tool allows Claude to execute [custom slash commands](/en/slash-commands#custom-slash-commands) programmatically350The `SlashCommand` tool allows Claude to execute [custom slash commands](/en/slash-commands#custom-slash-commands) programmatically

vs-code.md +5 −1

Details

76You can also open VS Code settings (`Cmd+,` on Mac or `Ctrl+,` on Windows/Linux), go to Extensions → Claude Code, and check **Use Terminal**.76You can also open VS Code settings (`Cmd+,` on Mac or `Ctrl+,` on Windows/Linux), go to Extensions → Claude Code, and check **Use Terminal**.

77 77 

78<Note>78<Note>

79 In terminal mode, the Activity Bar icon (left vertical menu) still opens the graphical panel, while the Editor Toolbar icon (top-right of editor) opens terminal mode. You can use both entry points to switch between interfaces without changing settings.79 In terminal mode, the Activity Bar icon (left vertical menu) won't persist between sessions. If you want the Spark icon to always appear in the Activity Bar, keep this setting disabled and use the Editor Toolbar icon (top-right of editor) to access terminal mode instead.

80</Note>80</Note>

81 81 

82## VS Code commands and shortcuts82## VS Code commands and shortcuts


2036. **Check workspace trust**: The extension doesn't work in Restricted Mode2036. **Check workspace trust**: The extension doesn't work in Restricted Mode

2047. **Use the Command Palette**: Open with `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux), then type "Claude Code: Open in Side Bar"2047. **Use the Command Palette**: Open with `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux), then type "Claude Code: Open in Side Bar"

205 205 

206### Spark icon doesn't stay in the Activity Bar

207 

208If the Spark icon appears in the Activity Bar when you open the sidebar but doesn't persist after you close VS Code, check that the [Use Terminal setting](vscode://settings/claudeCode.useTerminal) is disabled. When terminal mode is enabled, the Activity Bar icon won't persist between sessions.

209 

206### Claude Code never responds210### Claude Code never responds

207 211 

208If Claude Code isn't responding to your prompts:212If Claude Code isn't responding to your prompts: