phantom-secrets
Evita que los agentes de codificación de IA filtren tus claves API. Proxy local + MCP que intercambia secretos reales por tokens phm_. Funciona con Claude Code, Cursor, Windsurf y Codex.
Documentación
Phantom
Delega más a la IA sin poner claves reales en el contexto del agente.
Phantom reemplaza los secretos del proyecto con marcadores de posición phm_ con ámbito. Las aplicaciones usan esos marcadores a través de un proxy local autenticado, mientras que los agentes usan herramientas MCP ciegas a valores para inventario, diagnósticos y solicitudes gobernadas.
Inicio rápido · Delegar de forma segura · ¿Por qué Phantom? · Configuración de MCP · Documentación · Contribuir · phm.dev
▶ Demo histórica v0.4 — el comportamiento actual difiere · 🛡 Modelo de seguridad · 📋 Modelo de amenazas · 💬 Discusiones
[!IMPORTANT] Instantánea del estado de la versión (verificada el 2026-09-03):
v0.7.5es la versión inmutable de GitHub revisada en el commit fuented2969e73995cc139e6253e0c8a70f1d683f88e20. Su conjunto de 19 activos de la versión, sumas de verificación, SBOM SPDX específicos del archivo, procedencia de GitHub y atestaciones de SBOM, y las seis filas nativas de la versión fueron verificados en el flujo de trabajo 33709338577. Homebrew publica la mismav0.7.5revisada; npmlatestsigue siendo0.6.0, y los envoltorios npm0.7.4permanecen en cuarentena bajorelease-candidatedespués de la fallida aceptación del canal npm. El recibo de GitHub por sí solo no prueba la fórmula de Homebrew verificada por separado, un paquete npm o crates.io, la entrada del Registro MCP, la puesta en servicio del servicio alojado, la activación del proveedor, la firma/notarización, la certificación o la aceptación del cliente. Consulte preparación de la versión y soporte de plataforma.
Empiece aquí
Elija la ruta más pequeña que responda a su próxima pregunta. La primera ruta no usa ninguna credencial, no hace ninguna solicitud de red y no instala ni configura Phantom.
| Objetivo | Inicio | Qué establece |
|---|---|---|
| Ver el límite de delegación sin secreto ni configuración | Ejecute node examples/first-five-minutes/run.mjs y luego lea el tutorial de los primeros cinco minutos | Un contrato de ejemplo determinista y de solo lectura; no es aceptación de bóveda, proxy, proveedor o implementación. |
| Proteger un proyecto local real | Siga el Inicio rápido con la versión de GitHub v0.7.5 revisada | Inicialización local y diagnósticos en su máquina. |
| Conectar un cliente de codificación con IA | Complete la primera tarea de MCP | Verificaciones de capacidad, estado y repositorio ciegas a valores; sin acción del proveedor. |
| Definir una tarea acotada para un agente | Use la guía de inicio rápido de delegación segura | Un contrato de tarea revisable con autoridad explícita y límites de aceptación. |
| Evaluar un despliegue de equipo | Use la guía de adopción empresarial | Un plan de evaluación controlado; no es una afirmación de un servicio en la nube o empresarial comisionado. |
| Auditar primero el modelo de confianza | Lea el modelo de seguridad y el modelo de amenazas | Controles documentados, suposiciones y riesgos residuales. |
¿Por qué Phantom?
Los agentes de codificación con IA trabajan rutinariamente en repositorios que también contienen credenciales locales. Una vez que una clave de API real entra en el contexto de un agente, transcripción, llamada de herramienta o archivo generado, usted ha perdido el control de dónde puede persistir ese valor.
Los gestores de secretos tradicionales se centran en las claves en reposo y en tránsito. Phantom añade un límite para el contexto del agente:
- 🔒 Reduce una vía de exposición de credenciales — los archivos dotenv del proyecto gestionados contienen asignaciones
phm_sensibles, las respuestas de MCP permanecen ciegas a valores, y las rutas exactas del proxy inyectan sus propios valores de autenticación configurados. Los archivos no gestionados, la autoridad de shell más amplia y los procesos del mismo usuario permanecen en el modelo de amenazas. - ⚡ Configuración local rápida — después de instalar la versión de GitHub
v0.7.5revisada,phantom initprotege un proyecto sin requerir una cuenta, cambios de DNS o una CA personalizada. - 🧰 Integraciones nativas para agentes — ayudantes de configuración y flujos de trabajo MCP ciegos a valores para Claude Code, Cursor, Windsurf y Codex, además de instrucciones de proyecto para GitHub Copilot.
- 🦀 Código abierto, local primero, MIT — los secretos usan el almacén de credenciales nativo del sistema operativo cuando está disponible, con un respaldo explícito de archivo cifrado. La sincronización opcional en la nube cifra las cargas de la bóveda en el lado del cliente antes de que el servidor las almacene.
Estado del proyecto y límite de confianza
Las superficies de cara al usuario implementadas de Phantom son la CLI, la bóveda, el proxy local autenticado, el servidor MCP y los flujos de trabajo opcionales de nube/equipo documentados a continuación. El comportamiento de nube y equipo depende además del servicio desplegado, el plan de la cuenta y la configuración del proveedor; el código fuente por sí solo no es evidencia de implementación o aceptación del cliente. La fachada de conversación es intencionalmente estrecha:
phantom_does solo propuesta. Canonicaliza una acción de Cargo cerrada e informa su resumen, efecto y bloqueadores de activación;executeestá denegado estrictamente.phantom_setup_workspacepuede proponer configuración, crear una solicitud sin portador e informar el estado autenticado. Aplicar una solicitud sigue siendo una operación separada de terminal de confianza.- Las herramientas MCP avanzadas siguen siendo un catálogo de compatibilidad, deshabilitadas por defecto, con confirmación explícita separada y compuertas informadas de aprobación de terminal. No están gobernadas por la tarjeta de capacidades de la fachada de conversación.
phantom grantretiene metadatos de ciclo de vida ciegos a valores y fundamentos de diseño de fuente, pero 0.7.5 deniega estrictamente toda vía de emisión/renovación de proveedor en vivo antes del acceso a credenciales o red. Una concesión de proveedor no es una concesión de autoridad del núcleo de ejecución, un arrendamiento de intermediario o un permiso para que un agente ejecute trabajo.- Las cajas de autoridad, intermediario, tiempo de ejecución, sesión y evidencia son fundamentos inactivos y de fallo cerrado. No establecen autoridad Locus en vivo, credenciales de intermediario, ejecutan acciones de agente ni producen recibos de confianza externa hoy.
Consulte el mapa de documentación, la arquitectura, la política de seguridad y el modelo de amenazas para la evidencia detrás de esos límites.
Inicio rápido
Instale ambos binarios desde la versión de GitHub v0.7.5 revisada.
La fórmula de Homebrew publica los mismos binarios v0.7.5 revisados:
$ brew tap ashlrai/phantom
$ brew trust --formula ashlrai/phantom/phantom
$ brew install ashlrai/phantom/phantom
Para v0.7.5 exacto en macOS, Linux o Windows, use el activo de versión correspondiente
en Instalación. Luego proteja y verifique el proyecto:
$ phantom init
# Auto-detects .env, .env.local, or .env in subdirectories
# Stores real secrets in the native credential store or encrypted vault,
# then rewrites .env with phantom tokens
# Auto-configures Claude Code MCP server if detected
$ phantom agent doctor
# One human-readable readiness check for AI-agent safety
$ phantom exec -- claude
# Authenticated proxy running on an ephemeral 127.0.0.1 port
# App/test processes use phantom tokens; agents use value-blind metadata
Para un contrato de tarea que pueda entregar a Claude Code, Codex, Cursor, Windsurf o Copilot, use la guía de inicio rápido de delegación segura y las plantillas copiables de política y tarea. Los equipos que evalúan un despliegue controlado pueden comenzar con la guía de adopción empresarial.
Windows
La misma superficie de comandos central está implementada para Windows nativo, con límites
restantes de aceptación nativa rastreados en la matriz de plataformas. Instale el ZIP de Windows v0.7.5
exacto para su arquitectura desde Instalación, verifique su
archivo lateral .sha256 publicado y coloque ambos ejecutables en PATH. WSL es un
entorno Linux separado con su propio sistema de archivos y contexto de almacén de credenciales.
Para un proxy en primer plano explícitamente supervisado, ejecute phantom start con stdin,
stdout y stderr cada uno adjunto a un terminal de confianza. La adjunción de terminal es
una verificación de admisión, no una prueba de quién controla una PTY. La CLI detecta su shell e imprime la sintaxis de variable de entorno correspondiente;
copie esas exportaciones en el terminal que lanza el cliente, mantenga el terminal
propietario abierto y presione Ctrl-C allí para detener. El modo --daemon separado y
el control de procesos externo son de fallo cerrado hasta que Phantom tenga un canal de control
privado multiplataforma revisado por separado. phantom stop solo autentica una
sesión .phantom.pid heredada v0.7.3 para informar orientación de migración; v0.7.3 no tenía
un punto final de apagado autenticado, por lo que el nuevo binario nunca mata ese proceso ni
elimina su registro. Deténgalo desde su terminal propietario v0.7.3 con Ctrl-C, o use
el procedimiento de recuperación acotado en Solución de problemas.
Para referencia:
PowerShell:
$env:OPENAI_BASE_URL = "http://127.0.0.1:PORT/openai/_phantom/TOKEN/"
$env:PHANTOM_PROXY_PORT = "PORT"
$env:PHANTOM_PROXY_TOKEN = "TOKEN"
cmd.exe:
set OPENAI_BASE_URL=http://127.0.0.1:PORT/openai/_phantom/TOKEN/
set PHANTOM_PROXY_PORT=PORT
set PHANTOM_PROXY_TOKEN=TOKEN
Git Bash / WSL: use la sintaxis export X=Y del inicio rápido principal.
Notas:
PHANTOM_PROXY_TOKENes el autenticador de sesión del proxy. Por defecto,phantom execyphantom startlo incluyen en los valores locales de*_BASE_URLcomo/_phantom/TOKEN/para que los SDK no modificados funcionen. Los clientes conscientes de encabezados pueden configurarPHANTOM_PROXY_HEADER_AUTH_ONLY=1y enviarx-phantom-proxy-token: $PHANTOM_PROXY_TOKENen su lugar.- Si
phantom.exeestá bloqueado por la política de control de aplicaciones de Windows, no elimine automáticamente la Marca de la Web. Primero verifique la suma de verificación del archivo y ambas identidades binarias contra los metadatos de la versión. Si la política local permite los binarios verificados, un usuario puede entonces eliminar la marca explícitamente con PowerShell:Get-ChildItem "$env:USERPROFILE\.phantom-secrets\bin\*.exe" | Unblock-File. - El gancho de pre-commit instalado por
phantom inites un script#!/bin/sh. Git nativo desde la línea de comandos lo invoca a través delsh.exeincluido de Git para Windows, que es lo que el instalador oficial de Git para Windows incluye. Los clientes GUI (GitHub Desktop, algunas integraciones de IDE) pueden ejecutarse con unPATHreducido que carece desh.exey omitir silenciosamente el gancho — para estos, ejecute los commits desde un terminal, o usephantom check --stageddirectamente. CI es la red de seguridad duradera independientemente. - La versión inmutable
v0.7.5contiene ZIPs de Windows x64 y ARM64, y ambas filas nativas de Windows pasaron el flujo de trabajo de aceptación de versión vinculado a etiqueta. Los archivos no están firmados con Authenticode; este recibo no prueba que toda política de control de aplicaciones empresarial los aceptará. Consulte la matriz de soporte de plataforma.
Cómo funciona
.env file (AI read denied) OS Keychain / Vault
+--------------------------+ +---------------------+
| OPENAI_API_KEY=phm_a7f3 | ---> | sk-real-secret-key |
| STRIPE_KEY=phm_c9d1... | | sk_live_real-key... |
+--------------------------+ +---------------------+
| |
v v
App / test process Phantom Proxy (127.0.0.1)
+--------------------------+ +------------------------------+
| Loads phm_ tokens | | Intercepts HTTP requests |
| Agent gets MCP metadata | ---> | Injects route-owned auth key |
| Makes API calls to proxy | | Forwards over TLS to real API|
+--------------------------+ +------------------------------+
phantom initlee.env, almacena secretos reales en el almacén de credenciales nativo del sistema operativo o en el respaldo de archivo cifrado, y reescribe.envcon tokensphm_phantom exec -- claudeinicia un proxy inverso local, establece URL de base de servicio compatibles con SDK comoOPENAI_BASE_URL=http://127.0.0.1:PORT/openai/_phantom/TOKEN/, exponePHANTOM_PROXY_TOKENal proceso hijo y lanza el comando- Las llamadas de API llegan al proxy, que autentica la sesión local, elimina su token de autenticación local, inyecta solo el valor de bóveda de la ruta coincidente en el encabezado de autenticación exacto configurado de esa ruta y reenvía sobre TLS. Los encabezados y cuerpos controlados por el cliente nunca resuelven tokens
phm_. - Cuando la sesión termina, el proxy se apaga y su portador queda inválido.
phantom exectambién reemplaza los tokens del proyecto con tokens frescos de proceso hijo para esa ejecución. Los valores dephm_del proyecto persisten hasta la rotación; no son credenciales de proveedor y nunca son resueltos por el cliente, pero un proceso que controla un proxy activo autenticado aún puede invocar sus rutas de proveedor configuradas.
Phantom no otorga a las herramientas de IA permiso para leer .env u otros archivos dotenv. phantom setup elimina los permisos de lectura de dotenv gestionados por Phantom heredados y preserva las reglas de denegación; los agentes usan inventario MCP ciego a valores en su lugar.
Concesiones de proveedor
phantom grant retiene metadatos de ciclo de vida ciegos a valores y fundamentos de diseño
de protocolo de proveedor. En 0.7.5, toda emisión de proveedor en vivo, intercambio de inscripción,
actualización, renovación y ejecución de revocación está denegada estrictamente antes de que Phantom lea una
credencial de proveedor o abra una conexión de red de proveedor. No use comandos de concesión o
rotación esperando un cambio del lado del proveedor. Los mocks solo de prueba demuestran
comportamiento de transacción local únicamente; no son aceptación de proveedor en vivo.
In these docs, provider grant means design-era credential lifecycle metadata;
no live grant flow runs in 0.7.5. Authority grant means the inactive, value-free execution
authority type in phantom-authority. A provider grant cannot be reinterpreted
as an authority grant, Locus credential, broker lease, or execution permit. See
the design-era grant lifecycle specification; the
issuance contract is the original design contract and
retains design-era status language.
Integración con MCP (Claude Code, Cursor, Windsurf, Codex)
Phantom incluye un servidor MCP para que las herramientas de codificación con IA puedan inspeccionar metadatos ciegos a valores y solicitar operaciones de ciclo de vida con compuertas. Las respuestas de MCP no devuelven valores secretos reales.
Primera tarea de MCP: verificar el límite
Use esta ruta de solo lectura antes de explorar el catálogo completo de herramientas:
- Instale ambos binarios desde el
v0.7.5GitHub release revisado. - Desde el proyecto que desea inspeccionar, ejecute
phantom setup --client codex, reemplazandocodexconclaude,cursor, owindsurfcuando corresponda. - Reinicie el cliente de IA para que cargue la configuración MCP generada.
- Pregunte al cliente: "Llama a
phantom_capability, luego aphantom_status. Reporta la autoridad ciega a valores, las denegaciones estrictas, el backend de bóveda, el recuento de secretos y las asignaciones de servicios. No solicites ni reveles valores secretos." - Pregunte al cliente: "Llama a
phantom_checkconstaged: false. Reporta los hallazgos sin cambiar archivos ni credenciales."
Estas llamadas inspeccionan la superficie local configurada. No demuestran que los flujos de trabajo de nube, equipo, despliegue, proveedor, núcleo de autoridad o cliente estén activos o sean aceptados.
- Facade de conversación —
phantom_capabilityreporta autoridad y denegaciones estrictas para la facade pequeña (no el catálogo de compatibilidad avanzada con compuertas separadas);phantom_docanoniza una acción Cargo cerrada y reporta los bloqueadores de activación exactos sin ejecutarla;phantom_setup_workspacepropone un plan exacto ciego a valores, crea una solicitud de aplicación sin portador tras la revalidación, o lee el estado de una solicitud autenticada. El aprovisionamiento de la clave de sellado local de la máquina y la creación de una solicitud requierenconfirmmás un token de aprobación fuera de banda; MCP nunca reclama ni aplica la solicitud. - Bóveda —
phantom_list_secrets,phantom_status,phantom_init,phantom_add_secret_interactive,phantom_add_secret(obsoleto; rechaza texto plano),phantom_remove_secret,phantom_rotate,phantom_copy_secret - Detección + diagnósticos —
phantom_doctor,phantom_why,phantom_check,phantom_env,phantom_validate_secret,phantom_validate_all - Local a nube —
phantom_wrap,phantom_unwrap,phantom_sync,phantom_cloud_push,phantom_cloud_pull,phantom_cloud_status - Equipos —
phantom_team_list,phantom_team_create,phantom_team_members,phantom_team_invite,phantom_team_key_publish,phantom_team_vault_push,phantom_team_vault_pull - Auditoría avanzada, rotación, caducidad y cumplimiento —
phantom_audit_recent,phantom_audit_stats,phantom_audit_analytics,phantom_audit_anomalies,phantom_audit_anomalies_realtime,phantom_audit_hotspot_alerts,phantom_audit_incidents,phantom_leak_incidents_realtime,phantom_audit_alerts,phantom_audit_export_report,phantom_compliance_status,phantom_rotate_with_candidate,phantom_rotate_promote,phantom_rotate_provider,phantom_rotate_with_expiry,phantom_list_with_expiry,phantom_secret_rotation_due,phantom_validation_schedule,phantom_validation_history,phantom_secrets_expiry_check,phantom_secrets_auto_rotate,phantom_expiry_enforce,phantom_rotation_schedule_next,phantom_apply_expiry_policy
phantom_secrets_auto_rotate y phantom_rotate_with_expiry son nombres de compatibilidad
obsoletos para reasignaciones de tokens phm_ locales aprobadas. No rotan
una credencial de proveedor, renuevan metadatos TTL/rotated_at, limpian incidentes de fuga
ni sincronizan credenciales. phantom_rotate_provider también está estrictamente denegado antes del
acceso a credenciales o red en 0.7.5. Las invitaciones de equipo solo pueden asignar member o admin; la transferencia de propiedad
no es un rol de invitación.
Las herramientas que escriben estado, recuperan o usan credenciales, o realizan solicitudes de proveedor/red
están deshabilitadas por defecto. Pueden alcanzar sus compuertas confirm: true y
approval_token de un solo uso solo cuando el operador establece
PHANTOM_MCP_EFFECTS=trusted-terminal en un entorno de servidor fuera de la autoridad
del agente. phantom mcp-approve requiere stdin/stderr adjuntos, muestra el
efecto acotado ciego a valores más los parámetros exactos, y requiere un desafío
tecleado nuevo antes de la aprobación. Un shell del mismo usuario o una PTY controlada por el agente puede
anular esa ceremonia; deje los efectos deshabilitados a menos que el comando de aprobación y
el almacenamiento de aprobación ~/.phantom estén fuera de la autoridad del agente solicitante.
Las herramientas condicionales mantienen
su modo de inspección sin compuertas y activan ambas compuertas solo para los parámetros
con efectos. Los valores secretos reales nunca se aceptan como argumentos de herramientas MCP; los nuevos
secretos se ingresan fuera de banda en una terminal de confianza. Los nombres exactos de las 54 herramientas,
descripciones y esquemas JSON se reflejan desde el tools/list de ejecución hacia
mcp-registry/server.json, y las pruebas de humo del release
rechazan cualquier desviación.
phantom_rotate_with_candidate y phantom_rotate_promote permanecen en el
catálogo de compatibilidad de 54 herramientas como denegaciones estrictas obsoletas. Nunca crean,
validan ni promueven un candidato, y nunca cambian la bóveda ni los metadatos de sombra;
phantom_rotate_provider también está estrictamente denegado antes del acceso a credenciales o
red en 0.7.5. phantom add crea solo nombres nuevos y rechaza el reemplazo de nombres
existentes antes de leer un valor. Reemplazar una credencial requiere, por lo tanto,
una rotación de proveedor revisada por separado más una secuencia explícita de eliminar-y-agregar
en terminal de confianza; son operaciones distintas y no atómicas.
La configuración del espacio de trabajo está deliberadamente dividida entre límites de confianza. MCP puede llamar
a phantom_setup_workspace con phase=propose, luego a phase=request_apply usando
el plan_id y pre_state_id exactos devueltos. La primera propuesta requiere
aprobación dual solo cuando debe aprovisionar la clave de sellado de plan local de la máquina;
request_apply siempre requiere aprobación dual porque persiste una solicitud
sin valor fuera del repositorio. Aplíquela desde una terminal de confianza adjunta
con phantom workspace apply --request <ID>; MCP no tiene operación de reclamo ni de aplicación.
Un comando por cliente de IA — Phantom escribe el archivo de configuración correcto en el lugar correcto:
phantom setup --client claude # .claude/settings.local.json (project)
phantom setup --client cursor # ~/.cursor/mcp.json
phantom setup --client windsurf # ~/.codeium/windsurf/mcp_config.json
phantom setup --client codex # ~/.codex/config.toml
phantom setup --client claude --print # snippet to stdout for any other client
Instale ambos binarios del release v0.7.5 antes de la configuración. La versión 0.7.5 registra el
ejecutable phantom en ejecución con mcp serve cuando puede resolver ese ejecutable,
de lo contrario busca un phantom-mcp independiente local. La configuración no tiene respaldo
de ejecutor de paquetes por red y falla de forma cerrada cuando ninguno de los entornos de ejecución locales es
ejecutable. Inspeccione la entrada generada y luego reinicie la herramienta de IA para que tome
la nueva configuración.
El servidor MCP stdio de Phantom se puede configurar en clientes MCP que admitan servidores de comandos locales. El escritor de configuración tiene actualmente ajustes preestablecidos revisados para Claude Code, Cursor, Windsurf y Codex; otros clientes requieren su propia configuración compatible.
Respaldo en la nube + Panel de control
Respaldar y restaurar una bóveda en la misma máquina con llavero con cifrado del lado del cliente. Phantom Cloud recibe la carga útil de la bóveda cifrada en lugar de los valores secretos descifrados; la seguridad del endpoint, cliente, cuenta y llavero del sistema operativo sigue siendo parte del límite de confianza. La clave de cifrado en la nube se genera y almacena en el llavero local del sistema operativo. Phantom no incluye actualmente transferencia o recuperación de claves, por lo que el inicio de sesión de cuenta sin esa clave no puede descifrar este respaldo. Iniciar sesión, cerrar sesión, subir/bajar de la nube y abrir el navegador no son acciones de agente sin cabeza: ejecútelas con stdin, stdout y stderr adjuntos a una terminal fuera de la autoridad del agente solicitante y complete cada desafío tecleado nuevo exacto. El servicio público alojado no está actualmente comisionado para uso autenticado de nube o panel de control. Los comandos a continuación documentan el flujo respaldado por fuente para un futuro despliegue verificado y cuenta con derecho; no son un recibo de aceptación de servicio en vivo.
$ phantom login
# Opens GitHub OAuth (device code flow)
$ phantom cloud push
# After commissioning: encrypted client-side and uploaded to the configured service
$ phantom cloud pull # restore on the machine that holds the original cloud key
# Downloaded and decrypted locally
$ phantom open
# After commissioning: opens the configured read-only dashboard.
El respaldo en la nube usa ChaCha20-Poly1305 con una frase de contraseña aleatoria del lado del cliente almacenada en el llavero del sistema operativo y derivada mediante Argon2id para el cifrado. El servidor almacena solo texto cifrado. Las bóvedas de equipo son separadas: envuelven una clave de bóveda compartida para cada clave pública X25519 de miembro registrado; eso no hace portátiles los respaldos personales en la nube.
Bóvedas de equipo (piloto respaldado por fuente)
El repositorio incluye flujos de trabajo de bóveda de equipo con membresía fija destinados a un
piloto Pro alojado planificado. La elegibilidad del piloto, los límites de equipo y bóveda, y los precios
están por determinar; no hay compra de autoservicio comisionada. La
ruta de servicio almacena texto cifrado más acciones de clave cifradas por miembro. Los roles de equipo
controlan la gestión de invitaciones, pero todos los miembros pueden leer y escribir la bóveda compartida;
la eliminación de miembros y la rotación atómica de salida no están incluidas. Trate esto como una
capacidad piloto hasta que el servicio alojado y el derecho de cuenta estén comisionados.
Las mutaciones de equipo por CLI requieren la misma ceremonia de terminal de confianza adjunta antes del
acceso a credenciales, pares de claves, valores de bóveda o red. Las lecturas y escrituras de equipo por MCP
son solicitudes de proveedor y permanecen deshabilitadas por defecto detrás de confirm más un
token de aprobación fuera de banda de un solo uso.
$ phantom team create "engineering"
# Creates a team; you become the owner.
$ phantom team invite <team_id> <github-username>
# Invites by GitHub login.
$ phantom team key-publish <team_id>
# Registers your X25519 public key on the team.
# (Run once per team; the private key stays in the OS keychain.)
$ phantom team vault-push <team_id>
# Encrypts the current project's vault with a fresh symmetric key,
# wraps that key (X25519 + ChaCha20-Poly1305) for every member that
# has a registered public key, then uploads.
$ phantom team vault-pull <team_id> # on a teammate's machine
# Pulls, decrypts the per-member share with their private key,
# decrypts the vault, writes secrets locally.
Después de que un despliegue alojado esté comisionado y aceptado, su panel de control de equipo de solo lectura está diseñado para mostrar membresías de equipo y listas de miembros.
Referencia de comandos
| Comando | Descripción |
|---|---|
phantom init | Importa secretos .env al vault y reescríbelos con tokens phantom. Usa --empty para inicializar un nuevo proyecto antes de su primer phantom add; add no crea automáticamente el estado del proyecto. --all <DIR> procesa repositorios elegibles encontrados por el escaneo acotado de cinco niveles; el descubrimiento se detiene debajo del primer repositorio coincidente. Usa --dry-run para inspeccionar el conjunto exacto y --jobs N / -j N para controlar el paralelismo. |
phantom exec -- <cmd> | Inicia un proxy autenticado y ejecuta un comando con inyección de secretos |
phantom start | Ejecuta un proxy en primer plano explícitamente supervisado; mantén su terminal de confianza abierta y presiona Ctrl-C allí para detenerlo |
phantom start --daemon / phantom stop | El inicio en segundo plano falla de forma segura; detener es un diagnóstico de estado heredado solo para TTY que nunca mata ni elimina, no es control de procesos actual |
phantom list | Muestra los nombres de secretos almacenados en el vault (nunca valores; --json para salida legible por máquina) |
phantom add <KEY> | Crea un nuevo nombre de secreto transaccionalmente en un proyecto inicializado mediante un prompt oculto de terminal o un productor de confianza --stdin; los nombres existentes se rechazan antes de leer cualquier valor y nunca se reemplazan |
phantom remove <KEY> | Tras confirmación exacta en terminal de confianza, elimina transaccionalmente el valor del vault, la configuración del ciclo de vida y el mapeo exacto de dotenv gestionado; el uso sin cabeza falla antes del acceso o mutación de valores |
phantom reveal <KEY> | Desde una terminal de confianza adjunta, revisa y escribe el desafío exacto antes de imprimir un valor o copiarlo para una ventana de portapapeles de 30 segundos con borrado automático |
phantom status | Muestra el estado del vault/mapeo y si el bloqueo de ciclo de vida local de la máquina está retenido; un bloqueo retenido no autentica ni identifica un listener |
phantom rotate | Tras un desafío exacto de terminal adjunta vinculado al proyecto, configuración, dotenv gestionado y resumen ordenado de nombres protegidos, regenera cada token phantom local (los mapeos antiguos quedan inválidos). El uso sin cabeza falla antes del acceso o mutación del vault. La ejecución respaldada por proveedor --name/--provider está denegada estrictamente antes del acceso a credenciales o red en 0.7.5. |
phantom grant add <provider> | Superficie reservada de inscripción de proveedores; denegada estrictamente antes del acceso a credenciales o red en 0.7.5. Ver Concesiones de proveedor. |
phantom grant list / status | Lee nombres de concesiones de proveedor, proveedores, estado del ciclo de vida y metadatos de expiración sin devolver valores de credenciales. |
phantom grant revoke <provider> | Superficie reservada de revocación remota; actualmente falla de forma segura antes de la mutación local porque la revocación de proveedor no está conectada. |
phantom doctor | Verifica la configuración y la salud del vault (--fix para auto-reparar). Informa la fuente de instalación, backend del vault, estado del registro de auditoría, parámetros Argon2 y cableado MCP por cliente |
phantom agent report | Emite un informe de preparación de agente IA de solo lectura (--json para automatización). Informa unsafe, protected, verified, team-ready o compliance-ready |
phantom agent doctor | Vista de preparación de agente legible por humanos respaldada por el mismo motor de políticas |
phantom agent setup | Previsualiza o aplica valores predeterminados seguros para uso de agente (--dry-run primero, --apply para escribir cambios) |
phantom workspace plan [--json] | Construye un plan de configuración sellado exacto y crea una solicitud pendiente sin valores; no cambia el espacio de trabajo ni el vault |
phantom workspace apply --request <ID> | Recalcula y reclama la solicitud exacta en una terminal de confianza adjunta, requiere confirmación escrita y luego aplica transaccionalmente con reversión en caso de fallo |
phantom workspace status --request <ID> [--json] | Lee el estado de solicitud autenticado y sin valores |
phantom check | Escanea secretos desprotegidos (hook de pre-commit, --staged, --runtime) |
phantom sync | Envía secretos a Vercel / Railway (--dry-run --json previsualiza de forma segura; --only PATTERN filtra por glob, repetible) |
phantom pull | Extrae secretos de Vercel / Railway al vault |
phantom setup | Conecta Phantom a un cliente de IA. --client claude (predeterminado), cursor, windsurf o codex. Agrega --print para emitir el fragmento de configuración a stdout |
phantom env | Genera .env.example para la incorporación del equipo |
phantom export | Desde una terminal de confianza adjunta, revisa un plan exacto sin valores, escribe su nuevo desafío e ingresa una frase de contraseña dedicada a través del prompt oculto. Exporta --passphrase-file, exportación de texto plano, frases de contraseña argv, destinos existentes, enlaces simbólicos y rutas fuera del proyecto fallan de forma segura. |
phantom import | Desde una terminal de confianza adjunta, revisa y escribe el desafío exacto de origen/destino/nombre/sobrescritura antes de restaurar una copia de seguridad o importar datos de Doppler, Infisical, dotenvx, 1Password o env. --force selecciona el conjunto de sobrescritura revisado pero nunca omite el consentimiento. Un archivo de frase de contraseña privado acotado se acepta solo en plataformas que no sean Windows y aún requiere la ceremonia de terminal. |
phantom audit show | Imprime eventos de auditoría recientes (--last N, --op OP, --name NAME, --json). Requiere PHANTOM_AUDIT=1 |
phantom audit tail | Sigue el registro de auditoría en vivo (filtros --op, --name) |
phantom audit path | Imprime la ruta absoluta al archivo de registro de auditoría |
phantom audit verify | Verifica la integridad de la cadena HMAC-SHA256; sale con 1 si se detecta manipulación |
phantom login | Desde una terminal de confianza adjunta, aprueba un plan de red exacto y luego aprueba por separado la apertura/consulta del navegador y la persistencia del llavero |
phantom logout | Desde una terminal de confianza adjunta, aprueba la eliminación de la autorización persistente en la nube del llavero del sistema operativo |
phantom cloud push | Tras confirmación exacta en terminal de confianza, envía un vault cifrado por el cliente. Un éxito remoto seguido de un fallo de reconciliación local es un éxito parcial y no debe reintentarse automáticamente. |
phantom cloud pull | Tras confirmación exacta en terminal de confianza, extrae y descifra un vault. Con force=false, las entradas existentes omitidas preservan la base de fusión anterior y bloquean el envío posterior hasta una extracción aprobada completamente reconciliada. |
phantom cloud status | Lectura de proveedor autenticada; requiere terminales de confianza adjuntas y un desafío exacto antes del acceso a bearer o red |
phantom wrap | Envuelve scripts de package.json con phantom exec automáticamente |
phantom unwrap | Restaura los scripts originales de package.json |
phantom watch | Observa archivos dotenv gestionados e informa nuevos secretos desprotegidos. --auto deniega estrictamente antes de la mutación en 0.7.5; usa phantom init transaccional. |
phantom why <KEY> | Explica por qué una clave está o no protegida |
phantom copy <KEY> | Copia un secreto a un destino inicializado tras confirmación exacta en terminal de confianza; rechaza la propiedad existente del vault, configuración o dotenv gestionado del destino en lugar de sobrescribir |
phantom team list/members | Lecturas de proveedor autenticadas y sin valores. La CLI requiere terminales de confianza adjuntas y un desafío exacto antes del acceso a bearer/red; MCP requiere confirm más aprobación fuera de banda. |
phantom team create/invite/key-publish/vault-push/vault-pull/rotate-vault | Ejecuta efectos de equipo de la CLI solo desde una terminal de confianza adjunta y completa el desafío exacto antes del acceso a credenciales, par de claves, valores del vault o red. Las invitaciones asignan solo member o admin. |
phantom validate / --watch | Envía credenciales seleccionadas a validadores configurados solo tras consentimiento exacto en terminal de confianza; la autorización de observación termina cuando cambia la configuración o el conjunto de nombres del vault |
phantom validate schedule | Lee el estado sin mutación; establecer o deshabilitar la política de programador persistente requiere terminales adjuntas y un desafío escrito exacto |
phantom expiry set | Persiste la política de ciclo de vida solo tras confirmación en terminal adjunta; expiry enforce es de solo lectura, mientras que expiry rotate es solo un re-mapeo de token local obsoleto |
phantom open [page] | Desde una terminal de confianza adjunta, abre solo los alias revisados dashboard, billing, team, docs, pricing, github, issues o site; URLs arbitrarias, rutas y alias desconocidos se rechazan |
phantom upgrade | --check-only realiza una búsqueda de versión de solo lectura únicamente para una instalación independiente elegible. El reemplazo independiente en vivo requiere terminales adjuntas y dos desafíos exactos; las instalaciones gestionadas se enrutan a su propietario, las instalaciones ambiguas fallan de forma segura y --force se rechaza. |
phantom completion <shell> | Imprime un script de completado de shell (bash, zsh, fish, powershell, elvish) |
Rotación de credenciales reales de proveedores
Phantom 0.7.5 no ejecuta emisión o rotación de proveedores en vivo. Cada
ruta de proveedor—CLI de proveedor único, CLI por lotes, MCP, inscripción de concesiones, emisión aditiva
y actualización destructiva/continua—está denegada estrictamente antes del acceso a
credenciales de proveedor y antes de E/S de red. Los operadores deben rotar en el
proveedor y luego usar la ruta de entrada de secretos local de confianza de Phantom. Los adaptadores de origen y los mocks exactos
cfg(test) son evidencia de diseño transaccional, no activación de proveedor,
puesta en servicio o aceptación.
Matriz de soporte de proveedores
| Proveedor | Soporte | Notas |
|---|---|---|
vercel | Denegado estrictamente | La emisión aditiva puede dejar huérfano un sucesor en vivo después de un fallo local; sin llamada de proveedor en 0.7.5 |
google | Denegado estrictamente | La creación de versiones de Secret Manager sigue deshabilitada pendiente de recuperación duradera del sucesor y aborto verificado |
github | Denegado estrictamente | La emisión de tokens de instalación de GitHub App sigue deshabilitada pendiente del mismo contrato de recuperación |
stripe | Denegado estrictamente | Las claves crudas son manuales; la actualización OAuth continua puede invalidar el predecesor antes de la recuperación del sucesor |
aws | Denegado estrictamente | La rotación de pares de claves de acceso SigV4 no está implementada |
sentry | Denegado estrictamente | La emisión de tokens de instalación sigue deshabilitada pendiente de recuperación duradera del sucesor |
supabase | Denegado estrictamente | La rotación de PAT es manual; las rutas de emisión OAuth/aditiva no están puestas en servicio |
phantom rotate --batch sigue siendo descubrimiento solo de metadatos/guía manual y
falla de forma segura antes de la ejecución del proveedor. No existe excepción de proveedor único.
Características
- Bóveda cifrada -- Llavero de macOS, Secret Service de Linux o Administrador de credenciales de Windows, con un respaldo de archivo cifrado ChaCha20-Poly1305 para CI y entornos sin interfaz gráfica. Phantom no afirma vinculación de hardware con Secure Enclave. Argon2id usa m=64 MiB, t=3, p=1.
- Tokens de Phantom -- Marcadores de posición
phm_de CSPRNG de 256 bits en.env, rotables bajo demanda - Sesiones de proxy autenticadas -- cada ejecución de proxy genera un
PHANTOM_PROXY_TOKENnuevo; las URL de SDK generadas por CLI lo incluyen para compatibilidad, y los clientes conscientes de encabezados pueden optar porx-phantom-proxy-tokenconPHANTOM_PROXY_HEADER_AUTH_ONLY=1 - Inyección de credenciales propiedad de la ruta -- Los encabezados y cuerpos de los clientes nunca resuelven tokens
phm_. Después de autenticar y coincidir con una ruta integrada exacta, el proxy inyecta el secreto de bóveda configurado de esa ruta solo en su encabezado de autenticación fijo; una asignación faltante falla antes de cualquier llamada ascendente. Los cuerpos de solicitud aún se recopilan bajo un límite estricto de bytes antes de reenviarlos. - Soporte completo de SSE/streaming -- La transmisión de respuestas se conserva de extremo a extremo para OpenAI, Anthropic y otras API de streaming
- Detección inteligente -- El motor heurístico distingue secretos (
*_KEY,*_TOKEN,sk-*,ghp_*) de configuración (NODE_ENV,PORT) - Sincronización de plataformas -- Enviar/recibir secretos a Vercel y Railway
- Hook de pre-commit -- Ejecuta
phantom check --stagedcuando Git invoca el hook; verifica el contenido de dotenv en stage más un conjunto acotado de prefijos de claves codificadas. Los hooks se pueden omitir o saltar, por lo que CI y un escáner de secretos más amplio siguen siendo necesarios. - Servidor MCP -- bóveda ciega a valores, diagnósticos, nube, equipo, auditoría, rotación, validación, expiración y respuestas de cumplimiento para Claude Code, Cursor, Windsurf y Codex; las herramientas de compatibilidad con efectos permanecen separadas y deshabilitadas por defecto
- Copia de seguridad en la nube -- copia de seguridad y restauración cifradas por el cliente en la misma máquina y llavero; la transferencia y recuperación de claves no se incluyen, y la configuración de servicios desplegados y cuentas permanece como puertas operativas separadas
- Exportar/importar -- La exportación cifrada requiere una terminal adjunta, un desafío exacto y una frase de contraseña oculta; los archivos de frase de contraseña de exportación, texto plano y frases de contraseña en argv están deshabilitados. La importación usa su propia ceremonia de terminal exacta; solo la importación de copia de seguridad cifrada que no sea de Windows puede leer un archivo de frase de contraseña privado acotado. Las importaciones de competidores admiten Doppler, Infisical, dotenvx, 1Password y
.envsimple. - Registro de auditoría a prueba de manipulaciones --
PHANTOM_AUDIT=1escribe eventos de bóveda como JSONL en~/.phantom/audit.log. Cada entrada se encadena con HMAC-SHA256;phantom audit verifydetecta manipulaciones.phantom audit show/tail/pathpara acceso al registro. - Limpieza de respuestas -- Limpia valores de secretos configurados de rutas de respuesta de API compatibles antes de devolver datos al llamador
- Envoltura de scripts --
phantom wrapenvuelve scripts de ejecución/compilación seleccionados (dev,start,serve,build,deploy,preview) y deliberadamente deja intactos los scripts de prueba, lint, tipo y formato - Modo de vigilancia --
phantom watchinforma nuevos secretos desprotegidos; el--autoheredado deniega estrictamente antes de la mutación, por lo que la protección sigue siendo una transacciónphantom initrevisada - Escáner multiproyecto --
phantom init --all <DIR>procesa repositorios elegibles encontrados dentro de un escaneo acotado de cinco niveles y se detiene debajo del primer repositorio coincidente; use--dry-runpara verificar el conjunto exacto y--jobs Npara controlar el paralelismo - Configuración multi-IDE --
phantom setup --client claude|cursor|windsurf|codexescribe la configuración MCP correcta para cada herramienta de IA, o--printpara un fragmento genérico - Preparación del agente --
phantom agent doctoryphantom agent report --jsoninforman hallazgos de protección acotados y brechas de activación; no certifican un repositorio o agente como seguro - Diagnósticos enriquecidos --
phantom doctorinforma la fuente de instalación, el backend de bóveda, el estado del registro de auditoría, los parámetros de Argon2 y el cableado MCP por cliente - Explicador de secretos --
phantom why <KEY>explica las heurísticas de detección - Copia entre proyectos --
phantom copycomparte secretos entre bóvedas de proyectos - Bóvedas de equipo -- Compartición cifrada de membresía fija; los roles de propietario/administrador controlan las invitaciones, mientras que el acceso actual a la bóveda es amplio para miembros y la rotación de baja no se incluye
- Enrutamiento de servicios con cierre ante fallos -- las sesiones de proxy de agente aceptan las rutas integradas exactas de Phantom para OpenAI, Anthropic, Stripe, Supabase y otras revisadas; los destinos definidos por el repositorio se rechazan pendiente de soporte de aprobación de terminal confiable
- Modelo de amenazas -- Consulte THREAT_MODEL.md para activos, actores, mitigaciones y brechas conocidas
Instalación
Homebrew (macOS, v0.7.5)
Homebrew 6 requiere confianza explícita en fórmulas para taps de terceros:
$ brew tap ashlrai/phantom
$ brew trust --formula ashlrai/phantom/phantom
$ brew install ashlrai/phantom/phantom
Esta fórmula instala tanto phantom como phantom-mcp desde la versión inmutable
v0.7.5 de GitHub.
Activos exactos de GitHub v0.7.5
Use el activo que coincida con su sistema operativo y arquitectura. Descargue su archivo
.sha256 adyacente desde la versión, verifíquelo antes de extraerlo y coloque tanto
phantom como phantom-mcp (.exe en Windows) en PATH.
| Plataforma | Archivo v0.7.5 | Checksum publicado |
|---|---|---|
| macOS Apple Silicon | phantom-aarch64-apple-darwin.tar.gz | sha256 |
| macOS Intel | phantom-x86_64-apple-darwin.tar.gz | sha256 |
| Linux x86_64 | phantom-x86_64-unknown-linux-gnu.tar.gz | sha256 |
| Linux ARM64 | phantom-aarch64-unknown-linux-gnu.tar.gz | sha256 |
| Windows x64 | phantom-x86_64-pc-windows-msvc.zip | sha256 |
| Windows ARM64 | phantom-aarch64-pc-windows-msvc.zip | sha256 |
En Linux, verifique con sha256sum -c <archive>.sha256. En Windows, compare
Get-FileHash -Algorithm SHA256 <archive> con el sidecar publicado.
Compilar la fuente exacta de la versión
La etiqueta v0.7.5 resuelve al commit fuente
d2969e73995cc139e6253e0c8a70f1d683f88e20:
$ git clone https://github.com/ashlrai/phantom-secrets.git
$ cd phantom-secrets
$ git checkout d2969e73995cc139e6253e0c8a70f1d683f88e20
$ cargo build --release --locked --bin phantom --bin phantom-mcp
No trate los comandos de gestores de paquetes sin fijar como v0.7.5. Como se verificó el
2026-09-03, npm latest sigue siendo 0.6.0; los envoltorios inmutables de npm 0.7.4 existen
solo bajo release-candidate después de fallar la aceptación multiplataforma.
Ninguna publicación de npm 0.7.5, crates.io 0.7.5 o MCP Registry 0.7.5 está
representada por este recibo de versión de GitHub. Homebrew se publica por separado
y se verifica a través de su tap.
Conectar un cliente MCP
$ phantom setup --client claude # or cursor, windsurf, codex
Arquitectura
El espacio de trabajo de Rust está organizado como crates de producto más fundamentos de núcleo de ejecución con cierre ante fallos. La presencia en el espacio de trabajo no significa que un fundamento esté activado en producción.
| Capa | Crate | Rol y estado actual |
|---|---|---|
| Producto | phantom-core | Config, análisis/reescritura de dotenv, tokens, autenticación, cliente de nube, auditoría, validación y política compartida. |
| Producto | phantom-vault | Trait VaultBackend, backends de llavero de SO y archivo cifrado, y criptografía compartida. |
| Producto | phantom-proxy | Proxy inverso de loopback autenticado con inyección de encabezado de autenticación fija propiedad de la ruta, tokens de cliente inertes, limpieza de respuestas y soporte de streaming. |
| Producto | phantom-cli | CLI de operador para inicialización, ciclo de vida del proxy, preparación, auditoría, importación/exportación, sincronización, equipo y flujos de trabajo de espacio de trabajo. |
| Producto | phantom-mcp | Servidor MCP stdio. La fachada de conversación gobernada es estrecha; el catálogo de compatibilidad avanzada usa puertas heredadas separadas. |
| Producto | phantom-core/src/issuance, CLI grant | Fundamentos de protocolo/diseño de proveedores y metadatos de concesión sin valor. Toda la ejecución de emisión/inscripción de proveedores en vivo está estrictamente denegada antes del acceso a credenciales o red en 0.7.5. |
| Capa de efectos local | Transacciones phantom-core::fs, phantom-vault | Capacidades retenidas de directorios de proyecto/config, imágenes previas exactas de identidad/contenido/permisos, objetivos sin seguimiento, verificaciones de enlace único y efectos durables tipados, verificados por commit con advertencia de durabilidad, o CommittedButUncertain (Parcial). |
| Núcleo de configuración | phantom-workspace | Descubrimiento ciego a valores, planificación sellada y transacciones de configuración de terminal confiable recuperables. La mutación durable no Unix falla con cierre. |
| Fundamento inactivo | phantom-authority | Contratos de autoridad cerrados y frontera de verificación de producción de denegación total. Sin verificador Locus en vivo. |
| Fundamento inactivo | phantom-locus-contract | Contrato de compatibilidad sin valor que describe requisitos para una futura integración Phantom/Locus. |
| Fundamento inactivo | phantom-broker | Protocolo de broker acotado y primitivas durables de reproducción/contabilidad. Sin transporte activo, emisor de concesiones o conexión en tiempo de ejecución. |
| Fundamento inactivo | phantom-runtime | Esquemas de acción de ingeniería cerrados con ejecutor de producción de denegación total. |
| Fundamento inactivo | phantom-session | Diario de sesión explícito ante fallos. No conectado a la ejecución activa. |
| Fundamento inactivo | phantom-evidence | Primitivas de evidencia y recibo sin valor. No ancladas externamente ni conectadas a la ejecución activa. |
Los efectos locales del proyecto se resuelven desde la raíz retenida adquirida con el bloqueo de transacción del proyecto; la configuración global del editor está acotada por separado bajo una autoridad de configuración de usuario retenida. Una ruta ambiental renombrada y un señuelo de reemplazo no redirigen esas escrituras gobernadas en curso. Estos controles no son un sandbox de mismo usuario: los bloqueos locales coordinan escritores de Phantom, y otro proceso con autoridad de usuario equivalente permanece dentro del modelo de amenazas. Consulte la arquitectura, el modelo de amenazas y la matriz de evidencia de plataformas.
La inicialización retiene la identidad revisada de la raíz del proyecto y las instantáneas exactas de hojas de dotenv/config antes del aprovisionamiento de la bóveda, luego revalida la identidad de la raíz y las hojas, los bytes y los permisos bajo el bloqueo del proyecto antes de la mutación. En Windows, los nuevos archivos/directorios anclados privados establecen un DACL protegido de usuario actual antes de los bytes de contenido, mientras que los reemplazos preservan el DACL exacto revisado y el estado de herencia antes de escribir. Esas propiedades de Windows son contratos de fuente; la aceptación protegida de CI nativa de Windows sigue pendiente.
CommittedVerifiedButDurabilityUncertain está confirmado, verificado exactamente con
éxito con una advertencia/recibo sin valor y no debe revertirse ni
reintentarse. CommittedButUncertain es el caso Parcial distinto que requiere
reconciliación del operador porque la verificación o durabilidad sigue sin resolverse.
Las mutaciones respaldadas por bóveda resuelven la autoridad de bóveda/aplicación local de la máquina antes del bloqueo de transacción del proyecto, luego comparan la identidad de raíz adquirida y releen la configuración exacta a través de ese bloqueo. Esto evita la inversión compartida de entorno de proceso/bloqueo de proyecto sin confiar en los bytes del proyecto durante la brecha.
Phantom también rastrea un estándar de ingeniería derivado de Rama fijado para pilas de red explícitas, crates modulares, ejemplos ejecutables y CI de plataformas por niveles. Rama es un punto de referencia, no una dependencia, y la comparación no es una afirmación de característica o paridad de plataforma.
apps/web contiene el sitio Next.js y las rutas de backend para la sincronización de bóveda en la nube, autenticación de dispositivo GitHub y facturación de Stripe. El código fuente del repositorio y las pruebas locales son evidencia separada del estado actualmente desplegado en phm.dev.
Seguimientos de registros: npm latest actualmente resuelve
phantom-secrets y
phantom-secrets-mcp en
0.6.0. Los envoltorios exactos de 0.7.4 siguen siendo públicos solo bajo release-candidate
después de fallar la aceptación del canal nativo de npm; no use ese candidato como la
ruta de versión de GitHub v0.7.5 revisada.
CI ejecuta compilaciones bloqueadas de todo el workspace y pruebas en entornos macOS, Linux y Windows, además de verificaciones de formato, Clippy y mapeo de versiones npm. Las compilaciones de lanzamiento y la aceptación nativa de extremo a extremo son capas de evidencia separadas; consulte Soporte de plataformas.
Seguridad
- Reemplazo gestionado de dotenv — tras una inicialización exitosa, los valores dotenv gestionados por Phantom son tokens; los archivos no gestionados, copias de seguridad, registros y herramientas externas quedan fuera de esta afirmación
- Cifrado ChaCha20-Poly1305 para el almacén de archivos y la sincronización en la nube, derivación de claves Argon2id
- Almacenes en la nube cifrados por el cliente — la API del almacén en la nube almacena texto cifrado; el descifrado ocurre en el cliente autenticado. Esta afirmación no cubre texto plano enviado intencionalmente a proveedores de despliegue durante
phantom sync. - Tokens CSPRNG de 256 bits — el prefijo
phm_distingue los tokens de Phantom de los formatos de clave reales compatibles; las colisiones aleatorias son criptográficamente insignificantes, no matemáticamente imposibles - El proxy se vincula solo a 127.0.0.1 — no está vinculado a una interfaz no loopback; el robo de tokens por procesos locales del mismo usuario y de portadores sigue en el modelo de amenazas
- Ceroización de memoria dirigida para la recuperación principal del almacén, serialización y buffers de archivos descifrados; algunas copias de búsqueda del proxy siguen siendo cadenas ordinarias, por lo que la ceroización es defensa en profundidad más que una garantía completa de borrado de memoria
- Modelo de lista blanca — el proxy solo inyecta secretos para patrones de servicio configurados explícitamente
Consulte SECURITY.md para la política de divulgación responsable y THREAT_MODEL.md para el modelo de amenazas completo (activos, actores, mitigaciones, brechas conocidas, resumen criptográfico).
Ofertas de código abierto y comerciales
| Oferta actual | Qué cubre | Límite comercial |
|---|---|---|
| Código abierto ($0) | Usar, modificar y distribuir la CLI local, el almacén, el proxy, el servidor MCP y los flujos de sincronización de despliegue bajo MIT | No se incluye ningún derecho de servicio alojado ni compromiso de soporte |
| Empresarial (alcance por escrito) | Evaluación reversible, integración específica del entorno, revisión de seguridad y términos de soporte | Alcance, entregables, precio, cronograma y aceptación se definen en un acuerdo separado |
| Gubernamental (alcance por escrito) | Evaluación acotada del sector público e integración en un entorno no productivo designado | No se representa autorización, certificación, vehículo contractual, cronograma de adquisición, servicio alojado ni SLA |
Un piloto alojado Pro sigue siendo solo una dirección de hoja de ruta. No es una oferta pública actual, no tiene un proceso de compra autoservicio comisionado y no tiene precio ni derecho publicado. Consulte la guía de adopción empresarial para conocer los hitos enviados frente a los planificados, o contacte a mason@ashlr.ai para discutir un alcance por escrito.
Enlaces
- phm.dev — Sitio alojado; el despliegue y la aceptación autenticada permanecen separados del código fuente
- Mapa de documentación
- Guía de inicio
- Inicio rápido de delegación segura
- Guía de adopción empresarial
- Plantillas de delegación de agentes
- Índice de ejemplos
- Modelo de seguridad
- Modelo de amenazas
- Hoja de ruta
- Solución de problemas
- Registro de cambios
- Contribuciones
- Soporte
- Gobernanza
- Citación
Contribuciones
Las contribuciones enfocadas son bienvenidas. Comience con
CONTRIBUTING.md, el
índice de ejemplos o una
discusión. El
proyecto no asume que una etiqueta good first issue esté poblada. Siga
CODE_OF_CONDUCT.md y use
SECURITY.md en lugar de un problema público para vulnerabilidades.
Historial de estrellas
Si Phantom le evita filtrar una clave — o incluso solo preocuparse por ello — por favor dé una estrella al repositorio ⭐. Es la señal más grande que usamos para saber qué construir a continuación.
Licencia
MIT — consulte LICENSE.