Claude Code

La seguridad de Claude Code es un problema de credenciales

El sistema de permisos decide qué herramientas puede ejecutar Claude Code. No dice nada sobre a qué pueden llegar esas herramientas, y a lo que pueden llegar es a todos los secretos de tu máquina. Sallyport mueve las claves a un sitio donde el agente no puede leerlas.

los permisos acaban en la herramientaun comando de shell permitido lee .envel hueco está donde vive la clave
Permisos

Qué cubren realmente las confirmaciones de permisos

Claude Code pregunta antes de ejecutar una herramienta que no hayas permitido. Las reglas viven en settings.json como listas allow, ask y deny, y vale la pena configurarlas bien.

allow

Herramientas que aprobaste de antemano

Una regla como Bash(git commit:*) deja pasar ese comando sin detenerse. La regla se aplica al comando, no a lo que el comando abra una vez en marcha.

sin confirmación

ask

Todo lo que no está en la lista

El caso por defecto. Claude Code te enseña la llamada a la herramienta y espera. Estás revisando una acción, en el momento, con el contexto que tengas a las dos de la mañana.

confirmación

deny

Rutas y herramientas que bloqueaste

Una regla deny mantiene la herramienta Read fuera de ./.env. No mantiene fuera del mismo archivo a un comando de shell permitido, y no tiene nada que decir sobre los procesos que arrancan tus dependencias.

bloqueo parcial

bypass

Ninguna confirmación

La opción --dangerously-skip-permissions elimina la pregunta por completo. Tiene su propia sección más abajo.

sin confirmación

Todas esas reglas gobiernan las herramientas del agente. Ninguna gobierna el archivo que lee una herramienta. Tus tokens de API están en .env, tu clave SSH en ~/.ssh, y ambos los puede leer cualquier proceso que corra con tu usuario, haya confirmación o no.

Modo YOLO

Qué desactiva realmente --dangerously-skip-permissions

La gente lo usa por buenas razones: refactorizaciones largas y ejecuciones nocturnas en las que un diálogo de confirmación deja el trabajo parado hasta la mañana. Conviene saber exactamente qué diste a cambio.

Desactiva confirmaciones, no capacidades

Claude Code ya podía leer tus archivos, usar tu shell y salir a la red. La opción quita la pausa en la que lo habrías notado.

El archivo siempre fue legible

La confirmación era una oportunidad de pillar al agente abriendo .env. Nunca fue una barrera alrededor del archivo. Cualquier proceso que corra con tu usuario puede leerlo, incluida la dependencia que npm instaló mientras leías la confirmación.

El radio es todo lo que pueda hacer tu shell

Una inyección de prompt en una página que se descarga, un README envenenado en una dependencia transitiva, y esas instrucciones caen dentro de una sesión que tiene tus credenciales y ya no tiene confirmaciones.

El modo YOLO te cuesta la oportunidad de darte cuenta. No es lo que puso las claves a mano; también estaban a mano en el modo normal.

Revisión de seguridad

Revisar tu código es otro trabajo

Claude Code lee un diff y señala vulnerabilidades en él, y deberías dejarle hacerlo. Ese trabajo va sobre el código que envías. No dice nada sobre a qué puede llegar el propio agente mientras corre, que es de lo que va esta página. Son problemas distintos, y resolver uno no hace nada por el otro.

La solución

Quita las claves de la mesa

Sallyport guarda la credencial y hace la llamada. Claude Code pide una acción y recibe un resultado. Ninguna clave entra en su entorno, así que no hay nada que una confirmación saltada, una dependencia envenenada o una instrucción inyectada puedan llevarse.

  1. 01

    El agente pide una acción

    http.request a api.stripe.com, o ssh.exec en prod-03. Llega por MCP, igual que Claude Code llama a cualquier otra herramienta.

  2. 02

    Sallyport decide

    Una bóveda bloqueada lo deniega todo. Una clave marcada para aprobación por llamada enseña una tarjeta cada vez. Si no, una tarjeta por ejecución del agente, con la autoridad de firma de código de quien llama.

  3. 03

    Sallyport hace la llamada

    La credencial se adjunta dentro de la app, durante la ejecución. No entra en el entorno del agente, y una redirección a otro host no se la lleva.

  4. 04

    El registro guarda el comprobante

    Cifrado y encadenado por hash mientras ocurre la acción. Puedes averiguar qué se ejecutó sin depender de la versión que dé el agente.

A partir de ahí, ejecuta Claude Code como te venga bien, con confirmaciones o sin ellas. La decisión que importaba ya no está en el agente.

Configuración

Apunta Claude Code a la puerta

Sallyport vive en la barra de menús y aloja la bóveda en su propio proceso. No hay demonio ni cuenta.

01

Instala y abre

El onboarding crea la bóveda y activa su puerta de Touch ID.

brew install --cask olegsotnikov/tap/sallyport
02

Registra el shim MCP

Claude Code recoge http.request, ssh.exec y cualquier servidor MCP upstream que hagas pasar por Sallyport.

claude mcp add sallyport -- /Applications/Sallyport.app/Contents/MacOS/sp mcp
03

Mueve la clave y borra la copia

Guarda la credencial en la bóveda, vincúlala a su host y quítala del .env. Marca para aprobación por llamada las que te den miedo.

stripe → api.stripe.com · aprobación por llamada

Unos dos minutos. Las confirmaciones que te quedan son las de Sallyport, y preguntan por acciones contra infraestructura real en vez de por qué herramienta puede ejecutarse.

Preguntas frecuentes

Claude Code y Sallyport

¿Puedo seguir usando --dangerously-skip-permissions?
Sí, y pasa a ser bastante más razonable una vez que las claves quedan fuera de alcance. Las aprobaciones de Sallyport son independientes de las de Claude Code, así que saltarse unas no se salta las otras.
¿Esto ralentiza a Claude Code?
Una tarjeta por ejecución del agente y nada más hasta que la ejecución termine, salvo que hayas marcado una clave para aprobación por llamada. Las llamadas aprobadas van a la velocidad de la API que hay detrás.
¿Ve Claude Code la respuesta de la API?
Sí. Sallyport devuelve la respuesta del destino tal y como llega y no inspecciona el contenido. Si un servicio devuelve un secreto dentro de su propia respuesta, el agente ve esa respuesta. Las peticiones pasan por la puerta; las respuestas no se filtran.
¿Sallyport es un plugin de Claude Code?
No. Es una app de Mac con un shim MCP, así que funciona con cualquier cliente MCP y no hay nada que actualizar cuando Claude Code se actualiza.
¿Y Cursor, Codex y los demás?
El mismo mecanismo, porque todos hablan MCP. Contra lo que más probamos es Claude Code, y Cursor y Codex entran en la rotación habitual.

Que se salte todas las confirmaciones. Tus claves las sigue sin poder leer.

Descarga gratis. Apple Silicon, macOS 14 o posterior. Sin cuenta, nunca.

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon

Sallyport

Sallyport ejecuta llamadas de API y comandos SSH por tu agente de IA. Las claves se quedan en una bóveda local de tu Mac; tú apruebas cada ejecución y cada acción queda en un registro sellado.

© 2026 Sallyport · Código abierto bajo Apache-2.0 · Oleg Sotnikov