SpyBara
Go Premium

Documentation 2026-11-12 23:02 UTC to 2026-11-13 01:02 UTC

10 files changed +21 −45. View all changes and history on the product overview
2026
Fri 13 01:02 Thu 12 23:02 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

315 {315 {

316 "matcher": "Edit|Write",316 "matcher": "Edit|Write",

317 "hooks": [317 "hooks": [

318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }318 { "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }

319 ]319 ]

320 }320 }

321 ]321 ]

Details

92 92 

93Más allá del binario, la imagen necesita:93Más allá del binario, la imagen necesita:

94 94 

95* **Una imagen basada en glibc**: las únicas dependencias dinámicas de la compilación de glibc son las bibliotecas de glibc. Las imágenes basadas en Musl necesitan la compilación `linux-x64-musl` o `linux-arm64-musl` más paquetes adicionales; consulte [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).95* **Una imagen basada en glibc**: las únicas dependencias dinámicas de la compilación de glibc son bibliotecas de glibc. Las imágenes basadas en musl necesitan la compilación `linux-x64-musl` o `linux-arm64-musl`, cuya única dependencia dinámica es musl.

96* **Un directorio de estado escribible**: la puerta de enlace se ejecuta como cualquier usuario, pero las imágenes mínimas no tienen inicio escribible. Establezca `CLAUDE_CONFIG_DIR` en una ruta escribible como `/tmp/.claude`.96* **Un directorio de estado escribible**: la puerta de enlace se ejecuta como cualquier usuario, pero las imágenes mínimas no tienen inicio escribible. Establezca `CLAUDE_CONFIG_DIR` en una ruta escribible como `/tmp/.claude`.

97* **El comando del contenedor**: `claude gateway --config /etc/claude/gateway.yaml`, con el archivo de configuración montado de solo lectura y secretos suministrados como variables de entorno; la puerta de enlace escucha en `listen.port`, predeterminado `8080`.97* **El comando del contenedor**: `claude gateway --config /etc/claude/gateway.yaml`, con el archivo de configuración montado de solo lectura y secretos suministrados como variables de entorno; la puerta de enlace escucha en `listen.port`, predeterminado `8080`.

98 98 

hooks.md +1 −1

Details

3335 "hooks": [3335 "hooks": [

3336 {3336 {

3337 "type": "command",3337 "type": "command",

3338 "command": "bash -c 'jq -r .worktree_path | xargs rm -rf'"3338 "command": "bash -c 'p=$(jq -er .worktree_path) && rm -rf -- \"$p\"'"

3339 }3339 }

3340 ]3340 ]

3341 }3341 }

hooks-guide.md +2 −2

Details

50 "PostToolUse": [50 "PostToolUse": [

51 {51 {

52 "matcher": "Edit|Write",52 "matcher": "Edit|Write",

53 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }]53 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }]

54 }54 }

55 ],55 ],

56 "Notification": [56 "Notification": [


221 "hooks": [221 "hooks": [

222 {222 {

223 "type": "command",223 "type": "command",

224 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"224 "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\""

225 }225 }

226 ]226 ]

227 }227 }

Details

36| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. Mientras un elemento de pie de página está seleccionado, como una fila en el [panel de subagentes](https://code.claude.com/docs/es/sub-agents.md#run-subagents-in-foreground-or-background) debajo del símbolo del sistema, `Esc` [lo deselecciona](https://code.claude.com/docs/es/keybindings.md#footer-actions) en lugar de interrumpir. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |36| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. Mientras un elemento de pie de página está seleccionado, como una fila en el [panel de subagentes](https://code.claude.com/docs/es/sub-agents.md#run-subagents-in-foreground-or-background) debajo del símbolo del sistema, `Esc` [lo deselecciona](https://code.claude.com/docs/es/keybindings.md#footer-actions) en lugar de interrumpir. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |

37| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del prompt contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Up` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](https://code.claude.com/docs/es/checkpointing.md) para restaurar o resumir código y conversación desde un punto anterior |37| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del prompt contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Up` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](https://code.claude.com/docs/es/checkpointing.md) para restaurar o resumir código y conversación desde un punto anterior |

38| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |38| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |

39| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](https://code.claude.com/docs/es/permission-modes.md). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |39| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permisos | Cicla a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits` y `plan`, y luego `bypassPermissions` y `auto` cuando estén disponibles. Consulta [modos de permisos](https://code.claude.com/docs/es/permission-modes.md). En una solicitud de permiso de archivo, la misma tecla cierra un [campo de comentario](https://code.claude.com/docs/es/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando la solicitud ofrece esa opción. En la solicitud de aprobación del plan, aprueba el plan |

40| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |40| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |

41| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilita o deshabilita el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5, Haiku 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |41| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilita o deshabilita el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5, Haiku 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |

42| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](https://code.claude.com/docs/es/fast-mode.md) |42| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](https://code.claude.com/docs/es/fast-mode.md) |

Details

304claude --permission-mode plan304claude --permission-mode plan

305```305```

306 306 

307Presiona `Shift+Tab` de nuevo para salir del modo plan sin aprobar un plan.307Sin ninguna solicitud de aprobación abierta, presiona `Shift+Tab` de nuevo para salir del modo plan. En la solicitud de aprobación, presiona primero `Esc`, ya que presionar `Shift+Tab` allí aprueba el plan.

308 308 

309### Revisa y aprueba un plan309### Revisa y aprueba un plan

310 310 

Details

344 "PostToolUse": [344 "PostToolUse": [

345 {345 {

346 "matcher": "Write|Edit",346 "matcher": "Write|Edit",

347 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]347 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npm run lint:fix -- \"$f\"" }]

348 }348 }

