Overboard

Plugin de Claude Code + servidor MCP en stdlib-Python que observa las sesiones de Claude Code en todos tus repos y mantiene un panel local actualizado: commits, revisiones de trabajo reciente a partir de diffs, diagramas de arquitectura y esquemas, y banderas de revisión. Sin clave API; funciona con tu suscripción de Claude. MIT.

Documentación

Overboard — Too many agents to manage? You need to go Overboard.

Overboard es un plugin de Claude Code que observa cada sesión de Claude Code en todos tus repositorios e informa lo que se envió — en la suscripción de Claude que ya tienes. Una sesión de /overboard se convierte en tu asistente: mantiene un panel de control en el navegador actualizado y señala las pocas cosas que necesitan tu atención. Muestra actividad de commits, visualizaciones de arquitectura y esquemas de base de datos (Mermaid), los prompts reales de LLM de tus proyectos, tarjetas de Trabajo reciente destiladas de los diffs reales, y — en vivo — los datos clave de "requiere revisión" de tus Claudes en funcionamiento. Sin claves por diseño: solo biblioteca estándar de Python (sin venv, sin pip install), y toda la IA se ejecuta en tu suscripción de Claude Code — sin ANTHROPIC_API_KEY.

The Overboard dashboard — project list with activity grids on the left, the selected project's report and Recent work cards in the center, launch/vision context on the right

