Renombra la funcion entrypoint y su comando a fleetclaude. Ademas, sobre el .sh: - atajos nuevos: alt+0 (= alt+n), alt+k (kill), alt+r (resume picker), alt+flecha-izquierda (volver atras), alt+q (cerrar toda la flota con confirmacion). - mouse on, remain-on-exit off (cierra window al salir el Claude). - estetica neutra de tmux: status bar y bordes de pane en gris (sin verde fosforo), borde activo igual que inactivo (separacion simple sin resaltado de foco). Docs (INDEX, claude-fleet.md) actualizadas al nuevo nombre. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.9 KiB
Capability group: claude-fleet
Operar la flota de procesos Claude Code vivos en la máquina como una sola unidad: descubrirlos, listarlos en un panel TUI y centralizarlos en una ventana kitty con tmux donde se conmuta cuál está embebido a la derecha. Reemplaza el caos de N ventanas kitty dispersas por un único punto de entrada.
Pieza visible: la app fleetview (TUI). Entrypoint: el comando fleetclaude.
Funciones
| ID | Firma | Qué hace |
|---|---|---|
list_claude_fleet_go_infra |
ListClaudeFleet() ([]ClaudeFleet, error) |
Escanea ~/.claude/sessions/*.json + goals/, valida procesos vivos (anti-PID-reciclado), join por sessionId → lista tipada con status/objetivo/cwd/target. |
launch_fleetclaude_bash_infra |
launch_fleetclaude [--cwd <d>] [--bin <p>] [--session <n>] [--cols <n>] |
Entrypoint: abre kitty con sesión tmux (socket aislado -L fleet) de dos panes (TUI izq + Claude der). Instala atajos alt+* e hijos del sidebar. |
tmux_new_claude_window_go_infra |
TmuxNewClaudeWindow(socket, session, cwd string) (string, error) |
Crea una window tmux nueva con claude --dangerously-skip-permissions. Devuelve el window_id. |
tmux_swap_window_into_console_go_infra |
TmuxSwapWindowIntoConsole(socket, session, windowID string) error |
Trae el Claude de windowID al pane derecho de console (junto a la TUI), parkea el anterior, re-fija el ancho del sidebar. |
tmux_map_claude_panes_go_infra |
TmuxMapClaudePanes(socket string) (map[int]string, error) |
Mapa claudePID → window_id de los Claude que viven en la sesión (vía list-panes + descendencia /proc). Permite a la TUI saber cuáles son conmutables. |
App relacionada: fleetview_go_infra (apps/fleetview/) — la TUI Bubble Tea que consume list_claude_fleet y orquesta los wrappers tmux.
Ejemplo canónico (end-to-end)
# 1. Compilar la TUI una vez.
cd ~/fn_registry/apps/fleetview && go build -o fleetview .
# 2. Abrir la flota (una ventana kitty: panel izq + Claude der).
fn run launch_fleetclaude
# 3. Dentro de la ventana, desde CUALQUIER pane (incluido escribiendo en Claude):
# alt+↑/↓ mueve el cursor de la lista
# alt+enter conmuta el pane derecho al Claude seleccionado
# alt+n abre un Claude nuevo (window en fleet) y conmuta a él
# Inspección headless de la flota sin abrir nada:
fn run list_claude_fleet | jq '.[] | {rename, status, goal}'
Bajo el capó de alt+enter/alt+n: tmux redirige la tecla al pane de la TUI
(bind -n M-Enter send-keys -t console.0 Enter); la TUI resuelve el Claude
seleccionado con TmuxMapClaudePanes y lo trae con TmuxSwapWindowIntoConsole
(o crea uno con TmuxNewClaudeWindow).
Fronteras (qué NO cubre)
- No gestiona Claudes remotos (ej. los de una sesión tmux del móvil): se listan como contexto pero no se embeben localmente (no son panes de fleet).
- Adopción de Claudes sueltos pendiente: un Claude vivo en otra ventana kitty
(fuera de fleet) se lista, pero
alt+entersobre él aún no lo trae — requerirá relaunchclaude --resume <sessionId>dentro de fleet (patrón dereboot_all_claudes_bash_infra). - No reinicia ni mata Claudes (todavía):
resume/killdesde el panel son fase posterior. Para reiniciar toda la flota existereboot_all_claudes_bash_infra. - Linux + kitty + tmux únicamente (build tag
!windows, usa/proc).
Prerequisitos
kittyytmuxen el PATH. La sesión vive en un server tmux aislado (-L fleet).- La TUI
fleetviewcompilada (apps/fleetview/fleetview). - Claude Code ≥ 2.1.x (escribe
~/.claude/sessions/<PID>.jsonconstatus).
Notas
- Toda la sesión usa el socket
-L fleet: los atajosbind -nno afectan al tmux por defecto del usuario;tmux -L fleet kill-serverlo limpia entero. reboot_all_claudes_bash_infracomparte la misma fuente de verdad (~/.claude/sessions/<PID>.json) y es el complemento para reiniciar la flota.