You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "Supervisa sesiones de agentes, revisa llamadas a herramientas y gestiona políticas"
3
+
description: "Monitorea sesiones de agentes, revisa llamadas a herramientas y gestiona políticas"
4
4
icon: chart-line
5
5
---
6
6
7
-
El dashboard de failproofai es una aplicación web local para monitorear las sesiones de tus agentes de IA y gestionar políticas. Descubre qué hicieron tus agentes mientras no estabas.
7
+
El dashboard de failproofai es una aplicación web local para monitorear tus sesiones de agentes de IA y gestionar políticas. Descubre qué hicieron tus agentes mientras no estabas.
8
8
9
9
---
10
10
@@ -24,7 +24,7 @@ El dashboard lee directamente desde el sistema de archivos: las carpetas de proy
24
24
25
25
### Proyectos
26
26
27
-
Lista todos los proyectos de Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ y Gemini CLI _(beta)_ encontrados en tu máquina. Los proyectos de Claude se descubren desde `~/.claude/projects/` (o la ruta definida por `CLAUDE_PROJECTS_PATH`); los proyectos de Codex se descubren escaneando cada transcripción bajo `~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl` y agrupando por el `cwd` registrado en el primer registro de cada sesión; los proyectos de Copilot CLI se descubren escaneando cada `~/.copilot/session-state/<sessionId>/workspace.yaml` (configurable mediante `COPILOT_HOME`) y agrupando por su campo `cwd`; los proyectos de Cursor Agent se descubren escaneando metadatos por sesión bajo `~/.cursor/agent-sessions/<sessionId>/` (configurable mediante `CURSOR_HOME`, con `conversations/` y `sessions/` como alternativas) buscando un escalar `cwd` en `meta.json` / `session.json` / `workspace.yaml`; los proyectos de OpenCode se descubren consultando su base de datos SQLite en `~/.local/share/opencode/opencode.db` mediante `opencode db --format json` (se leen las tablas `session` y `project` agrupando por `project_id`); los proyectos de Pi se descubren escaneando transcripciones JSONL por sesión bajo `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl` (configurable mediante `PI_SESSIONS_DIR`) y extrayendo el `cwd` del primer registro de cada sesión; los proyectos de Gemini CLI se descubren escaneando `~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl` (configurable mediante `GEMINI_SESSIONS_DIR`) y recuperando el cwd canónico desde el marcador de texto `.project_root` adyacente. Un proyecto que ha sido utilizado por múltiples CLIs se muestra como una sola fila con todas las insignias correspondientes. Usa el menú desplegable **CLI** sobre la tabla para filtrar por un agente CLI específico; la URL preserva tu selección como `?cli=claude|codex|copilot|cursor|opencode|pi|gemini`.
27
+
Lista todos los proyectos de Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ y Gemini CLI _(beta)_ encontrados en tu máquina. Los proyectos de Claude se descubren desde `~/.claude/projects/` (o la ruta definida por `CLAUDE_PROJECTS_PATH`); los proyectos de Codex se descubren escaneando todos los registros en `~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl` y agrupándolos por el `cwd` registrado en el primer registro de cada sesión; los proyectos de Copilot CLI se descubren escaneando cada `~/.copilot/session-state/<sessionId>/workspace.yaml` (configurable mediante `COPILOT_HOME`) y agrupándolos por su campo `cwd`; los proyectos de Cursor Agent se descubren escaneando los metadatos por sesión en `~/.cursor/agent-sessions/<sessionId>/` (configurable mediante `CURSOR_HOME`, con `conversations/` y `sessions/` como alternativas) en busca de un escalar `cwd` en `meta.json` / `session.json` / `workspace.yaml`; los proyectos de OpenCode se descubren consultando su base de datos SQLite en `~/.local/share/opencode/opencode.db` mediante `opencode db --format json` (se leen las tablas `session` y `project` agrupándolas por `project_id`); los proyectos de Pi se descubren escaneando registros JSONL por sesión en `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl` (configurable mediante `PI_SESSIONS_DIR`) y extrayendo el `cwd` del primer registro de cada sesión; los proyectos de Gemini CLI se descubren escaneando `~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl` (configurable mediante `GEMINI_SESSIONS_DIR`) y recuperando el cwd canónico desde el marcador de texto `.project_root` adyacente. Un proyecto que haya sido utilizado por múltiples CLIs aparece como una sola fila con todas las insignias correspondientes. Usa el desplegable **CLI** encima de la tabla para filtrar por un agente CLI específico; la URL conserva tu selección como `?cli=claude|codex|copilot|cursor|opencode|pi|gemini`.
28
28
29
29
Cada proyecto muestra:
30
30
- Nombre del proyecto (derivado de la ruta de la carpeta)
@@ -39,54 +39,54 @@ Lista todas las sesiones dentro de un proyecto. Cada sesión muestra:
39
39
- ID de sesión
40
40
- Marcas de tiempo de inicio y fin
41
41
- Número de llamadas a herramientas
42
-
- Recuento de actividad de hooks (políticas que se ejecutaron)
42
+
- Recuento de actividad de hooks (políticas que se activaron)
43
43
44
44
Usa el filtro de rango de fechas y la búsqueda por ID de sesión para acotar la lista. Las sesiones están paginadas.
45
45
46
46
Haz clic en una sesión para abrir el visor de sesión.
47
47
48
48
### Visor de sesión
49
49
50
-
El visor de sesión responde la pregunta clave para los agentes autónomos: ¿qué hizo el agente y se mantuvo en curso? Una insignia de CLI junto al encabezado indica si la sesión es una transcripción de Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi o Gemini CLI. Muestra una línea de tiempo de todo lo que ocurrió en una sesión:
50
+
El visor de sesión responde la pregunta clave sobre los agentes autónomos: ¿qué hizo el agente y se mantuvo en curso? Una insignia de CLI junto al encabezado indica si la sesión es un registro de Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi o Gemini CLI. Muestra una línea de tiempo de todo lo que ocurrió en una sesión:
51
51
52
-
-**Mensajes**— Respuestas de texto de Claude y prompts del usuario
53
-
-**Llamadas a herramientas**— Cada herramienta que Claude invocó, con su entrada y salida
54
-
-**Actividad de políticas**— Para cada llamada a herramienta, qué políticas se ejecutaron y qué decisión devolvieron
52
+
-**Mensajes**- Las respuestas de texto de Claude y los prompts del usuario
53
+
-**Llamadas a herramientas**- Cada herramienta que Claude invocó, con su entrada y salida
54
+
-**Actividad de políticas**- Por cada llamada a herramienta, qué políticas se activaron y qué decisión devolvieron
55
55
56
56
La barra de estadísticas en la parte superior muestra la duración de la sesión, el total de llamadas a herramientas y un resumen de las decisiones de los hooks (recuentos de allow / deny / instruct).
57
57
58
-
Haz clic en el botón **Download Logs** para exportar la sesión. Para sesiones de Claude Code, Codex, Copilot, Cursor, Pi y Gemini obtienes la transcripción JSONL original en disco byte a byte; para OpenCode (cuyas sesiones residen en SQLite, no en disco) obtienes un documento JSON que refleja las tablas subyacentes `session` / `messages` / `parts`.
58
+
Haz clic en el botón **Download Logs** para exportar la sesión. Para sesiones de Claude Code, Codex, Copilot, Cursor, Pi y Gemini obtienes el registro JSONL original en disco byte a byte; para OpenCode (cuyas sesiones residen en SQLite, no en disco) obtienes un documento JSON que refleja las tablas subyacentes `session` / `messages` / `parts`.
59
59
60
60
### Políticas
61
61
62
-
Una página con dos pestañas para gestionar políticas y revisar actividad.
62
+
Una página con dos pestañas para gestionar políticas y revisar la actividad.
63
63
64
64
<Tabs>
65
65
<Tabtitle="Pestaña Políticas">
66
66
- Activa o desactiva políticas individuales con un solo clic (escribe en `~/.failproofai/policies-config.json`)
67
67
- Expande una política para configurar sus parámetros (para políticas que admiten `policyParams`)
68
68
- Instala o elimina hooks para un ámbito determinado
69
-
-Define una ruta de archivo de políticas personalizada
69
+
-Establece una ruta de archivo de políticas personalizada
70
70
</Tab>
71
71
<Tabtitle="Pestaña Actividad">
72
-
- Historial paginado completo de cada evento de hook que se ha ejecutado en todas las sesiones
72
+
- Historial completo y paginado de cada evento de hook que se ha activado en todas las sesiones
73
73
- Filtra por decisión, tipo de evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Gemini CLI _(beta)_), nombre de política o ID de sesión
74
-
- Cada fila muestra: marca de tiempo, nombre de política, decisión, insignia de CLI (naranja = Claude Code, morado = OpenAI Codex, azul = GitHub Copilot, esmeralda = Cursor Agent, ámbar = OpenCode, rosa = Pi, celeste = Gemini CLI), nombre de herramienta, ID de sesión y el motivo de las decisiones de deny/instruct
75
-
- Haz clic en un ID de sesión para abrir su transcripción — el visor detecta automáticamente qué CLI ejecutó el hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state/<id>/events.jsonl`, Cursor Agent `~/.cursor/agent-sessions/<id>/events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions/<encoded-cwd>/<id>.jsonl`, Gemini CLI `~/.gemini/tmp/<basename>/chats/<session>.jsonl`) y muestra la insignia de CLI correspondiente en el encabezado
74
+
- Cada fila muestra: marca de tiempo, nombre de política, decisión, insignia de CLI (naranja = Claude Code, morado = OpenAI Codex, azul = GitHub Copilot, esmeralda = Cursor Agent, ámbar = OpenCode, rosa = Pi, celeste = Gemini CLI), nombre de herramienta, ID de sesión y el motivo de las decisiones deny/instruct
75
+
- Haz clic en un ID de sesión para abrir su registro — el visor detecta automáticamente qué CLI activó el hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state/<id>/events.jsonl`, Cursor Agent `~/.cursor/agent-sessions/<id>/events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions/<encoded-cwd>/<id>.jsonl`, Gemini CLI `~/.gemini/tmp/<basename>/chats/<session>.jsonl`) y muestra la insignia de CLI correspondiente en el encabezado
76
76
</Tab>
77
77
</Tabs>
78
78
79
79
---
80
80
81
81
## Actualización automática
82
82
83
-
El dashboard tiene un interruptor de actualización automática en la navegación superior. Cuando está activado, la página actual se actualiza periódicamente para mostrar nuevas sesiones y actividad de políticas a medida que aparecen. Es esencial para supervisar sesiones de agentes autónomos de larga duración.
83
+
El dashboard tiene un interruptor de actualización automática en la navegación superior. Cuando está activado, la página actual se actualiza periódicamente para mostrar nuevas sesiones y actividad de políticas a medida que aparecen. Es esencial para monitorear sesiones de agentes autónomos de larga duración.
84
84
85
85
---
86
86
87
87
## Deshabilitar páginas
88
88
89
-
Si solo necesitas algunas partes del dashboard, define`FAILPROOFAI_DISABLE_PAGES` con una lista separada por comas de nombres de páginas:
89
+
Si solo necesitas algunas partes del dashboard, establece`FAILPROOFAI_DISABLE_PAGES` con una lista de nombres de páginas separados por comas:
El dashboard admite modo claro y modo oscuro. Cámbialo mediante el botón en la barra de navegación. La preferencia se almacena en el almacenamiento local de tu navegador.
102
-
103
-
---
104
-
105
99
## Configurar la ruta de proyectos
106
100
107
-
De forma predeterminada, el dashboard lee desde el directorio estándar de proyectos de Claude Code. Puedes sobrescribirlo para configuraciones personalizadas:
101
+
Por defecto, el dashboard lee desde el directorio estándar de proyectos de Claude Code. Sobrescríbelo para configuraciones personalizadas:
Cuando ejecutas el dashboard en **modo dev** (`npm run dev`) y accedes a él desde un hostname distinto de `localhost` — por ejemplo, un dominio personalizado, una IP remota o una URL tunelizada — puede que veas una advertencia como:
111
+
Cuando ejecutas el dashboard en **modo de desarrollo** (`npm run dev`) y accedes a él desde un nombre de host diferente a `localhost` — por ejemplo, un dominio personalizado, una IP remota o una URL con túnel — es posible que veas una advertencia como:
118
112
119
113
```text
120
114
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
121
115
```
122
116
123
-
Esto ocurre porque Next.js bloquea el acceso de origen cruzado a su websocket HMR (recarga en caliente de módulos), que es una función exclusiva del modo de desarrollo. Para permitir tu host, usa el flag`--allowed-origins`:
117
+
Esto ocurre porque Next.js bloquea el acceso de origen cruzado a su WebSocket de HMR (recarga en caliente de módulos), que es una funcionalidad exclusiva del modo de desarrollo. Para permitir tu host, usa la bandera`--allowed-origins`:
124
118
125
119
```bash
126
120
npm run dev -- --allowed-origins dashboard.example.com
@@ -132,12 +126,12 @@ Para múltiples hosts o IPs, pasa una lista separada por comas:
132
126
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
133
127
```
134
128
135
-
También puedes definir la variable de entorno `FAILPROOFAI_ALLOWED_DEV_ORIGINS` en su lugar:
129
+
También puedes establecer la variable de entorno `FAILPROOFAI_ALLOWED_DEV_ORIGINS` en su lugar:
136
130
137
131
```bash
138
132
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
139
133
```
140
134
141
135
<Note>
142
-
Esto solo aplica al modo dev. Al ejecutar`failproofai` (modo producción), no hay websocket HMR ni problemas de recursos de desarrollo de origen cruzado.
136
+
Esto solo aplica al modo de desarrollo. Cuando ejecutas`failproofai` (modo de producción), no hay WebSocket de HMR ni problemas de recursos de desarrollo de origen cruzado.
0 commit comments