MandarinaMandarina
code
● EN VIVO · OBSERVABILIDAD 100% LOCAL & PRIVADA
verified_user Observabilidad para Claude Code: Sesiones, Subagentes, skills y MCP

Observabilidad de agentes de código, Claude Code primero

Un hook en tu máquina envía cada Evento a un backend Node.js con SQLite, que lo muestra en vivo en un dashboard Angular por WebSocket. Todo corre en local: sin cuenta, sin nube y con control preventivo de costes.

terminal — raíz del repositorio
docker compose up
DISEÑADO PARA INGENIERÍA RIGUROSA

Seis Pilares de Observabilidad para Claude Code

Sin proxy intermedio lento, sin riesgo de fugas de propiedad intelectual y sin facturas sorpresa de telemetría.

speed

Ingesta Normalizada & WebSocket en Vivo

El hook send_event.mjs envía cada Evento por HTTP POST al backend Node.js, que lo guarda en SQLite y lo empuja al dashboard por WebSocket. Esquema de Evento normalizado, pensado para sumar otros Harness.

POST /api/v1/events · WS /ws
account_tree

Observador de Agentes & Subagentes

Comparativa por Tipo de Subagente (Lanzamientos, duración, coste y errores), perfil de cada Tipo y detalle de cada Lanzamiento con su Estado, su tarea y su respuesta.

COMPARATIVA POR TIPO DE SUBAGENTE
savings

Eficiencia de Caché de Prompts & Desglose

Cálculo de tasa de acierto de caché, ahorro neto en dólares, sobrecoste de escritura y diagnóstico de reescrituras (caducadas, cambio entre Sonnet y Opus).

CACHE READ/WRITE LEDGER
front_hand

Presupuestos & Control de Parada

Límites de Coste estimado por Sesión, por Proyecto y día o globales del día, con aviso en la cabecera y, si lo eliges, parada del agente desde el hook (continue: false). Las Reglas de bloqueo frenan en local rm peligrosos, push --force a main y ficheros sensibles.

PREVENTIVE HOOK · BLOCKING RULES
shield_with_heart

Enmascarado de Secretos, PII & Inyecciones

El hook enmascara secretos (claves de API, tokens) y datos personales (email, teléfono, IBAN, tarjeta, documento de identidad) antes de enviar, con marcadores tipados [REDACTED_*]. Avisa además cuando un contenido leído parece dar órdenes al agente (inyección).

LOCAL SANITIZATION & HEURISTICS
share

Exportación OTLP OpenInference & Tests

Exportación opt-in de cada Turno como traza OTLP con la convención OpenInference (Jaeger, Tempo, Datadog, Langfuse, Phoenix). Detecta también las ejecuciones de tests y recoge tu evaluación (+1/−1, etiquetas y notas).

OPENINFERENCE · VITEST · HUMAN EVALS
INTEGRACIÓN POR HOOKS

Arquitectura Ligera: Hook, Backend y Dashboard

Levanta Mandarina con Docker y registra el hook en el settings.json del proyecto que quieras observar. Solo necesitas Node ≥ 20 en tu máquina, sin npm install.

<proyecto>/.claude/settings.json JSON Config
{
  "env": { "MANDARINA_PROJECT": "mi-proyecto" },
  "hooks": {
    "PreToolUse": [{
      "matcher": "*",
      "hooks": [{
        "type": "command",
        "command": "node <MANDARINA>/adapters/claude-code/send_event.mjs"
      }]
    }],
    "PostToolUse": [ /* misma entrada */ ],
    "Stop": [ /* misma entrada, sin matcher */ ]
  }
}

Repite la entrada para SessionStart, UserPromptSubmit, PostToolUseFailure, SubagentStart, SubagentStop, SessionEnd, Notification y PermissionRequest. Sustituye <MANDARINA> por la ruta absoluta del repo.

1
Adaptador Sin Dependencias (send_event.mjs)

Claude Code lo ejecuta en tu máquina en cada hook. Enmascara secretos, evalúa las Reglas de bloqueo y envía el Evento; si Mandarina está apagado lo descarta y Claude Code sigue como si nada.

2
Backend Node.js + SQLite (better-sqlite3)

Fastify persiste los Eventos en SQLite, completa tokens, coste y Subagentes leyendo en solo lectura los Transcripts de ~/.claude, y los difunde por WebSocket. Nada sale de tu equipo.

3
Dashboard Angular + WebSocket

Board, Agentes, Subagentes, Skills, MCP, Tests, Bloqueos, Seguridad, Evaluaciones y Presupuestos, en vivo. La exportación OTLP es opcional.

ÚLTIMAS 24 H · BOARD

Métricas del Board de un vistazo

Sesiones trabajando y en pausa, tokens de entrada y salida, eficiencia de la caché, coste estimado y lo que queda de la cuota de tu suscripción de Claude (ventana de 5 h y semanal).

Métricas del Board de Mandarina: Sesiones trabajando y en pausa, tokens, caché, coste estimado y uso de la suscripción Métricas del Board de Mandarina: Sesiones trabajando y en pausa, tokens, caché, coste estimado y uso de la suscripción
Métricas de las últimas 24 h y uso de la suscripción. Captura con datos simulados.
INSPECCIÓN EN VIVO · CABINA DE MANDO

