Referencia completa del CLI

Referencia del CLI

Cada comando, cada flag y qué hace cada uno. La mayoría muestra una TUI interactiva cuando hay terminal y salida plana cuando no.

El comando hubbound

Ejecutar hubbound sin argumentos abre la TUI interactiva cuando hay una terminal. En una shell no interactiva imprime la ayuda y termina.

El CLI habla con el daemon local (hubboundd) por HTTP para analytics y credenciales de dispositivo, y con la nube de HubBound para distribuciones, auth y actualizaciones.

$ hubbound

# abre la TUI interactiva (solo con terminal)

Flags globales

--debug Sube el nivel de log a debug. Flag persistente — funciona en todos los comandos. Los logs se escriben al directorio de logs de HubBound y se espejan a stderr.
--help, -h Muestra ayuda de cualquier comando o subcomando.

Distribuciones

hubbound manage

Gestiona kits y artefactos instalados de forma interactiva.

Uso

$ hubbound manage

Flags

--output <tui|json> Formato de presentación. Por defecto "tui" — pantalla interactiva con pestañas por proveedor, filtros de kit/artefacto, búsqueda y filtros de estado.

Ejemplos

$ hubbound manage --output json

Notas

  • Primero refresca tus distribuciones autenticadas — solo metadatos, nunca descarga los bundles de los artefactos.
  • Si el refresco falla, usa la caché local y te lo indica.
  • También muestra el login actual, la imposición de org/equipo y la disponibilidad de actualizaciones.
  • Reemplaza al comando deprecado `hubbound status`.

hubbound sync

Sincroniza tus distribuciones y materializa sus archivos localmente.

Uso

$ hubbound sync

Flags

--no-tui Salida de texto plano sin el progreso interactivo de la TUI.

Notas

  • La fase 1 trae tus distribuciones a state/artifact_installs.json y state/kit_installs.json.
  • La fase 2 descarga los archivos de cada artefacto en state/artifacts y los conecta con tus herramientas.

hubbound init

Crea un manifesto hubbound.json en el directorio actual.

Uso

$ hubbound init

Ejemplos

$ hubbound init

Escribe hubbound.json con name igual al basename del directorio.

Notas

  • Falla si ya existe hubbound.json en el directorio actual.
  • Después del init, hubbound install pelado e install/upgrade en scope local usan este archivo.

Relacionado

hubbound deploy

Valida y publica un release local de artifact o kit.

Uso

$ hubbound deploy [deployment...]

Flags

--path <dir> Directorio exacto del paquete que contiene hubbound.json. Default: .; deploy no sube a buscar un manifest padre.
--allow-dirty Permite un worktree Git sucio y marca source.dirty=true.
--dry-run Ejecuta el preflight local de manifest, Git y archivos sin crear un release remoto ni subir nada.
--wait-timeout <duration> Espera máxima por la publicación en el registry público cuando hay un watcher configurado. Default: 5m.
--yes Se acepta por compatibilidad con confirmaciones; el flujo actual de deploy no muestra un prompt interactivo.
--json Imprime solamente el resultado del deploy en JSON.

Ejemplos

$ hubbound deploy --path . --dry-run --json

Valida todo el snapshot local sin mutación remota.

$ hubbound deploy auditor --path .

$ hubbound deploy security-kit --path . --allow-dirty

Seleccionar un kit también prepara sus artifacts locales miembros.

Notas

  • Lee deployments de hubbound.json; los pins de dependencies nunca se publican con deploy.
  • El preflight requiere un worktree Git, remote.origin.url HTTPS sin credenciales embebidas y un HEAD SHA hexadecimal de 40 o 64 caracteres. Query y fragment se eliminan del repository URL normalizado; un worktree sucio requiere --allow-dirty.
  • Los archivos de artifacts se congelan y hashean antes de la primera mutación remota. El cliente sube solo los digests pedidos por el backend mediante URLs PUT presigned, sin headers Authorization ni DPoP, y después hace commit del release.
  • Los límites locales son 250 archivos, 2 MiB por archivo y 10 MiB de tamaño lógico total. Los archivos deben ser texto UTF-8 seguro; se rechazan .git, hubbound.json, .env, credenciales/certificados, binarios y archives.
  • Un deploy real necesita hubbound auth login y un backend autenticado de releases disponible. --dry-run es solo local. Un release público committed y una proyección active en el registry son estados separados; el checkout actual no conecta el watcher público.

