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.
Claude Code
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.
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
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.
ask
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.
deny
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.
bypass
La opción --dangerously-skip-permissions elimina la pregunta por completo. Tiene su propia sección más abajo.
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.
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.
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.
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.
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
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.
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.
01
http.request a api.stripe.com, o ssh.exec en prod-03. Llega por MCP, igual que Claude Code llama a cualquier otra herramienta.
02
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.
03
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.
04
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.
Sallyport vive en la barra de menús y aloja la bóveda en su propio proceso. No hay demonio ni cuenta.
El onboarding crea la bóveda y activa su puerta de Touch ID.
brew install --cask olegsotnikov/tap/sallyportClaude 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 mcpGuarda 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 llamadaUnos 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.
Descarga gratis. Apple Silicon, macOS 14 o posterior. Sin cuenta, nunca.
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon