763e06c127
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9.0 KiB
9.0 KiB
name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | params | output | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| launch_fleetclaude | function | bash | infra | 1.4.0 | impure | launch_fleetclaude [--cwd <dir>] [--bin <path>] [--session <name>] [--reuse] [--cols <n>] | Entrypoint de FleetView: abre una ventana kitty con una sesion tmux (socket aislado por perfil) de dos panes (TUI fleetview a la izquierda, claude --dangerously-skip-permissions a la derecha) para centralizar la flota de Claudes. Soporta PERFILES multiples: sin --session/--reuse cada invocacion abre un perfil nuevo (fleet, fleet2, fleet3, ...) con su propia flota; inyecta FLEET_SOCKET/FLEET_SESSION a la TUI para que cada panel vea solo sus Claudes. Instala atajos alt+flechas/alt+enter/alt+n que controlan la TUI desde cualquier pane, y fija el ancho del sidebar con hooks. |
|
|
Crea/reutiliza una sesion tmux detached con dos panes y lanza una ventana kitty 'FleetView' adjunta a ella, desacoplada del shell padre (setsid). Imprime el estado por stdout. Sin valor de retorno; exit 0 en exito. | false | error_go_core | false | bash/functions/infra/launch_fleetclaude.sh |
Ejemplo
# Via fn run (resuelve por nombre o ID):
fn run launch_fleetclaude
# Perfil nuevo automatico (fleet la 1a vez; fleet2, fleet3, ... si ya hay uno):
launch_fleetclaude
# Reattach a la flota principal 'fleet' (comportamiento idempotente clasico):
launch_fleetclaude --reuse
# Perfil con nombre fijo y ancho de pane personalizado:
launch_fleetclaude --session trabajo --cols 50
Tras invocarlo aparece una ventana kitty titulada FleetView (<perfil>) con dos
panes lado a lado: a la izquierda la TUI fleetview, a la derecha una sesion de
claude --dangerously-skip-permissions. Cada perfil es un socket+sesion tmux
aislados con su propia flota: puedes tener varias FleetView abiertas a la vez.
Por defecto, volver a invocarlo abre un perfil NUEVO (no reusa); usa --reuse
o --session <nombre> para volver a una flota concreta.
Cuando usarla
Usala cuando quieras un unico punto de entrada a la flota de Claudes en vez de
N ventanas kitty sueltas: lanzas fleetclaude y tienes la TUI de control y un
Claude listo para trabajar en la misma ventana. Tipico al empezar la jornada o
al retomar el trabajo en el repo fn_registry.
Gotchas
- Perfiles multiples (default = perfil nuevo): sin
--sessionni--reuse, cada invocacion abre un perfil NUEVO usando el primer nombre libre de la secuenciafleet,fleet2,fleet3, ... (socket+sesion tmux comparten el nombre del perfil). Asi puedes tener varias FleetView abiertas a la vez, cada una con su flota independiente. Un perfil cerrado libera su nombre: tras matarfleet, el siguiente lanzamiento vuelve afleet. Para reattach a una flota concreta:--reuse(principalfleet) o--session <nombre>(idempotente sobre ese nombre, reusa el layout si ya vive). - Perfil ↔ TUI por entorno: el launcher inyecta
FLEET_SOCKET/FLEET_SESSIONal pane de la TUI (y los fija en el server conset-environment -g, para querespawn-panede alt+R y los Claude nuevos hereden el socket).main.golos lee con fallback afleet. Por eso cada panel ve SOLO los Claude de su perfil (cruza la lista del sistema con los panes de su socket). - Dentro de tmux abre ventana nueva: si invocas
fleetclaudedesde dentro de una sesion tmux ($TMUXdefinido), NO haceattachanidado (rompe / avisa de nesting); cae a la ruta kitty y abre una ventana nueva. Fuera de tmux y con TTY, reutiliza la terminal actual conexec tmux attach. - kitty detached (setsid): la ventana se lanza con
setsid ... ¶ sobrevivir al cierre de la terminal que la invoco. No bloquea al shell padre. execen los panes: tanto la TUI comoclaudese lanzan conexec, asi que al terminar el proceso el pane se cierra en vez de dejar una shell zombie colgando. Excepcion: el fallback cuandofleetviewno esta compilado deja una shell interactiva a proposito (para que veas el mensaje y puedas compilar).- Requiere fleetview compilado: el default
--binapunta a<repo>/apps/fleetview/fleetview. Si ese binario no existe, el pane izquierdo muestracd apps/fleetview && go build -o fleetview .en lugar de fallar en silencio. Compila la TUI antes para el flujo completo. - Socket tmux aislado por perfil (
-L <perfil>): cada perfil vive en su propio server tmux (socket = nombre del perfil), separado del tmux por defecto del usuario y de los demas perfiles. Asi los atajosbind -nNO afectan otras sesiones (ej. una sesionmobile-1del movil) y matar un perfil no toca los otros:tmux -L <perfil> kill-server(oalt+qdentro de la TUI). - Atajos en el socket, NO en kitty.conf: instala
bind -nparaalt+flechas(mover el cursor de la TUI),alt+enter(conmutar al Claude seleccionado) yalt+n(abrir Claude nuevo). Son bindings de tmux que redirigen la tecla al pane de la TUI (send-keys -t console.0), asi funcionan ESTES DONDE ESTES (incluido escribiendo en el pane de Claude). No modifican la configuracion de kitty ni los atajos globales del escritorio. - Ancho del sidebar via hooks:
client-resizedywindow-layout-changedre-fijan el pane 0 (TUI) a--colscolumnas, porque elattachde kitty y el conmutar de Claude redistribuyen el espacio. - tmux siempre, kitty solo sin TTY:
tmuxes obligatorio (aborta != 0 si falta).kittysolo se necesita en la ruta sin-TTY (atajo de escritorio, cron, script), donde abre una ventana nueva. Invocado desde una terminal interactiva (el caso normal del aliasfleetclaude), reutiliza la terminal actual conexec tmux attachy NO necesita kitty — util en WSL u hosts sin kitty.
Capability growth log
- v1.4.0 (2026-06-18) — perfiles multiples. Socket+sesion tmux ya no son el
fijo
fleet: cada perfil tiene los suyos (mismo nombre). Sin--session/--reuse, cada invocacion abre el primer perfil libre (fleet,fleet2, ...), asi abrir FleetView con uno ya abierto arranca otra flota en vez de reusarla. Nuevo flag--reusepara el reattach idempotente clasico. El launcher inyectaFLEET_SOCKET/FLEET_SESSION(env +set-environment -g) ymain.godefleetviewlos lee (fallbackfleet), de modo que cada panel ve solo su flota. Titulo de kittyFleetView (<perfil>). Guard anti-nesting: invocado dentro de tmux abre ventana kitty nueva en vez deattachanidado. - v1.3.2 (2026-06-17) — targeting de panes por pane ID (
%0/%1) en vez de por indice (console.0). Antes fallaba concan't find pane: 0en hosts cuyo~/.tmux.confdefinebase-index 1/pane-base-index 1(el socket-L fleethereda esa config). Los pane ID son inmunes al base-index. Bug latente que el fix de kitty (v1.3.1) destapo al dejar de abortar antes de montar la sesion. - v1.3.1 (2026-06-17) — el guard de
kittyse movio a la rama sin-TTY. La ruta interactiva (exec tmux attach) ya no exige kitty, asi quefleetclaudefunciona en hosts sin kitty (p.ej. WSL) reutilizando la terminal actual. - v1.3.0 (2026-06-17) — renombrada de
launch_kittyclaudealaunch_fleetclaude(comandofleetclaude). Atajos:alt+0(= alt+n, abrir Claude nuevo),alt+k(kill con confirmacion),alt+r(picker de reanudar sesiones cerradas) yalt+flecha-izquierda(volver atras desde el picker). Cierra la window al salir el Claude (remain-on-exit off). - v1.2.0 (2026-06-16) — ancho del sidebar por defecto 47 columnas;
ctrl+0como atajo alterno para abrir Claude nuevo;mouse on(clic/rueda enrutados a la TUI) yextended-keys on(para quectrl+0llegue distinguible por el protocolo de teclado de kitty). - v1.1.0 (2026-06-16) — socket tmux aislado
-L fleet; instala atajosalt+flechas/alt+enter/alt+nque controlan la TUI desde cualquier pane; hooks que mantienen fijo el ancho del sidebar tras attach/conmutar.