349 ]349 ]

350 }350 }

setup.md +8 −26

Details

40>40>

41> **macOS, Linux, WSL:**41> **macOS, Linux, WSL:**

42>42>

43> ```bash theme={null}43> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

44> curl -fsSL https://claude.ai/install.sh | bash44> curl -fsSL https://claude.ai/install.sh | bash

45> ```45> ```

46>46>


48>48>

49> **Windows PowerShell:**49> **Windows PowerShell:**

50>50>

51> ```powershell theme={null}51> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

52> irm https://claude.ai/install.ps1 | iex52> irm https://claude.ai/install.ps1 | iex

53> ```53> ```

54>54>

55> **Windows CMD:**55> **Windows CMD:**

56>56>

57> ```batch theme={null}57> ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

59> ```59> ```

60>60>


72 72 

73> [tab] Homebrew73> [tab] Homebrew

74>74>

75> ```bash theme={null}75> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

76> brew install --cask claude-code76> brew install --cask claude-code

77> ```77> ```

78>78>


84 84 

85> [tab] WinGet85> [tab] WinGet

86>86>

87> ```powershell theme={null}87> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

88> winget install Anthropic.ClaudeCode88> winget install Anthropic.ClaudeCode

89> ```89> ```

90>90>


141 141 

142### Alpine Linux y distribuciones basadas en musl142### Alpine Linux y distribuciones basadas en musl

143 143 

144Instalar Claude Code en Alpine y otras distribuciones basadas en musl/uClibc requiere `bash` y `curl` para el comando de instalación, y `libgcc`, `libstdc++` y `ripgrep` en tiempo de ejecución. Alpine no incluye `bash` o `curl` de forma predeterminada, por lo que el comando de instalación documentado falla con un error `not found` hasta que los instale. Instale estos paquetes usando el gestor de paquetes de su distribución, luego establezca `USE_BUILTIN_RIPGREP=0`.144En Alpine y otras distribuciones basadas en musl, el [comando de instalación](#install-claude-code) requiere `bash` y `curl`, y Claude Code en sí requiere `bash` o `zsh`. Alpine no incluye `bash` ni `curl` de forma predeterminada, por lo que el comando de instalación documentado falla con un error `not found` hasta que los instales.

145 145 

146Este ejemplo instala los paquetes requeridos en Alpine:146Este ejemplo instala los paquetes requeridos en Alpine:

147 147 

148```bash theme={null}148```bash theme={null}

149apk add bash curl libgcc libstdc++ ripgrep149apk add bash curl

150```

151 

152En Alpine, `ripgrep` está en el repositorio de comunidad. Si `apk` informa que falta el paquete, agregue el repositorio de comunidad a `/etc/apk/repositories`, usando su versión de Alpine:

153 

154```bash theme={null}

155echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories

156```

157 

158Ejecute `apk update` para actualizar el índice de paquetes e intente nuevamente el comando `apk add`.

159 