Relacionado

hubbound install

Instala un kit o artefacto — o todos los pins de hubbound.json si lo corrés sin argumentos.

Uso

$ hubbound install

$ hubbound install <artifact|kit> <author/name[@version]>

Flags

--no-tui Salida de texto plano sin el progreso interactivo de la TUI.
--scope <local|global> Scope de instalación. Por defecto: local si hay un hubbound.json caminando hacia arriba desde el cwd; si no, global.
--tool <list> Tools separadas por coma: cursor, antigravity, claudecode, codexcli, copilot. Por defecto: todas.
--profile <name> Pinnea en un perfil global con nombre (e instala si ese perfil está activo). Solo global — incompatible con --scope local.

Ejemplos

$ hubbound install

Instala en bloque cada artifact/kit pineado en el hubbound.json más cercano.

$ hubbound install artifact jane-a1b2c3/my-hook

$ hubbound install kit jane-a1b2c3/ai-tools-bundle@1.2.0

Fija una versión exacta con @version.

$ hubbound install artifact jane-a1b2c3/my-hook --profile work

Pinnea en el perfil work; instala ya si work está activo.

Notas

  • Si hay hubbound.json arriba del cwd, el scope por defecto es local y los installs exitosos registran la versión resuelta en ese archivo.
  • hubbound install sin args requiere un hubbound.json (corré hubbound init antes); si no, falla.
  • Con --profile en un perfil inactivo: se guarda el pin y la TUI ofrece switch (o imprime un hint con --no-tui).

Relacionado

hubbound uninstall

Quita un kit o artefacto de tus herramientas locales.

Uso

$ hubbound uninstall <artifact|kit> <author/name>

Flags

--remote Retira la distribución remota directa antes de limpiar localmente.
--no-tui Salida de texto plano sin el progreso interactivo de la TUI.

Ejemplos

$ hubbound uninstall artifact jane-a1b2c3/my-hook

$ hubbound uninstall kit jane-a1b2c3/ai-tools-bundle --remote

Notas

  • Uninstall quita la configuración de proveedores, archivos en caché y el estado de instalación local.
  • La distribución remota se preserva por defecto. Usa --remote para retirarla antes de limpiar esta máquina.
  • --local-only está deprecado — uninstall es local por defecto, omití el flag.

hubbound retract

Quita tu distribución remota directa de un kit o artefacto.

Uso

$ hubbound retract <artifact|kit> <author/name>

Flags

--no-tui Salida de texto plano sin el progreso interactivo de la TUI.

Ejemplos

$ hubbound retract artifact jane-a1b2c3/my-hook

$ hubbound retract kit jane-a1b2c3/ai-tools-bundle

Notas

  • Retract quita solo la distribución remota directa del usuario autenticado.
  • No desinstala la entidad ni quita archivos locales o configuración de proveedores.
  • Usa hubbound uninstall por separado para limpiar esta máquina.

hubbound upgrade

Actualiza un kit/artefacto (o todo) a su última versión.

Uso

$ hubbound upgrade <kit|artifact> <author/name>

$ hubbound upgrade all

Flags

--no-tui Salida de texto plano sin el progreso interactivo de la TUI.
--scope <local|global> Scope de upgrade. Por defecto: local si hay un hubbound.json caminando hacia arriba desde el cwd; si no, global.
--tool <list> Tools separadas por coma: cursor, antigravity, claudecode, codexcli, copilot. Por defecto: todas.

Ejemplos

$ hubbound upgrade artifact jane-a1b2c3/my-hook

$ hubbound upgrade all

Actualiza todos los kits y artefactos instalados.

Notas

  • En scope local con hubbound.json presente, upgrade refresca los pins en ese archivo después de un upgrade exitoso.

Relacionado

hubbound list

Lista los kits y artefactos instalados localmente.

