refactor(infra): launch_kittyclaude → launch_fleetclaude (comando fleetclaude)

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>
This commit is contained in:
2026-06-17 00:36:09 +02:00
parent 927437a8d8
commit f6b9747f11
4 changed files with 39 additions and 25 deletions
@@ -1,11 +1,11 @@
---
name: launch_kittyclaude
name: launch_fleetclaude
kind: function
lang: bash
domain: infra
version: "1.1.0"
purity: impure
signature: "launch_kittyclaude [--cwd <dir>] [--bin <path>] [--session <name>] [--cols <n>]"
signature: "launch_fleetclaude [--cwd <dir>] [--bin <path>] [--session <name>] [--cols <n>]"
description: "Entrypoint de FleetView: abre una ventana kitty con una sesion tmux (socket aislado -L fleet) de dos panes (TUI fleetview a la izquierda, claude --dangerously-skip-permissions a la derecha) para centralizar la flota de Claudes. Instala atajos alt+flechas/alt+enter/alt+n que controlan la TUI desde cualquier pane, y fija el ancho del sidebar con hooks."
tags: [claude-fleet, infra, kitty, tmux, claude, fleetview, launcher]
params:
@@ -27,20 +27,20 @@ imports: []
tested: false
tests: []
test_file_path: ""
file_path: "bash/functions/infra/launch_kittyclaude.sh"
file_path: "bash/functions/infra/launch_fleetclaude.sh"
---
## Ejemplo
```bash
# Via fn run (resuelve por nombre o ID):
fn run launch_kittyclaude
fn run launch_fleetclaude
# Directo, con cwd explicito:
launch_kittyclaude --cwd ~/fn_registry
launch_fleetclaude --cwd ~/fn_registry
# Sesion y ancho de pane personalizados:
launch_kittyclaude --session fleet --cols 50
launch_fleetclaude --session fleet --cols 50
```
Tras invocarlo aparece una ventana kitty titulada `FleetView` con dos panes
@@ -51,7 +51,7 @@ sesion: reusa la existente y solo abre otra kitty adjunta.
## Cuando usarla
Usala cuando quieras un unico punto de entrada a la flota de Claudes en vez de
N ventanas kitty sueltas: lanzas `kittyclaude` y tienes la TUI de control y un
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`.
@@ -87,6 +87,11 @@ al retomar el trabajo en el repo `fn_registry`.
## Capability growth log
- v1.3.0 (2026-06-17) — renombrada de `launch_kittyclaude` a `launch_fleetclaude`
(comando `fleetclaude`). Atajos: `alt+0` (= alt+n, abrir Claude nuevo), `alt+k`
(kill con confirmacion), `alt+r` (picker de reanudar sesiones cerradas) y
`alt+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+0` como
atajo alterno para abrir Claude nuevo; `mouse on` (clic/rueda enrutados a la
TUI) y `extended-keys on` (para que `ctrl+0` llegue distinguible por el
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# launch_kittyclaude — Entrypoint MVP de FleetView.
# launch_fleetclaude — Entrypoint MVP de FleetView.
#
# Abre UNA ventana kitty corriendo una sesion tmux de dos panes:
# - pane izquierdo: la TUI 'fleetview' (la flota de Claudes centralizada).
@@ -16,7 +16,7 @@
set -euo pipefail
IFS=$' \t\n'
launch_kittyclaude() {
launch_fleetclaude() {
local cwd=""
local bin=""
local session="fleet"
@@ -46,7 +46,7 @@ launch_kittyclaude() {
;;
-h|--help)
cat <<'USAGE'
Uso: launch_kittyclaude [opciones]
Uso: launch_fleetclaude [opciones]
Abre una ventana kitty con una sesion tmux de dos panes: la TUI fleetview a la
izquierda y 'claude --dangerously-skip-permissions' a la derecha.
@@ -61,14 +61,14 @@ Opciones:
-h, --help Muestra esta ayuda.
Ejemplos:
launch_kittyclaude
launch_kittyclaude --cwd ~/fn_registry
launch_kittyclaude --session fleet --cols 50
launch_fleetclaude
launch_fleetclaude --cwd ~/fn_registry
launch_fleetclaude --session fleet --cols 50
USAGE
return 0
;;
*)
echo "launch_kittyclaude: opcion desconocida: '$1' (usa -h)" >&2
echo "launch_fleetclaude: opcion desconocida: '$1' (usa -h)" >&2
return 2
;;
esac
@@ -100,7 +100,7 @@ USAGE
# Validar cwd: si no existe, caer al repo_root.
if [[ ! -d "$cwd" ]]; then
echo "launch_kittyclaude: --cwd '$cwd' no existe; usando '$repo_root'." >&2
echo "launch_fleetclaude: --cwd '$cwd' no existe; usando '$repo_root'." >&2
cwd="$repo_root"
fi
@@ -108,11 +108,11 @@ USAGE
# Comprobar herramientas necesarias.
# -----------------------------------------------------------------------
if ! command -v tmux >/dev/null 2>&1; then
echo "launch_kittyclaude: tmux no esta instalado." >&2
echo "launch_fleetclaude: tmux no esta instalado." >&2
return 1
fi
if ! command -v kitty >/dev/null 2>&1; then
echo "launch_kittyclaude: kitty no esta instalado." >&2
echo "launch_fleetclaude: kitty no esta instalado." >&2
return 1
fi
@@ -133,9 +133,9 @@ USAGE
# Montar la sesion tmux SOLO si no existe (idempotencia). Socket aislado $T.
# -----------------------------------------------------------------------
if $T has-session -t "$session" 2>/dev/null; then
echo "launch_kittyclaude: la sesion tmux '$session' ya existe; reutilizandola."
echo "launch_fleetclaude: la sesion tmux '$session' ya existe; reutilizandola."
else
echo "launch_kittyclaude: creando sesion tmux '$session' en '$cwd'."
echo "launch_fleetclaude: creando sesion tmux '$session' en '$cwd'."
# Sesion detached con ventana 'console', pane 0 en el cwd objetivo.
$T new-session -d -s "$session" -n console -c "$cwd"
@@ -167,12 +167,21 @@ USAGE
$T bind -n M-0 send-keys -t "$session":console.0 n
$T bind -n M-k send-keys -t "$session":console.0 k
$T bind -n M-r send-keys -t "$session":console.0 r
$T bind -n M-Left send-keys -t "$session":console.0 Escape
$T bind -n M-q send-keys -t "$session":console.0 Q
# Raton: enruta clicks/rueda al pane bajo el cursor; la TUI los interpreta.
$T set -g mouse on
# Al salir un Claude (exit / Ctrl-D / kill), cerrar su window en vez de
# dejarla muerta ("dead" pane) en la sesion.
$T set -g remain-on-exit off
# Estetica neutra: sin el verde fosforo por defecto de tmux. Status bar gris y
# bordes de pane gris tenue, iguales en activo e inactivo (separacion simple,
# sin resaltado de enfoque).
$T set -g status-style "bg=colour236,fg=colour250"
$T set -g pane-border-style "fg=colour238"
$T set -g pane-active-border-style "fg=colour240"
# Mantener el ancho del sidebar (pane 0) cuando kitty redimensiona la ventana
# tras el attach, o cuando se conmuta de Claude (window-linked / layout change).
$T set-hook -g client-resized "resize-pane -t $session:console.0 -x $cols"
@@ -186,11 +195,11 @@ USAGE
setsid kitty --title "FleetView" -e tmux -L fleet attach -t "$session" </dev/null >/dev/null 2>&1 &
disown 2>/dev/null || true
echo "launch_kittyclaude: ventana kitty 'FleetView' adjunta a la sesion tmux '$session'."
echo "launch_fleetclaude: ventana kitty 'FleetView' adjunta a la sesion tmux '$session'."
return 0
}
# Permitir ejecutar el archivo directamente (no solo como funcion sourced).
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
launch_kittyclaude "$@"
launch_fleetclaude "$@"
fi