160Luego establezca `USE_BUILTIN_RIPGREP` en `0` en su archivo [`settings.json`](https://code.claude.com/docs/es/settings-reference#all-settings):

161 

162```json theme={null}

163{

164 "env": {

165 "USE_BUILTIN_RIPGREP": "0"

166 }

167}

168```150```

169 151 

170## Verificar su instalación152## Verificar su instalación


443> wget -O /etc/apk/keys/claude-code.rsa.pub \425> wget -O /etc/apk/keys/claude-code.rsa.pub \

444> https://downloads.claude.ai/keys/claude-code.rsa.pub426> https://downloads.claude.ai/keys/claude-code.rsa.pub

445> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories427> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

446> apk add claude-code428> apk add bash claude-code

447> ```429> ```

448>430>

449> Para cambiar al canal `latest`, elimine la línea del repositorio `stable` y agregue el repositorio `latest`:431> Para cambiar al canal `latest`, elimine la línea del repositorio `stable` y agregue el repositorio `latest`:

Details

388> Get-Command claude | Select-Object Source388> Get-Command claude | Select-Object Source

389> ```389> ```

390 390 

391En Linux, verifica si faltan bibliotecas compartidas. Si `ldd` muestra bibliotecas faltantes, es posible que debas instalar paquetes del sistema. En Alpine Linux y otras distribuciones basadas en musl, consulta [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).391En Linux, verifica si faltan bibliotecas compartidas. Si `ldd` muestra bibliotecas faltantes, es posible que debas instalar paquetes del sistema. En Alpine Linux y otras distribuciones basadas en musl, consulta [Discrepancia de binario musl o glibc en Linux](#linux-musl-or-glibc-binary-mismatch).

392 392 

393```bash theme={null}393```bash theme={null}

394ldd "$(command -v claude)" | grep "not found"394ldd "$(command -v claude)" | grep "not found"


906 906 

907### Discrepancia de binario musl o glibc en Linux907### Discrepancia de binario musl o glibc en Linux

908 908 

909Si ves errores sobre bibliotecas compartidas faltantes como `libstdc++.so.6` o `libgcc_s.so.1` después de la instalación, es posible que el instalador haya descargado la variante de binario incorrecta para tu sistema.909Si ves errores sobre bibliotecas compartidas faltantes como `ld-linux-x86-64.so.2` o `ld-linux-aarch64.so.1` después de la instalación, es posible que el instalador haya descargado la variante de binario incorrecta para tu sistema.

910 910 

911```text theme={null}911```text theme={null}

912Error loading shared library libstdc++.so.6: No such file or directory912Error loading shared library ld-linux-x86-64.so.2: No such file or directory

913```913```

914 914 

915Esto puede ocurrir en sistemas basados en glibc que tienen instalados paquetes de compilación cruzada de musl, lo que hace que el instalador detecte incorrectamente el sistema como musl.

916 

917**Soluciones:**915**Soluciones:**

918 916 

9191. **Verifica qué libc usa tu sistema**:9171. **Verifica qué libc usa tu sistema**:


924 922 

9252. **Si estás en glibc pero obtuviste el binario musl**, elimina la instalación y reinstala. También puedes descargar manualmente el binario correcto usando el manifiesto en `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abre un [issue en GitHub](https://github.com/anthropics/claude-code/issues) con la salida de `ldd --version` y `ls /lib/libc.musl*`.9232. **Si estás en glibc pero obtuviste el binario musl**, elimina la instalación y reinstala. También puedes descargar manualmente el binario correcto usando el manifiesto en `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abre un [issue en GitHub](https://github.com/anthropics/claude-code/issues) con la salida de `ldd --version` y `ls /lib/libc.musl*`.

926 924 

9273. **Si realmente estás en musl**, como Alpine Linux, instala los paquetes requeridos:9253. **Si estás en musl pero obtuviste el binario glibc**, [elimina la instalación](https://code.claude.com/docs/es/setup.md#uninstall-claude-code). En Alpine Linux, primero instala los paquetes que indica [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions). Luego ejecuta el [comando de instalación](https://code.claude.com/docs/es/setup.md#install-claude-code), que instala el binario musl.

928 ```bash theme={null}

929 apk add libgcc libstdc++ ripgrep

930 ```

931 En Alpine, `ripgrep` está en el repositorio community. Si `apk` reporta que falta el paquete, consulta [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).

932 926 

933### `Illegal instruction`927### `Illegal instruction`

934 928 

Details

152> apk add ripgrep152> apk add ripgrep

153> ```153> ```

154>154>

155> `ripgrep` está en el repositorio de comunidad de Alpine. Si `apk` informa que el paquete falta, consulte [Configuración de Alpine Linux](https://code.claude.com/docs/es/setup.md#alpine-linux-and-musl-based-distributions).155> `ripgrep` está en el repositorio de comunidad de Alpine.

156 156 

157> [tab] Arch157> [tab] Arch

158>158>