El panel de control tiene una franja de paneles delgada en el extremo izquierdo — Proyectos · Programador · Plugins, con Configuración fijada en la parte inferior (teclas 1 2 3; el hash de la URL enlaza profundamente a cada panel: #/projects/<name>, #/scheduler, #/scheduler/run/<id>, #/plugins, #/settings/<page>).

Proyectos es el tablero de tres paneles: una barra lateral izquierda condensada lista cada proyecto con una cuadrícula de actividad estilo calendario (cada fila una semana, lun→dom, semana más reciente arriba — las últimas ~5 semanas) y cualquier bandera "⚑ N para revisar"; el centro se convierte en el detalle del proyecto seleccionado — resumen, informe de tu asistente, tarjetas de revisión de Trabajo reciente, actividad reciente, y análisis de arquitectura / prompts / forma de datos por repositorio; y una barra lateral derecha plegable es donde configuras el lanzamiento/hito del proyecto (tipo, acción, fecha objetivo, metas — con historial de rechazos) y visión/dirección. El asistente /overboard lee ese contexto para afinar sus informes y señalar lanzamientos que se retrasan. Programador y Plugins ocupan todo el ancho (abajo).

Instalar el plugin en Claude Code

Desde el marketplace Productive Mark:

/plugin marketplace add mrieck/claude-plugins
/plugin install overboard@productive-mark

O desde un clon local de este repositorio (incluye su propio marketplace):

/plugin marketplace add /path/to/overboard-plugin
/plugin install overboard@overboard-marketplace

Reinicia Claude Code (un cierre/relanzamiento completo, no solo /reload-plugins) para que lance el servidor MCP con la configuración actual. Verifica que /mcp muestre overboard ✔ conectado. Requiere python3 3.9+ en tu PATH (macOS estándar y cualquier Linux reciente califican).

Ejecutarlo

Desde Claude Code, /overboard abre el panel de control y ejecuta pasadas de actualización hasta que la acumulación se drene, luego se detiene — ejecútalo de nuevo cuando quieras un barrido fresco. Para ejecutar el panel de control directamente:

python3 -m overboard.app          # serve dashboard, open browser (native window if pywebview present)
python3 -m overboard.app --once   # headless refresh, print, exit

Sirve un panel de control en el navegador en http://localhost:8787. En el primer lanzamiento, un breve asistente de incorporación elige tus fuentes; los clones locales se descubren y analizan automáticamente. Lo bueno (resúmenes, tarjetas de Trabajo reciente, prompts reales, informes de arquitectura) se completa una vez que /overboard se ha ejecutado. Actualizar vuelve a extraer commits; Reescanear redescubre clones locales.

Programador

El panel Programador ejecuta sesiones recurrentes y desatendidas de Claude Code — "triaje nocturno a las 2am", "cada 2h entre 9–18", "una vez, esta noche a las 11" — sin la app de Mac. Está dispuesto como el de la app de Mac: una agenda de 10 días a la izquierda (cada disparo próximo, haz clic en uno para abrir su agente), Agentes | Historial en el medio, y un editor permanente a la derecha (o el detalle de la ejecución elegida). Cada agente (una ranura) tiene un nombre, un comando/prompt, una carpeta de trabajo (o un espacio de trabajo de tarea vinculado), un horario simple (diario / semanal / cada N horas / una vez — deliberadamente más simple que cron), un tiempo de espera y un interruptor de habilitación. El campo de prompt completa /slash-commands (tuyos, del proyecto, los comandos y habilidades de cada plugin instalado) y rutas de ~/ ./ /, y advierte cuando el comando del plugin no está habilitado en esa carpeta — con un botón Habilitar.

Las ejecuciones se lanzan dentro de Herdr (macOS y Linux) como claude --permission-mode auto, un espacio de trabajo por proyecto (nombrado según la carpeta del proyecto) con una pestaña por ejecución nombrada según la tarea, para que puedas ver o tomar el control de cualquier ejecución en la propia interfaz de Herdr. Cada ejecución se identifica por su propia sesión de Claude (capturada del hook SessionStart), por lo que una sesión tuya en la misma carpeta nunca se confunde con ella; cuando el hook Stop de la ejecución se dispara — y ningún subagente que haya generado sigue trabajando — el programador captura el mensaje de cierre y la transcripción, luego cierra el panel. Un claude fresco en una carpeta nunca confiada se bloquea en el diálogo de confianza de carpeta; el programador responde ese único diálogo (una vez por ejecución) y nada más — cualquier otro prompt se muestra como esperando entrada. Tomar el control enfoca la sesión en Herdr y deja de gestionarla (sin auto-/exit, el panel sigue siendo tuyo). Historial muestra lo que cada ejecución informó — el mensaje de cierre como prosa — con la captura de terminal cruda detrás de una divulgación; oculta, elimina o limpia ejecuciones. Un agente una vez se deshabilita a sí mismo después de dispararse. Ejecuciones concurrentes (1–8) y el tiempo de espera predeterminado están en Configuración ▸ Varios; un agente nunca se superpone a su propio próximo disparo. Las ejecuciones en cola sobreviven a un reinicio del panel de control (una ejecución que esperó más allá de su ventana de 30 minutos se omite, no se ejecuta obsoleta). El estado vive en ~/.cache/overboard/scheduler/.

Despachador

Arriba a la izquierda del panel Programador: escribe qué debería hacerse ("agrega una entrada de changelog al proyecto X para los commits de esta semana") y presiona Despachar. Una sesión de /overboard:dispatch de corta duración lee la solicitud, determina el proyecto (a través del list_projects del plugin), el prompt y el tiempo, y responde con una tarea — el programador la ejecuta (ahora, o como un agente una vez para más tarde), y el resultado (el trabajador escribe un result.json en una carpeta de tarea otorgada a través de --add-dir: resumen, archivos, enlaces) aterriza en la fuente de Despachos recientes, cada uno con un #id. El despachador también puede reply del registro de tareas ("¿qué está corriendo?") o reject una no-tarea. Los seguimientos ("hazlo más corto") reconstruyen el contexto de la tarea en una sesión fresca. Necesita un directorio de ejecución de Overboard (Configuración ▸ Varios) — tu raíz de espacio de trabajo, donde se pueden crear nuevas carpetas de proyecto. El estado vive en ~/.cache/overboard/dispatch/.

Despachar desde tu teléfono (Telegram, Slack próximamente) es una característica de Overboard para Mac; el despachador del panel de control es solo para navegador por diseño.

Pruebas: python3 -m unittest discover -s tests (solo stdlib). Para ejecutar el panel de control contra una copia del estado de otra persona sin tocar el tuyo, apúntalo a otra carpeta: OVERBOARD_STATE_DIR=/path python3 -m overboard.app.

Las ranuras se disparan solo mientras el servidor del panel de control está en ejecución. En una caja Linux siempre encendida, ejecútalo como un servicio de usuario systemd:

# ~/.config/systemd/user/overboard.service
[Unit]
Description=Overboard dashboard + scheduler

[Service]
ExecStart=/usr/bin/python3 -m overboard.app --serve --no-open
WorkingDirectory=%h/.claude/plugins/overboard   # wherever the plugin checkout lives
Restart=on-failure

[Install]
WantedBy=default.target
systemctl --user enable --now overboard
loginctl enable-linger $USER   # keep it running when you're logged out

Configuración

De fábrica, el modo solo local no necesita credenciales en absoluto — lee commits directamente de los clones de git en tu máquina con git log. Agrega un token de GitHub (clásico con alcance repo, o de grano fino con repositorio contenido + metadatos, lectura) o un token de API de Bitbucket (espacio de trabajo + correo de Atlassian) en Configuración ▸ Fuentes para incluir también commits que empujaste desde otras máquinas — cada fuente se fusiona en el mismo tablero.

Los tokens se guardan en ~/.cache/overboard/credentials.json (modo 0600, local a la máquina) y nunca se envían de vuelta al navegador. La ventana de commits (cuántos días de inactividad antes de que un repositorio desaparezca del tablero) es ajustable en Configuración también. Los valores predeterminados no secretos de la aplicación están en overboard/projects.json — refresh_interval_minutes, commit_window_days, y local_roots opcional (los valores predeterminados incluyen ~/projects, ~/code, ~/Developer, …) para dónde se descubren los clones locales. Otros archivos bajo ~/.cache/overboard/: state.json (commits, análisis, actividad), ai.json (los resúmenes e informes del asistente), context.json (tus lanzamientos + visión), events.jsonl (registro de actividad de solo anexo). Elimina cualquiera para restablecer esa pieza.

Licencia

MIT