Uso

$ hubbound list

Flags

--json Salida JSON.

Ejemplos

$ hubbound list

Imprime una tabla con columnas TAG, TYPE, VERSION, PIN y VIA.

$ hubbound list --json

Notas

  • Lee el estado local de instalaciones (state/artifact_installs.json y state/kit_installs.json): versión, modo de pin y origen.
  • Solo lectura: sin acceso a red y sin necesidad de login.

hubbound status

Muestra los kits/artefactos instalados y su estado por proveedor (deprecado — usa hubbound manage en su lugar).

Uso

$ hubbound status

Flags

--output <tui|json> Formato de presentación. Por defecto "tui" — pantalla interactiva con pestañas por proveedor, filtros de kit/artefacto, búsqueda y filtros de estado.

Ejemplos

$ hubbound status --output json

Perfiles

Crea un perfil global de installs con nombre.

Uso

$ hubbound profile create <name>

Flags

--no-tui Saltea prompts interactivos (ej. confirmación de absorción).

Ejemplos

$ hubbound profile create work

Notas

  • Escribe profiles/<name>/hubbound.json bajo el directorio de config de HubBound.
  • El primer perfil queda activo automáticamente.
  • Si ya hay installs globales opcionales sin perfil, la TUI puede absorberlos en este perfil.

Relacionado

Cambia el perfil global activo.

Uso

$ hubbound profile switch <name>

Flags

--no-tui Salida de texto plano sin el progreso interactivo de la TUI.

Ejemplos

$ hubbound profile switch personal

Notas

  • Desaplica installs opcionales del perfil anterior; nunca toca enforced ni archivos sin marcador.
  • Para cada pin con versión latest, chequea updates antes de aplicar.
  • Escribe el nuevo nombre en profiles/active.

Relacionado

Lista los perfiles de install y cuál está activo.

Uso

$ hubbound profile list

Ejemplos

$ hubbound profile list

