Semantic indexing, recorded
An indexed docset can be asked a question two ways, and the two ways fail in
opposite directions. Ask for CLAUDE_CODE_SYNC_SKILLS and BM25 has
the literal string while the embedding of a lone identifier is a weak vector.
Ask “which hook events fire once per turn” and the embedding knows what you
mean while BM25 matches on hook and events everywhere.
Below, 11 questions — 5 exact-token probes and
6 paraphrases from the golden set — are run all three ways so the
trade is visible rather than asserted.
This is a recording
Every hit and every timing on this page was recorded on 2026-08-31
and committed as src/data/demo.json. The page runs no query: there
is no backend behind it, and there will not be one until the API lands. What
you are reading is what codeclaudecom__codeclaudecom__facts answered that day —
the facts layer, 5 hits per leg, embedded with
mxbai-embed-large against http://localhost:11434 on one laptop.
Timings are one run on one machine: treat the ratio between the legs
as the finding and the absolute milliseconds as weather. The first question in
the run also pays the one-off cost of opening the connection to the embedding
host, which is why its vector leg is several times the rest; it is marked
below. Bracketed
[tokens] in a keyword snippet are FTS5 marking what it matched.
To run the same questions against your own docset, see the reference for the commands, and the essay for what the two legs are doing and why the fusion is the default.
The three legs
CLAUDE_CODE_SYNC_SKILLS exact-token
keyword0.589 ms · vector124.62 ms · hybrid125.227 ms — first query in the run: the vector leg carries the one-off connection cost, not retrieval
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/env-vars#variables 15.2433
… Timeout in milliseconds for a mid-session skills resync when `[CLAUDE_CODE_SYNC_SKILLS]` is set (default: 30000). Bounds the download triggered when the …
- code.claude.com/docs/en/env-vars#variables 14.6435
… Timeout in milliseconds for the first query to wait for the initial skill list when `[CLAUDE_CODE_SYNC_SKILLS]` is set (default: 5000). When …
- code.claude.com/docs/en/env-vars#variables 14.3358
… Before it runs the first query, Claude Code waits up to `[CLAUDE_CODE_SYNC_SKILLS]_WAIT_TIMEOUT_MS` for the list of your skills …
- code.claude.com/docs/en/skills#where-synced-skills-load 13.9274
Run Claude Code in non-interactive mode with syncing turned on [CLAUDE_CODE_SYNC_SKILLS]=1 claude -p "List the skills you have available"
- code.claude.com/docs/en/skills#where-synced-skills-load 13.2941
Confirm the skills load in a local session — Start an interactive session, without `[CLAUDE_CODE_SYNC_SKILLS]` set, and run `/skills`. The menu lists …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/env-vars#variables 0.8613
`CLAUDE_CODE_SYNC_SKILLS`: Set to `1` to download your enabled claude.ai skills into `~/.claude/skills/synced/` and resync every 10 minutes. Before it runs the first query, Claude Code waits up to `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` for the list of your skills. The downloads themselves finish
- code.claude.com/docs/en/skills#where-synced-skills-load 0.8287
Run Claude Code in non-interactive mode with syncing turned on CLAUDE_CODE_SYNC_SKILLS=1 claude -p "List the skills you have available"
- code.claude.com/docs/en/changelog 0.8152
2.0.20: * Added support for Claude Skills
- code.claude.com/docs/en/skills#using-skill-frontmatter-outside-claude-code 0.7987
Claude Code skills at [any level](#where-skills-live), including [plugin](/docs/en/plugins) skills: Every field in the table above
- code.claude.com/docs/en/skills#where-synced-skills-load 0.7958
Run Claude Code in non-interactive mode with syncing turned on — Claude Code downloads synced skills only when you run it in [non-interactive mode](/docs/en/headless) with the `-p` flag and set [`CLAUDE_CODE_SYNC_SKILLS`](/docs/en/env-vars#variables) to `1`. The prompt you pass doesn't affect the do
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/env-vars#variables 0.03226 · 2 legs
`CLAUDE_CODE_SYNC_SKILLS`: Set to `1` to download your enabled claude.ai skills into `~/.claude/skills/synced/` and resync every 10 minutes. Before it runs the first query, Claude Code waits up to `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` for the list of your skills. The downloads themselves finish
- code.claude.com/docs/en/skills#where-synced-skills-load 0.03175 · 2 legs
Run Claude Code in non-interactive mode with syncing turned on CLAUDE_CODE_SYNC_SKILLS=1 claude -p "List the skills you have available"
- code.claude.com/docs/en/env-vars#variables 0.01639 · 1 leg
… Timeout in milliseconds for a mid-session skills resync when `[CLAUDE_CODE_SYNC_SKILLS]` is set (default: 30000). Bounds the download triggered when the …
- code.claude.com/docs/en/env-vars#variables 0.01613 · 1 leg
… Timeout in milliseconds for the first query to wait for the initial skill list when `[CLAUDE_CODE_SYNC_SKILLS]` is set (default: 5000). When …
- code.claude.com/docs/en/changelog 0.01587 · 1 leg
2.0.20: * Added support for Claude Skills
allowUnsandboxedCommands exact-token
keyword0.206 ms · vector18.372 ms · hybrid18.595 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/settings-reference#all-settings 15.0148
[`sandbox.[allowUnsandboxedCommands]`](#sandbox-[allowunsandboxedcommands]): Description=Let Claude retry a blocked command outside the [sandbox](/docs/en/sandboxing#the-unsandboxed-retry-escape-hatch), or forbid …
- code.claude.com/docs/en/settings-reference#sandboxallowunsandboxedcommands 14.2481
managed-settings.json { "sandbox": { "enabled": true, "[allowUnsandboxedCommands]": false } }
- code.claude.com/docs/en/sandboxing#enforce-sandboxing-with-managed-settings 13.8258
Enforce sandboxing with managed settings { "sandbox": { "enabled": true, "failIfUnavailable": true, "[allowUnsandboxedCommands]": false } }
- code.claude.com/docs/en/settings-reference#sandboxallowunsandboxedcommands 13.144
`sandbox.[allowUnsandboxedCommands]` — Let Claude retry a command outside the sandbox with the `dangerouslyDisableSandbox` parameter after the sandbox blocks it.
- code.claude.com/docs/en/agent-sdk/python#sandboxsettings 12.9614
`SandboxSettings` class SandboxSettings(TypedDict, total=False): enabled: bool autoAllowBashIfSandboxed: bool excludedCommands: list[str] [allowUnsandboxedCommands]: bool network: SandboxNetworkConfig ignoreViolations: SandboxIgnoreViolations enableWeakerNestedSandbox: bo
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/agent-sdk/python#permissions-fallback-for-unsandboxed-commands 0.8232
Permissions Fallback for Unsandboxed Commands — When `allowUnsandboxedCommands` is enabled, the model can request to run commands outside the sandbox by setting `dangerouslyDisableSandbox: True` in the tool input.
- code.claude.com/docs/en/agent-sdk/typescript#permissions-fallback-for-unsandboxed-commands 0.8232
Permissions Fallback for Unsandboxed Commands — When `allowUnsandboxedCommands` is enabled, the model can request to run commands outside the sandbox by setting `dangerouslyDisableSandbox: true` in the tool input.
- code.claude.com/docs/en/settings-reference#sandboxallowunsandboxedcommands 0.8184
`sandbox.allowUnsandboxedCommands` — Let Claude retry a command outside the sandbox with the `dangerouslyDisableSandbox` parameter after the sandbox blocks it.
- code.claude.com/docs/en/agent-sdk/python#sandboxsettings 0.8143
`allowUnsandboxedCommands`: Type=`bool`; Default=`True`; Description=Allow the model to request running commands outside the sandbox. When `True`, the model can set `dangerouslyDisableSandbox` in tool input, which falls back to the [permissions system](#permissions-fallback-for-unsandboxed-commands)
- code.claude.com/docs/en/agent-sdk/typescript#sandboxsettings 0.8103
`allowUnsandboxedCommands`: Type=`boolean`; Default=`true`; Description=Allow the model to request running commands outside the sandbox. When `true`, the model can set `dangerouslyDisableSandbox` in tool input, which falls back to the [permissions system](#permissions-fallback-for-unsandboxed-comman
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/settings-reference#sandboxallowunsandboxedcommands 0.03149 · 2 legs
`sandbox.allowUnsandboxedCommands` — Let Claude retry a command outside the sandbox with the `dangerouslyDisableSandbox` parameter after the sandbox blocks it.
- code.claude.com/docs/en/agent-sdk/python#permissions-fallback-for-unsandboxed-commands 0.01639 · 1 leg
Permissions Fallback for Unsandboxed Commands — When `allowUnsandboxedCommands` is enabled, the model can request to run commands outside the sandbox by setting `dangerouslyDisableSandbox: True` in the tool input.
- code.claude.com/docs/en/settings-reference#all-settings 0.01639 · 1 leg
[`sandbox.[allowUnsandboxedCommands]`](#sandbox-[allowunsandboxedcommands]): Description=Let Claude retry a blocked command outside the [sandbox](/docs/en/sandboxing#the-unsandboxed-retry-escape-hatch), or forbid …
- code.claude.com/docs/en/agent-sdk/typescript#permissions-fallback-for-unsandboxed-commands 0.01613 · 1 leg
Permissions Fallback for Unsandboxed Commands — When `allowUnsandboxedCommands` is enabled, the model can request to run commands outside the sandbox by setting `dangerouslyDisableSandbox: true` in the tool input.
- code.claude.com/docs/en/settings-reference#sandboxallowunsandboxedcommands 0.01613 · 1 leg
managed-settings.json { "sandbox": { "enabled": true, "[allowUnsandboxedCommands]": false } }
--append-system-prompt exact-token
keyword0.431 ms · vector15.217 ms · hybrid15.663 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/headless#start-faster-with-bare-mode 17.113
System prompt additions: `--[append-system-prompt]`, `--[append-system-prompt]-file`
- code.claude.com/docs/en/cli-reference#system-prompt-flags 16.6022
`--[append-system-prompt]`: Behavior=Appends to the default prompt; Example=`claude --[append-system-prompt] "Always use TypeScript"`
- code.claude.com/docs/en/cli-reference#system-prompt-flags 16.3238
`--[append-system-prompt]-file`: Behavior=Appends file contents to the default prompt; Example=`claude --[append-system-prompt]-file ./style-rules.txt`
- code.claude.com/docs/en/cli-reference#cli-flags 16.1881
`--[append-system-prompt]`: Description=Append custom text to the end of the default system prompt; Example=`claude --[append-system-prompt] "Always use TypeScript"`
- code.claude.com/docs/en/cli-reference#cli-flags 15.8584
… Description=Load additional system prompt text from a file and append to the default prompt; Example=`claude --[append-system-prompt]-file ./extra-rules.txt`
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/headless#start-faster-with-bare-mode 0.9222
System prompt additions: `--append-system-prompt`, `--append-system-prompt-file`
- code.claude.com/docs/en/output-styles#comparisons-to-related-features 0.8855
`--append-system-prompt`: How it works=Appends to the system prompt without removing anything; Use it when=You want a one-off addition for a single invocation
- code.claude.com/docs/en/agent-sdk/python#systempromptpreset 0.8723
`append`: Required=No; Description=Additional instructions to append to the preset system prompt
- code.claude.com/docs/en/cli-reference#system-prompt-flags 0.8342
`--append-system-prompt-file`: Behavior=Appends file contents to the default prompt; Example=`claude --append-system-prompt-file ./style-rules.txt`
- code.claude.com/docs/en/cli-reference#cli-flags 0.8265
`--append-system-prompt-file`: Description=Load additional system prompt text from a file and append to the default prompt; Example=`claude --append-system-prompt-file ./extra-rules.txt`
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/headless#start-faster-with-bare-mode 0.03278 · 2 legs
System prompt additions: `--append-system-prompt`, `--append-system-prompt-file`
- code.claude.com/docs/en/cli-reference#system-prompt-flags 0.03149 · 2 legs
`--append-system-prompt-file`: Behavior=Appends file contents to the default prompt; Example=`claude --append-system-prompt-file ./style-rules.txt`
- code.claude.com/docs/en/cli-reference#cli-flags 0.03076 · 2 legs
`--append-system-prompt-file`: Description=Load additional system prompt text from a file and append to the default prompt; Example=`claude --append-system-prompt-file ./extra-rules.txt`
- code.claude.com/docs/en/output-styles#comparisons-to-related-features 0.01613 · 1 leg
`--append-system-prompt`: How it works=Appends to the system prompt without removing anything; Use it when=You want a one-off addition for a single invocation
- code.claude.com/docs/en/cli-reference#system-prompt-flags 0.01613 · 1 leg
`--[append-system-prompt]`: Behavior=Appends to the default prompt; Example=`claude --[append-system-prompt] "Always use TypeScript"`
extraKnownMarketplaces exact-token
keyword0.22 ms · vector14.932 ms · hybrid15.167 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/settings-reference#all-settings 14.4607
[`[extraKnownMarketplaces]`](#[extraknownmarketplaces]): Description=Register [marketplaces](/docs/en/plugin-marketplaces) for a repository or an organization; Topic=Plugins and skills; Scope=Any file
- code.claude.com/docs/en/permissions#additional-directories-grant-file-access-not-configuration 14.4006
[Settings](/docs/en/settings) in `.claude/settings.json` and `.claude/settings.local.json`: `enabledPlugins` and [`[extraKnownMarketplaces]`](/docs/en/settings-reference#[extraknownmarketplaces]) keys only
- code.claude.com/docs/en/settings-reference#combine-with-extraknownmarketplaces 13.2253
Purpose: `strictKnownMarketplaces`=Organizational policy enforcement; `[extraKnownMarketplaces]`=Team convenience
- code.claude.com/docs/en/github-enterprise-server#pre-register-ghes-marketplaces-with-managed-settings 13.1938
Pre-register GHES marketplaces with managed settings — The `[extraKnownMarketplaces]` setting pre-registers a marketplace so developers get it without manual setup. It works from …
- code.claude.com/docs/en/settings-reference#combine-with-extraknownmarketplaces 13.0264
Settings file: `strictKnownMarketplaces`=Managed settings only; `[extraKnownMarketplaces]`=Any settings file
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/discover-plugins#configure-team-marketplaces 0.7284
Add `extraKnownMarketplaces` to your project's `.claude/settings.json` to configure marketplaces.
- code.claude.com/docs/en/settings-reference#combine-with-extraknownmarketplaces 0.7272
Purpose: `strictKnownMarketplaces`=Organizational policy enforcement; `extraKnownMarketplaces`=Team convenience
- code.claude.com/docs/en/plugin-marketplaces#common-configurations 0.7182
Common configurations { "strictKnownMarketplaces": [] }
- code.claude.com/docs/en/settings-reference#extraknownmarketplaces 0.7123
`extraKnownMarketplaces` — Register additional plugin marketplaces by name, so that people who open the repository, or everyone your managed settings reach, get the marketplace without adding it themselves. Claude Code registers each marketplace it doesn't already know.
- code.claude.com/docs/en/settings-reference#combine-with-extraknownmarketplaces 0.7112
Can be overridden: `strictKnownMarketplaces`=No, highest precedence; `extraKnownMarketplaces`=Yes, by higher-precedence settings
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/settings-reference#combine-with-extraknownmarketplaces 0.032 · 2 legs
Purpose: `strictKnownMarketplaces`=Organizational policy enforcement; `extraKnownMarketplaces`=Team convenience
- code.claude.com/docs/en/discover-plugins#configure-team-marketplaces 0.01639 · 1 leg
Add `extraKnownMarketplaces` to your project's `.claude/settings.json` to configure marketplaces.
- code.claude.com/docs/en/settings-reference#all-settings 0.01639 · 1 leg
[`[extraKnownMarketplaces]`](#[extraknownmarketplaces]): Description=Register [marketplaces](/docs/en/plugin-marketplaces) for a repository or an organization; Topic=Plugins and skills; Scope=Any file
- code.claude.com/docs/en/permissions#additional-directories-grant-file-access-not-configuration 0.01613 · 1 leg
[Settings](/docs/en/settings) in `.claude/settings.json` and `.claude/settings.local.json`: `enabledPlugins` and [`[extraKnownMarketplaces]`](/docs/en/settings-reference#[extraknownmarketplaces]) keys only
- code.claude.com/docs/en/plugin-marketplaces#common-configurations 0.01587 · 1 leg
Common configurations { "strictKnownMarketplaces": [] }
--output-format stream-json exact-token
keyword1.05 ms · vector15.618 ms · hybrid16.683 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/cli-reference#cli-flags 26.2341
… Requires `--input-format [stream-json]` and `--[output-format] [stream-json]`; Example=`claude -p --input-format [stream-json] --[output-format] [stream-json] --verbose --replay-user …
- code.claude.com/docs/en/cli-reference#cli-flags 25.271
… Requires `--print` and `--[output-format] [stream-json]`; Example=`claude -p --[output-format] [stream-json] --verbose --include-partial-messages "query"`
- code.claude.com/docs/en/cli-reference#cli-flags 24.5159
`--[output-format]`: Description=Specify [output format] for print mode (options: `text`, `json`, `[stream-json]`); Example=`claude -p "query" --[output-format] json`
- code.claude.com/docs/en/cli-reference#cli-flags 23.8573
`--input-format`: Description=Specify input format for print mode (options: `text`, `[stream-json]`); Example=`claude -p --[output-format] json --input-format [stream-json]`
- code.claude.com/docs/en/cli-reference#cli-flags 23.1145
… Requires `--print`, `--[output-format] [stream-json]`, and `--verbose`. See [Prompt suggestions](/docs/en/interactive-mode#prompt-suggestions); Example=`claude -p --prompt-suggestions --[output-format] …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/plugin-marketplaces#plugin-marketplace-list 0.8144
`--json`: Output as JSON
- code.claude.com/docs/en/best-practices#automate-and-scale 0.797
The `stream-json` format prints one JSON object per line, starting with an init event.
- code.claude.com/docs/en/best-practices#automate-and-scale 0.7917
Use `claude -p "prompt" --output-format stream-json --verbose` to get streaming JSON output in scripts.
- code.claude.com/docs/en/headless#stream-responses 0.7826
Stream responses — Use `--output-format stream-json` with `--verbose` and `--include-partial-messages` to receive tokens as they're generated. Each line is a JSON object representing an event:
- code.claude.com/docs/en/plugins-reference#plugin-list 0.7794
`--json`: Description=Output as JSON
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/plugin-marketplaces#plugin-marketplace-list 0.01639 · 1 leg
`--json`: Output as JSON
- code.claude.com/docs/en/cli-reference#cli-flags 0.01639 · 1 leg
… Requires `--input-format [stream-json]` and `--[output-format] [stream-json]`; Example=`claude -p --input-format [stream-json] --[output-format] [stream-json] --verbose --replay-user …
- code.claude.com/docs/en/best-practices#automate-and-scale 0.01613 · 1 leg
The `stream-json` format prints one JSON object per line, starting with an init event.
- code.claude.com/docs/en/cli-reference#cli-flags 0.01613 · 1 leg
… Requires `--print` and `--[output-format] [stream-json]`; Example=`claude -p --[output-format] [stream-json] --verbose --include-partial-messages "query"`
- code.claude.com/docs/en/best-practices#automate-and-scale 0.01587 · 1 leg
Use `claude -p "prompt" --output-format stream-json --verbose` to get streaming JSON output in scripts.
Install Claude Code on Windows with PowerShell paraphrase
keyword30.13 ms · vector14.399 ms · hybrid44.544 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/troubleshoot-install#find-your-error 36.8708
`[Claude] [Code] [on] [Windows] requires either Git for [Windows] (for bash) or [PowerShell]`: [[Install] a shell](#[claude]-[code]-[on]-[windows]-requires-either-git-for …
- code.claude.com/docs/en/hooks#windows-powershell-tool 30.4832
[Windows] [PowerShell] tool — [On] [Windows], you can run individual hooks in [PowerShell] by setting `"shell": "[powershell]"` [on] a command hook. [Claude] [Code] auto-detects …
- code.claude.com/docs/en/troubleshoot-install#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell 30.2661
[Claude] [Code] [on] [Windows] requires either Git for [Windows] (for bash) or [PowerShell] — Git for [Windows] is optional. [Claude] [Code] uses the [[PowerShell] tool …
- code.claude.com/docs/en/troubleshoot-install#claude-code-does-not-support-32-bit-windows 29.125
[Claude] [Code] does not support 32-bit [Windows] — [Windows] includes two [PowerShell] entries in the Start menu: `[Windows] [PowerShell]` and `[Windows] [PowerShell] (x86)`. The …
- code.claude.com/docs/en/hooks#command-hook-fields 28.6428
… Setting `"[powershell]"` runs the command via [PowerShell] [on] [Windows]. Does not require `[CLAUDE]_[CODE]_USE_[POWERSHELL]_TOOL` since hooks spawn [PowerShell] directly. Ignored when …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/setup#install-claude-code 0.8539
Install Claude Code claude
- code.claude.com/docs/en/troubleshoot-install#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell 0.8342
Claude Code on Windows requires either Git for Windows (for bash) or PowerShell { "env": { "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe" } }
- code.claude.com/docs/en/troubleshoot-install#find-your-error 0.8327
`Claude Code on Windows requires either Git for Windows (for bash) or PowerShell`: [Install a shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell)
- code.claude.com/docs/en/troubleshoot-install#find-your-error 0.8291
`Claude Code does not support 32-bit Windows`: [Open Windows PowerShell, not the x86 entry](#claude-code-does-not-support-32-bit-windows)
- code.claude.com/docs/en/tools-reference#enable-the-powershell-tool 0.8246
Enable the PowerShell tool — Set `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` in your environment or in `settings.json`:
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/troubleshoot-install#find-your-error 0.03226 · 2 legs
`Claude Code on Windows requires either Git for Windows (for bash) or PowerShell`: [Install a shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell)
- code.claude.com/docs/en/setup#install-claude-code 0.01639 · 1 leg
Install Claude Code claude
- code.claude.com/docs/en/troubleshoot-install#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell 0.01613 · 1 leg
Claude Code on Windows requires either Git for Windows (for bash) or PowerShell { "env": { "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe" } }
- code.claude.com/docs/en/hooks#windows-powershell-tool 0.01613 · 1 leg
[Windows] [PowerShell] tool — [On] [Windows], you can run individual hooks in [PowerShell] by setting `"shell": "[powershell]"` [on] a command hook. [Claude] [Code] auto-detects …
- code.claude.com/docs/en/troubleshoot-install#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell 0.01587 · 1 leg
[Claude] [Code] [on] [Windows] requires either Git for [Windows] (for bash) or [PowerShell] — Git for [Windows] is optional. [Claude] [Code] uses the [[PowerShell] tool …
PreToolUse hook exit codes and meanings paraphrase
keyword28.329 ms · vector16.178 ms · hybrid44.522 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/hooks#debug-hooks 25.9754
Debug hooks — [Hook] execution details, including which hooks matched, their [exit] [codes], [and] full stdout [and] stderr, are written to the debug log file.
- code.claude.com/docs/en/hooks#http-response-handling 25.9542
HTTP response handling — HTTP hooks use HTTP status [codes] [and] response bodies instead of [exit] [codes] [and] stdout. The outcomes below apply to most …
- code.claude.com/docs/en/hooks#hooks-reference 25.5186
Hooks reference — Reference for Claude Code [hook] events, configuration schema, JSON input/output formats, [exit] [codes], async hooks, HTTP hooks, prompt hooks, [and] MCP …
- code.claude.com/docs/en/hooks#how-a-hook-resolves 23.8374
… rf'; then jq -n '{ hookSpecificOutput: { hookEventName: "[PreToolUse]", permissionDecision: "deny", permissionDecisionReason: "Destructive command blocked by [hook]" } }' else [exit] 0 # no decision; normal permission flow applies …
- code.claude.com/docs/en/hooks#hook-input-and-output 23.678
[Hook] input [and] output — Command hooks receive JSON data via stdin [and] communicate results through [exit] [codes], stdout, [and] stderr. HTTP hooks receive the …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event 0.7839
`PreToolUse`: Can block?=Yes; What happens on exit 2=Blocks the tool call
- code.claude.com/docs/en/hooks-guide#hook-error-in-output 0.7689
Hook error in output — You see a message like "PreToolUse hook error: ..." in the transcript.
- code.claude.com/docs/en/hooks#pretooluse-decision-control 0.7576
PreToolUse decision control { "hookSpecificOutput": { "hookEventName": "PreToolUse", "permissionDecision": "allow", "permissionDecisionReason": "My reason here", "updatedInput": { "field_to_modify": "new value" }, "additionalContext": "Current environment: production.
- code.claude.com/docs/en/hooks-guide#hook-error-in-output 0.757
Hook error in output echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh echo $? # Check the exit code
- code.claude.com/docs/en/agent-sdk/typescript#pretoolusehookinput 0.7509
`PreToolUseHookInput` type PreToolUseHookInput = BaseHookInput & { hook_event_name: "PreToolUse"; tool_name: string; tool_input: unknown; tool_use_id: string; };
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event 0.01639 · 1 leg
`PreToolUse`: Can block?=Yes; What happens on exit 2=Blocks the tool call
- code.claude.com/docs/en/hooks#debug-hooks 0.01639 · 1 leg
Debug hooks — [Hook] execution details, including which hooks matched, their [exit] [codes], [and] full stdout [and] stderr, are written to the debug log file.
- code.claude.com/docs/en/hooks-guide#hook-error-in-output 0.01613 · 1 leg
Hook error in output — You see a message like "PreToolUse hook error: ..." in the transcript.
- code.claude.com/docs/en/hooks#http-response-handling 0.01613 · 1 leg
HTTP response handling — HTTP hooks use HTTP status [codes] [and] response bodies instead of [exit] [codes] [and] stdout. The outcomes below apply to most …
- code.claude.com/docs/en/hooks#pretooluse-decision-control 0.01587 · 1 leg
PreToolUse decision control { "hookSpecificOutput": { "hookEventName": "PreToolUse", "permissionDecision": "allow", "permissionDecisionReason": "My reason here", "updatedInput": { "field_to_modify": "new value" }, "additionalContext": "Current environment: production.
Which hook events fire once per turn paraphrase
keyword15.045 ms · vector14.718 ms · hybrid29.777 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/agent-sdk/claude-code-features#when-to-use-which-hook-type 21.0056
… These also [fire] inside subagents. The [hook] input, the callback's first argument, carries `agent_id` and `agent_type` fields that identify [which] agent …
- code.claude.com/docs/en/self-hosted-environments-configuration#the-spawn-runner-hook 20.2445
The spawn-runner [hook] — The orchestrator runs `${hooks-dir}/spawn-runner` [once] [per] spawn request. The [hook] must submit work asynchronously, without waiting for …
- code.claude.com/docs/en/self-hosted-environments-configuration#checkout 18.6149
checkout — Runs [once] [per] repository, in place of the runner's built-in clone and fetch. Use the [hook] to clone from a read …
- code.claude.com/docs/en/agent-sdk/hooks#matchers 18.4834
Matchers — Use matchers to filter when your callbacks [fire]. The `matcher` field matches against a different value depending on the [hook] event type.
- code.claude.com/docs/en/self-hosted-environments-reference#session-lifecycle-counter-semantics 17.9307
… long-lived orchestrator that increments [once] [per] successful `spawn-runner` [hook] and stays meaningful under `rate()`. It counts [hook] invocations rather than sessions, so …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/goal#compare-ways-to-keep-a-session-running 0.7912
[Stop hook](/docs/en/hooks-guide#prompt-based-hooks): Next turn starts when=The previous turn finishes; Stops when=Your own script or prompt decides
- code.claude.com/docs/en/features-overview#context-cost-by-feature 0.7398
**Hooks**: When it loads=On trigger; What loads=Nothing (runs externally); Context cost=Zero, unless hook returns additional context
- code.claude.com/docs/en/features-overview#build-your-setup-over-time 0.728
You want something to happen every time without asking: Write a [hook](/docs/en/hooks-guide)
- code.claude.com/docs/en/env-vars#variables 0.7273
`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`: Maximum number of consecutive times a [Stop](/docs/en/hooks#stop) or [SubagentStop](/docs/en/hooks#subagentstop) hook may block the turn from ending before Claude Code overrides it and ends the turn anyway (default: 8). Set to `0` to disable the cap. Raise this if
- code.claude.com/docs/en/hooks-guide#how-hooks-work 0.7235
How hooks work — Claude Code fires hook events at specific points in its lifecycle. When an event fires, Claude Code runs all matching hooks in parallel; see [Hook handler fields](/docs/en/hooks#hook-handler-fields) for how duplicate handlers are treated.
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/goal#compare-ways-to-keep-a-session-running 0.01639 · 1 leg
[Stop hook](/docs/en/hooks-guide#prompt-based-hooks): Next turn starts when=The previous turn finishes; Stops when=Your own script or prompt decides
- code.claude.com/docs/en/agent-sdk/claude-code-features#when-to-use-which-hook-type 0.01639 · 1 leg
… These also [fire] inside subagents. The [hook] input, the callback's first argument, carries `agent_id` and `agent_type` fields that identify [which] agent …
- code.claude.com/docs/en/features-overview#context-cost-by-feature 0.01613 · 1 leg
**Hooks**: When it loads=On trigger; What loads=Nothing (runs externally); Context cost=Zero, unless hook returns additional context
- code.claude.com/docs/en/self-hosted-environments-configuration#the-spawn-runner-hook 0.01613 · 1 leg
The spawn-runner [hook] — The orchestrator runs `${hooks-dir}/spawn-runner` [once] [per] spawn request. The [hook] must submit work asynchronously, without waiting for …
- code.claude.com/docs/en/features-overview#build-your-setup-over-time 0.01587 · 1 leg
You want something to happen every time without asking: Write a [hook](/docs/en/hooks-guide)
Run headless in CI and get JSON output paraphrase
keyword40.475 ms · vector20.615 ms · hybrid61.102 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/best-practices#run-non-interactive-mode 22.8258
[Run] non-interactive mode — Use `claude -p "prompt"` [in] [CI], pre-commit hooks, or scripts. Add `--[output]-format stream-[json] --verbose` for streaming [JSON] …
- code.claude.com/docs/en/errors#the-json-schema-value-is-not-a-valid-json-schema 21.6752
… passed to [`--[json]-schema`](/docs/en/cli-reference#cli-flags) [in] [non-interactive mode](/docs/en/[headless]#[get]-structured-[output]) failed [JSON] Schema compilation …
- code.claude.com/docs/en/hooks#json-output 19.1133
… [In] [Agent SDK](/docs/en/agent-sdk/overview) [and] [`--[output]-format stream-[json]`](/docs/en/[headless]) [output], it can arrive as an [`SDKInformationalMessage`](/docs …
- code.claude.com/docs/en/errors#server-errors 17.1393
[In] a non-interactive `-p` [run] without `--input-format stream-[json]`, a safety block sent to a background subagent returns an error result containing …
- code.claude.com/docs/en/code-review#check-run-output 16.8109
Check [run] [output] — Beyond the inline review comments, each review populates the **Claude Code Review** check [run] that appears alongside your [CI] checks. Expand …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/best-practices#run-non-interactive-mode 0.7222
Run non-interactive mode — Use `claude -p "prompt"` in CI, pre-commit hooks, or scripts. Add `--output-format stream-json --verbose` for streaming JSON output.
- code.claude.com/docs/en/headless#get-structured-output 0.6815
Get structured output claude -p "Summarize this project" --output-format json
- code.claude.com/docs/en/plugin-marketplaces#plugin-marketplace-list 0.6757
`--json`: Output as JSON
- code.claude.com/docs/en/hooks#json-output 0.6752
JSON output { "continue": false, "stopReason": "Build failed, fix errors before continuing" }
- code.claude.com/docs/en/hooks-guide#structured-json-output 0.6703
Structured JSON output { "hookSpecificOutput": { "hookEventName": "UserPromptSubmit", "additionalContext": "Current branch: release-42. Deploy freeze until Friday." } }
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/best-practices#run-non-interactive-mode 0.03278 · 2 legs
Run non-interactive mode — Use `claude -p "prompt"` in CI, pre-commit hooks, or scripts. Add `--output-format stream-json --verbose` for streaming JSON output.
- code.claude.com/docs/en/headless#get-structured-output 0.01613 · 1 leg
Get structured output claude -p "Summarize this project" --output-format json
- code.claude.com/docs/en/errors#the-json-schema-value-is-not-a-valid-json-schema 0.01613 · 1 leg
… passed to [`--[json]-schema`](/docs/en/cli-reference#cli-flags) [in] [non-interactive mode](/docs/en/[headless]#[get]-structured-[output]) failed [JSON] Schema compilation …
- code.claude.com/docs/en/plugin-marketplaces#plugin-marketplace-list 0.01587 · 1 leg
`--json`: Output as JSON
- code.claude.com/docs/en/hooks#json-output 0.01587 · 1 leg
… [In] [Agent SDK](/docs/en/agent-sdk/overview) [and] [`--[output]-format stream-[json]`](/docs/en/[headless]) [output], it can arrive as an [`SDKInformationalMessage`](/docs …
SessionStart versus UserPromptSubmit paraphrase
keyword0.492 ms · vector17.233 ms · hybrid17.737 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/agent-sdk/typescript#hookevent 20.7941
`HookEvent` type HookEvent = | "PreToolUse" | "PostToolUse" | "PostToolUseFailure" | "PostToolBatch" | "Notification" | "[UserPromptSubmit]" | "UserPromptExpansion" | "[SessionStart]" | "SessionEnd" | "Stop" | "StopFailure" | "SubagentStart" | "SubagentStop" | "PreCompact
- code.claude.com/docs/en/hooks#userpromptsubmit-decision-control 14.1982
[UserPromptSubmit] decision control { "decision": "block", "reason": "Explanation for decision", "hookSpecificOutput": { "hookEventName": "[UserPromptSubmit]", "additionalContext": "My additional context here", "sessionTitle": "My session title" } }
- code.claude.com/docs/en/hooks#decision-control 14.0938
… [SessionStart] also accepts [`initialUserMessage`, `watchPaths`, `sessionTitle`, and `reloadSkills`](#[sessionstart]-decision-control). No blocking or decision control
- code.claude.com/docs/en/cloud-environments#setup-scripts-vs-sessionstart-hooks 13.5035
… Use a [[SessionStart] hook](/docs/en/hooks#[sessionstart]) for project setup that should run everywhere, cloud and local, like `npm install`.
- code.claude.com/docs/en/cloud-environments#install-dependencies-with-a-sessionstart-hook 13.4029
Install dependencies with a [SessionStart] hook { "hooks": { "[SessionStart]": [ { "matcher": "startup|resume", "hooks": [ { "type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/install_pkgs.sh" } ]
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/agent-sdk/agent-loop#hooks 0.7894
`UserPromptSubmit`: When it fires=When a prompt is sent; Common uses=Inject additional context into prompts
- code.claude.com/docs/en/hooks-guide#how-hooks-work 0.7621
`UserPromptSubmit`: When you submit a prompt, before Claude processes it
- code.claude.com/docs/en/hooks#hook-lifecycle 0.7621
`UserPromptSubmit`: When you submit a prompt, before Claude processes it
- code.claude.com/docs/en/plugins-reference#hooks 0.7621
`UserPromptSubmit`: When you submit a prompt, before Claude processes it
- code.claude.com/docs/en/hooks-guide#how-hooks-work 0.7608
`SessionStart`: When a session begins or resumes
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/agent-sdk/agent-loop#hooks 0.01639 · 1 leg
`UserPromptSubmit`: When it fires=When a prompt is sent; Common uses=Inject additional context into prompts
- code.claude.com/docs/en/agent-sdk/typescript#hookevent 0.01639 · 1 leg
`HookEvent` type HookEvent = | "PreToolUse" | "PostToolUse" | "PostToolUseFailure" | "PostToolBatch" | "Notification" | "[UserPromptSubmit]" | "UserPromptExpansion" | "[SessionStart]" | "SessionEnd" | "Stop" | "StopFailure" | "SubagentStart" | "SubagentStop" | "PreCompact
- code.claude.com/docs/en/hooks-guide#how-hooks-work 0.01613 · 1 leg
`UserPromptSubmit`: When you submit a prompt, before Claude processes it
- code.claude.com/docs/en/hooks#userpromptsubmit-decision-control 0.01613 · 1 leg
[UserPromptSubmit] decision control { "decision": "block", "reason": "Explanation for decision", "hookSpecificOutput": { "hookEventName": "[UserPromptSubmit]", "additionalContext": "My additional context here", "sessionTitle": "My session title" } }
- code.claude.com/docs/en/hooks#hook-lifecycle 0.01587 · 1 leg
`UserPromptSubmit`: When you submit a prompt, before Claude processes it
Check the installed version and update paraphrase
keyword44.91 ms · vector14.587 ms · hybrid59.509 ms
Keyword (BM25)
FTS5 over the same units. No model call.
- code.claude.com/docs/en/troubleshoot-install#check-for-conflicting-installations 18.7253
[Check] for conflicting installations — Multiple Claude Code installations can cause [version] mismatches or unexpected behavior. [Check] what's [installed]:
- code.claude.com/docs/en/plugins-reference#version-management 17.5075
… run `/plugin [update]` or auto-[update] fires, Claude Code computes [the] current [version] [and] skips [the] [update] if it matches what's already [installed].
- code.claude.com/docs/en/agent-view#how-background-sessions-are-hosted 16.6084
[The] supervisor watches [the] [installed] Claude Code binary on disk [and] restarts into [the] new [version] after an auto-[update] replaces it.
- code.claude.com/docs/en/self-hosted-environments-deploy#pin-the-version 15.5272
… binary, [and] [the] runner turns off auto-[update] inside [the] sessions it spawns, so every session runs [the] [version] you [installed] on [the] host …
- code.claude.com/docs/en/discover-plugins#configure-auto-updates 14.3137
Configure auto-updates — Claude Code can automatically [update] marketplaces [and] their [installed] plugins in [the] background after startup. When auto-[update] is enabled for …
Vector
The question embedded, cosine against every unit.
- code.claude.com/docs/en/costs#understanding-changes-in-claude-code-behavior 0.7641
Run `claude --version` to check your current version.
- code.claude.com/docs/en/setup#verify-the-manifest-signature 0.7438
Download the manifest and signature — Set `VERSION` to the release you want to verify.
- code.claude.com/docs/en/desktop#check-your-version 0.7361
Check your version — To see which version of the desktop app you're running:
- code.claude.com/docs/en/setup#verify-your-installation 0.7254
Verify your installation claude --version
- code.claude.com/docs/en/troubleshoot-install#find-your-error 0.7198
`Failed to fetch version` or can't reach download server: [Check network and proxy settings](#check-network-connectivity)
Hybrid (RRF)
Both legs fused, k=60, keyed by (url, seq).
- code.claude.com/docs/en/costs#understanding-changes-in-claude-code-behavior 0.01639 · 1 leg
Run `claude --version` to check your current version.
- code.claude.com/docs/en/troubleshoot-install#check-for-conflicting-installations 0.01639 · 1 leg
[Check] for conflicting installations — Multiple Claude Code installations can cause [version] mismatches or unexpected behavior. [Check] what's [installed]:
- code.claude.com/docs/en/setup#verify-the-manifest-signature 0.01613 · 1 leg
Download the manifest and signature — Set `VERSION` to the release you want to verify.
- code.claude.com/docs/en/plugins-reference#version-management 0.01613 · 1 leg
… run `/plugin [update]` or auto-[update] fires, Claude Code computes [the] current [version] [and] skips [the] [update] if it matches what's already [installed].
- code.claude.com/docs/en/desktop#check-your-version 0.01587 · 1 leg
Check your version — To see which version of the desktop app you're running: