tranquera
v0.5.1
Published
Firewall de Claude Code corporativo. Login con Google + ANTHROPIC_BASE_URL en un comando.
Downloads
944
Maintainers
Readme
tranquera
CLI para devs que usan Claude Code detrás de un firewall corporativo de Tranquera.
Un comando configura tu shell para que cada prompt de Claude Code pase por el proxy de tu organización antes de llegar a Anthropic. Tu admin define las reglas (regex + judge LLM); el CLI te identifica via Google y te asocia a tu org.
Uso
npx tranquera setupHace todo de una:
- Si no estás logueado, abre el browser para que te autentiques con Google.
- Te asocia a la org en la que tu admin te invitó.
- Agrega
export ANTHROPIC_BASE_URL="<proxy>/cli/<token>"a tu shell rc (~/.zshrc,~/.bashrc,~/.bash_profileo~/.config/fish/config.fish). El token va en el path porque Claude Code no permite inyectar headers — así el interceptor sabe a qué dev atribuir cada prompt. - Pinguea el proxy para confirmar que responde.
Reabrís la terminal (o source del rc) y usás claude igual que siempre.
Comandos
| Comando | Qué hace |
|---|---|
| setup | Login + configura shell rc. Idempotente: si ya hay token válido, salta el login. |
| login | Fuerza un nuevo device flow (útil después de logout). |
| whoami | Muestra a qué org / member estás vinculado. |
| logout | Revoca tu token, limpia ~/.tranquera/config.json y saca el export ANTHROPIC_BASE_URL del rc. Pasá --keep-rc si querés conservar la export. |
| status | Estado actual: rc + token + ping al proxy. |
| help | Esta ayuda. |
Variables de entorno
| Variable | Default | Para qué |
|---|---|---|
| TRANQUERA_APP_URL | http://localhost:3000 | URL del back-office (donde corre el device flow + login Google). |
| TRANQUERA_PROXY_URL | URL del deploy del hack en Railway | URL del proxy (se sobreescribe con la del back-office en el setup). |
¿Por dónde anda mi config?
~/.tranquera/config.json (permisos 0600). Contiene tu token de CLI, el proxy_url y el member resuelto. Es el patrón estándar de CLIs (igual que ~/.aws/, ~/.gh/, ~/.docker/).
¿Cómo me desconecto?
Un solo comando deja todo como antes:
npx tranquera logoutEso hace tres cosas:
- Le avisa al server que revoque tu token (pierde validez de inmediato).
- Borra
~/.tranquera/config.json. - Saca el bloque
# tranquera · firewall de Claude Code+ la líneaexport ANTHROPIC_BASE_URL=...de tu rc (~/.zshrc,~/.bashrc/~/.bash_profileo~/.config/fish/config.fishsegún$SHELL).
Para limpiar la terminal que ya estaba abierta (la variable sigue exportada en su entorno):
unset ANTHROPIC_BASE_URL # bash / zsh
set -e ANTHROPIC_BASE_URL # fishO simplemente abrí una terminal nueva.
⚠️ Si saltás este paso, Claude Code va a seguir ruteando al proxy en esa terminal y, como tu token quedó revocado, vas a recibir
401 unknown or revoked tranquera tokenen cada prompt.
¿Querés conservar la export en el rc (por ejemplo, para volver más tarde con npx tranquera login)? Pasá --keep-rc:
npx tranquera logout --keep-rc¿Qué pasa si el proxy se cae?
Tu request va a fallar igual que si Anthropic estuviera caído. El CLI no tiene fallback automático — si querés volver a Anthropic directo en una sesión, unset ANTHROPIC_BASE_URL (o set -e en fish). Para desconectarte de raíz, usá npx tranquera logout.
¿Qué viaja al proxy?
El CLI no toca lo que Claude Code manda — solo redirige el host (con tu token en el path). Claude Code envía sus headers normales (x-api-key o Authorization) y el body intacto. El proxy:
- Extrae tu token del path (
/cli/<token>/...), lo hashea y resuelve a quémemberperteneces. - Lee las reglas activas de tu org.
- Corre la cascada Regex → Haiku judge.
- Si todo OK, reenvía a
api.anthropic.comy devuelve la respuesta tal cual. - Si una regla matchea con
BLOCK, devuelve unMessagesintético explicando qué pasó.
Cada request queda auditada en el back-office de tu admin, atribuida a tu cuenta (interactions.user_id = members.id).
Si tu admin revoca tu token desde
/admin/team, la próxima request va a fallar con401 unknown or revoked tranquera token. Corrénpx tranquera loginpara generar uno nuevo y editá la export del rc con la URL nueva.
Requisitos
- Node 18+ (ya lo tenés instalado si usás
claude). - Una cuenta de Google y haber sido invitado por el admin de tu org.
Más info
Repo y documentación completa: https://github.com/platanus-hack/platanus-hack-26-ar-team-22
Track AI Security · Platanus Hack 26 · Buenos Aires.
