@axpath17/cli
v0.1.2
Published
Axpath capturer — la caja negra de tus agentes de IA. Hooks de Claude Code + proxy MCP. Agents act. Axpath attests.
Maintainers
Readme
axpath
Agents act. Axpath attests.
axpathes el capturador open source (Apache-2.0) de Axpath, la caja negra de tus agentes de IA: cada acción queda encadenada por hash y sellada en el tiempo (RFC 3161). Los logs no son prueba; una cadena de evidencia verificable, sí.
Qué hace
- Hooks de Claude Code (
PreToolUse/PostToolUse): cada acción del agente se normaliza al esquema canónico y los guardarraíles se evalúan localmente, de forma determinista, sin red en el camino de decisión (<150 ms). Nunca un LLM decide un bloqueo. - Proxy MCP para Claude Desktop, Cursor y Windsurf: passthrough STDIO
JSON-RPC línea a línea que observa cada
tools/cally bloquea las herramientas destructivas bajo guardarraíl (error JSON-RPC-32001). - Solo metadatos y hashes, NUNCA payloads: el contenido de archivos, comandos y parámetros se hashea (SHA-256) en tu máquina y jamás sale de ella en claro.
Instalación
Requiere Node.js ≥ 18. El paquete es autocontenido: un único bundle, cero dependencias.
npx @axpath17/cli init --token <código-de-enrolamiento> --api <url-del-servidor>init detecta los clientes instalados, muestra exactamente qué va a modificar,
pide confirmación, hace backup (<config>.axpath-backup-N.json), inserta los
hooks y el proxy, y envía un evento de prueba.
Para revertirlo todo:
npx @axpath17/cli uninstallActualización
axpath update sincroniza tu capturador con el bundle que sirve tu instancia
(descarga verificada por sha256, reemplazo atómico). axpath status te avisa
con DESACTUALIZADO cuando tu instancia sirve un bundle distinto. Si el
workspace tiene auto-update activado (Settings), el capturador se actualiza
solo y cada actualización queda sellada en el ledger. Las sesiones mcp-proxy
abiertas usan el código anterior hasta reiniciar el cliente.
Comandos
| Comando | Descripción |
|---|---|
| axpath init | Enrola la máquina e instala hooks + proxy MCP (con backup y confirmación). |
| axpath verify [--jsonld [file]] | Recomputa la cadena de hashes y las raíces de Merkle localmente. Exit 1 si la cadena está rota. |
| axpath status | Configuración local, spool pendiente y última sync. |
| axpath update | Actualiza el bundle al que sirve tu instancia (sha256 verificado, reemplazo atómico). |
| axpath uninstall [--yes] | Restaura los configs de cliente desde backup y borra el estado local (~/.axpath). |
| axpath hook | Hook de Claude Code — recibe el payload por stdin. No se invoca a mano. |
| axpath mcp-proxy --name <server> -- <cmd> [args…] | Proxy STDIO delante de un servidor MCP real. |
Verifica sin confiar en Axpath
axpath verify es reproducible por terceros. La especificación normativa de
canonicalización, encadenado de hashes, árboles de Merkle y sellos RFC 3161
viaja dentro de este mismo paquete, junto con los vectores dorados que
ejecuta nuestra propia suite de tests:
dist/spec/SPEC.md— especificación normativa (v1.0, en inglés).dist/spec/golden-vectors.json— vectores dorados (lo publicado ES lo testeado).
Tras instalar, están en node_modules/@axpath17/cli/dist/spec/SPEC.md. Cualquiera
puede reimplementar el verificador sin leer nuestro TypeScript.
Política de fallo
Fail-open con logging por defecto: si el capturador no puede evaluar, la acción
no se bloquea (no rompemos tu flujo). Excepción fail-closed: las
acciones destructivas (file.delete, dir.delete, record.delete,
vcs.force_push) bajo guardarraíl activo se deniegan si el estado es
ilegible. Un borrado nunca «se cuela» por un fallo del sistema.
Estado local
~/.axpath/ (o AXPATH_HOME): state.json (token de dispositivo + caché de
guardarraíles y concesiones) y spool/pending.jsonl (eventos pendientes de
entrega; se drenan en cada ejecución con red).
Licencia y código
Apache-2.0. Código fuente en
github.com/Axpath/axpath (este paquete
vive en packages/capturer del monorepo; el resto del monorepo Axpath es
propietario). Más sobre la plataforma en www.axpath.com.