El Cockpit Definitivo para Agentes Claude Code

Sigue cada Sesión en vivo: su Estado, Subagentes, herramientas, skills y llamadas MCP, la ventana de contexto, los tokens, la caché y el coste, sin salir de tu equipo.

Detalle de una Sesión de Mandarina con ventana de contexto, uso de herramientas, tokens, caché y coste Detalle de una Sesión de Mandarina con ventana de contexto, uso de herramientas, tokens, caché y coste
Detalle de una Sesión: ventana de contexto, uso de herramientas, tokens, caché y coste. Datos simulados.
Pantalla de Eventos de Mandarina con la lista de Eventos en vivo, filtros por tipo y herramienta Pantalla de Eventos de Mandarina con la lista de Eventos en vivo, filtros por tipo y herramienta
Eventos: la lista cruda en vivo, con filtros por tipo, herramienta, Proyecto y Sesión. Datos simulados.
ROADMAP

De la Fase 1 a la producción

Fase 1 · MVP EN DESARROLLO

Observabilidad local fundacional, esquema de Eventos normalizado, observador de Subagentes y métricas de caché.

  • check_circle Ingesta de Eventos normalizados desde Claude Code (otros Harness, más adelante)
  • check_circle Observador de Agentes y Subagentes: comparativa por Tipo, duración y coste
  • check_circle Métricas de caché de prompts: tasa de acierto, ahorro neto y reescrituras
  • check_circle Presupuestos por sesión/proyecto con parada preventiva (continue: false)
  • check_circle Enmascarado de secretos y PII, avisos de inyección y Reglas de bloqueo
  • check_circle Exportación OTLP OpenInference y evaluación humana (+1/-1)
  • check_circle Alerta visual y sonora de Sesiones que esperan y uso de la suscripción
Fase 1A · Observabilidad Accionable SIGUIENTE

Cabina operativa en tiempo real para desbloquear al desarrollador y supervisar fricciones del harness.

  • pending_actions Bandeja de Atención Requerida y notificaciones del sistema para las Sesiones que esperan
  • commit Cambios de código por sesión (visor git diff, commits y PRs vinculadas)
  • compress Visor de conversación completa y compactaciones de contexto (PreCompact)
  • warning Detección heurística de bucles infinitos y fricción en herramientas
  • dns Mandarina como servidor MCP de solo lectura para los propios agentes
Fase 2 · Skills, Plugins & Configuración PLANIFICADA

Gestión activa de configuración del proyecto, editor de reglas de seguridad y evaluación de skills.

  • tune Acceso a configuración del proyecto y recomendaciones para CLAUDE.md
  • psychology Editor y evaluador de skills (SKILL.md con benchmark de disparo)
  • extension Gestor de plugins y marketplaces para hooks de Claude Code
  • gavel Editor de reglas de bloqueo con modo auditoría y prueba en seco
Fase 3 · Gobernanza en Git & Políticas de Equipo PLANIFICADA

El control vive donde el equipo ya colabora, el repositorio: sin SSO en la nube ni paneles multiusuario.

  • policy Políticas compartidas en el repo (mandarina.yaml: presupuestos, umbrales de parada y enmascarado de PII)
  • rate_review Auditoría de IA en Pull Requests: comentario automático desde CI con coste, caché y riesgos de seguridad
  • query_stats Métricas agregadas anónimas: resumen semanal de ahorro y eficiencia, sin código ni datos sensibles
Fase 4 · Federación Local & Plugins PLANIFICADA

Un modelo modular y abierto en lugar de una orquestación rígida entre agentes de terceros.

  • storefront Marketplace local de skills y hooks: instalar, actualizar y probar CLAUDE.md, skills y filtros de seguridad
  • lan Mesh local P2P en LAN para compartir aprendizajes de prompts y bucles a evitar, sin servidores en la nube
  • api APIs abiertas para CI/CD: herramientas internas consultan el estado de los agentes
Fases 5–7 · Reporting, Orquestación & Producción PLANIFICADA

Informes de auditoría, orquestación multi-agente y el nivel producción para servidores compartidos.

  • assessment Reporting exportable, comparador de sesiones y trazabilidad de criterios de aceptación
  • hub Orquestación multi-agente y delegación cruzada (Claude Code <-> Codex)
  • play_circle Lanzador headless de tareas con cola, cuotas de concurrencia y HITL en UI
  • badge Autenticación multiusuario SSO/OIDC y métricas de resultado por PR/commit
terminal DOCUMENTACIÓN

Pon Mandarina en marcha

Sin cuentas en la nube ni tarjetas: Docker para Mandarina y un hook de Claude Code en tu máquina.

docker compose up
  1. 1Clona el repo y ejecuta docker compose up: backend en 127.0.0.1:4000 y dashboard en 127.0.0.1:4200.
  2. 2Registra el hook send_event.mjs en el settings.json del proyecto que quieras observar.
  3. 3Abre el dashboard: el indicador debe decir «En vivo» y tus Sesiones aparecen al enviar un prompt.