Notas

  • Escanea profiles/*/hubbound.json y reporta conteos de artifacts/kits por perfil.

Relacionado

Cuenta y dispositivo

hubbound auth login

Autenticación via Device Code Flow.

Uso

$ hubbound auth login

Flags

--json Salida JSON (también fuerza salida no interactiva).
--no-tui Salida de texto plano sin la TUI.

Notas

  • Con una TTY muestra una pantalla de login interactiva; si no, imprime la URL de verificación y el código.
  • El código se copia al portapapeles automáticamente cuando es posible.
  • Tras la autorización, el dispositivo se enrola para analytics (credenciales DPoP).

hubbound auth status

Muestra el estado de autenticación.

Uso

$ hubbound auth status

Flags

--json Salida JSON.

Ejemplos

$ hubbound auth status

✓ Logged in (device <id>, token expires <ts>)

hubbound auth logout

Borra las credenciales de autenticación.

Uso

$ hubbound auth logout

Notas

  • Revoca el dispositivo del lado del servidor. Si no se puede alcanzar el servidor, las credenciales locales se borran igual y se muestra una advertencia.

Muestra el estado de las credenciales del dispositivo de analytics.

Uso

$ hubbound device status

Flags

--json Salida JSON.

Notas

  • Consulta al daemon local — tiene que estar corriendo.
  • Reporta estado de enrolamiento, ID de dispositivo, expiración del token y ruta de credenciales.

Daemon

Muestra el estado del servicio del daemon.

Uso

$ hubbound daemon status

Verifica la salud del daemon por HTTP.

Uso

$ hubbound daemon health

Ejemplos

$ hubbound daemon health

Daemon is healthy at http://127.0.0.1:<port>

Instala el daemon como servicio del SO (requiere privilegios de administrador).

Uso

$ sudo hubbound daemon install

Notas

  • Registra hubboundd como servicio del sistema (launchd / systemd / Windows Service).

Inicia el servicio del daemon (requiere privilegios de administrador).

Uso

$ sudo hubbound daemon start

hubbound daemon stop

Detén el servicio del daemon (requiere privilegios de administrador).

Uso

$ sudo hubbound daemon stop

Reinicia el servicio del daemon (requiere privilegios de administrador).

Uso

$ sudo hubbound daemon restart

Desinstala el servicio del daemon (requiere privilegios de administrador).

Uso

$ sudo hubbound daemon uninstall

Analytics

Diagnostica el backlog de sincronización de analytics (pasivo, solo lectura).

Uso

$ hubbound analytics doctor

Flags

--output <tui|json> Formato de presentación. Por defecto "tui" — pantalla interactiva con pestañas Overall y por tabla.

Notas

  • Trae una snapshot de solo lectura del daemon local: watermarks, filas pendientes y cola de subida. No ejecuta check ni export.

Fuerza un ciclo de check y export/subida de analytics.

Uso

$ hubbound analytics push

Flags

--force Ignora el backoff de NextCheckAt en subidas pendientes.
--wait-timeout <duración> Cuánto esperar la confirmación de la nube (0 desactiva la espera). Por defecto 2m.
--json Imprime el resultado en JSON.
--no-tui Salida de texto plano sin la TUI.

Ejemplos

$ hubbound analytics push --force

$ hubbound analytics push --wait-timeout 0 --json

Actualizaciones

hubbound update

Busca una actualización firmada y aplícala opcionalmente.

Uso

$ hubbound update

Flags

--force Busca incluso cuando las actualizaciones automáticas están desactivadas.
--yes Aplica una actualización preparada sin preguntar.
--helper <ruta> Ruta del ejecutable hubbound-helper (por defecto usa HUBBOUND_HELPER o lo busca en PATH).
--no-tui Salida de texto plano sin la TUI.

Notas

  • Busca, descarga y verifica la última actualización firmada. Cuando hay una preparada, pregunta si aplicarla ahora (helper elevado) o después.
  • Aplicar cambia el bundle completo de la suite — hubbound, hubboundd, agent y helper quedan en la misma versión.

Imprime el estado de actualizaciones.

Uso

$ hubbound update status

Flags

--json Imprime JSON.
--no-tui Salida de texto plano sin colores.

Notas

  • Muestra canal, versiones actual/disponible/pendiente, último chequeo y último error.

Busca, descarga y verifica la última actualización firmada.

Uso

$ hubbound update check

Flags

--force Busca incluso cuando las actualizaciones automáticas están desactivadas.
--json Imprime JSON.
--no-tui Salida de texto plano sin la TUI.

Pídele a hubbound-helper que aplique la actualización firmada preparada.

Uso

$ hubbound update apply --force

Flags

--force Confirmación de seguridad obligatoria — el comando se niega a correr sin ella.
--helper <ruta> Ruta del ejecutable hubbound-helper.
--no-tui Salida de texto plano sin la TUI.

Notas

  • Requiere una actualización preparada (ejecuta hubbound update check primero) y privilegios elevados — por diseño vuelve a pedir sudo / UAC.

Diagnóstico

hubbound doctor

Diagnostica las integraciones de herramientas de Hubbound.

Uso

$ hubbound doctor

$ hubbound doctor diagnose

Flags

--output <tui|json> Formato de presentación. Por defecto "tui".
--verbose Muestra logs de diagnóstico en stderr.

Notas

  • --output y --verbose son flags persistentes — aplican a doctor, doctor diagnose y doctor repair.
  • doctor y doctor diagnose son equivalentes — solo lectura, no modifican archivos.

Repara los assets propios de Hubbound que falten.

Uso

$ hubbound doctor repair

Flags

--output <tui|json> Formato de presentación. Por defecto "tui".
--verbose Muestra logs de diagnóstico en stderr.

Notas

  • --output y --verbose se heredan del comando padre doctor.
  • Reescribe la configuración propia de Hubbound para los proveedores soportados (ej. Claude Code, git-ai).

hubbound version

Imprime la versión instalada.

Uso

$ hubbound version

Ejemplos

$ hubbound version

hubbound v1.0.0

hubbound docs

Abre la documentación del CLI en tu navegador.

Uso

$ hubbound docs

Notas

  • Abre una TUI interactiva con enlaces a la referencia completa del CLI y al sitio de documentación.