Volver a proyectos
30 sept 2026
3 min de lectura

Orbit

Una interfaz de terminal (TUI) para lanzar, controlar y monitorizar servicios locales (procesos, contenedores Docker y docker compose) respetando sus dependencias.

Orbit

Orbit es una TUI para lanzar, controlar y monitorizar servicios de desarrollo locales: procesos (backends, frontends, workers), contenedores Docker y servicios de docker compose. Está construida con TypeScript, Bun y OpenTUI (@opentui/react), y se configura mediante un único archivo orbit.yaml.

 ◉ orbit · demo     1 Dashboard  2 Graph  3 Logs                                ● 7 up  ○ 1
╭─ Services 7/8 ───────────╮╭─ Dependency graph · 7/8 up ────────────────────────────────────╮
│ ● postgres       :55432  ││                               ╭────────────────────╮           │
│ ● redis          :56379  ││                         ╭────▶│ ● auth             ├────╮      │
│ ● auth           :4300   ││ ╭────────────────────╮  │     │ healthy :4300 40M  │    │      │
│▌● api            :4100   ││ │ ● postgres         ├──┤     ╰────────────────────╯    │      │
│ ● worker                 ││ │ healthy :55432 19M │  │                               │      │
│ ● web            :4200   ││ ╰────────────────────╯  │                               │  ... │

El problema

Levantar un entorno local suele implicar manejar muchas terminales: un contenedor de base de datos, un backend, un frontend, un worker, cada uno dependiendo de otro. Arrancarlos en el orden equivocado, dejar procesos huérfanos ocupando puertos o no saber cuál ha fallado hace el día a día incómodo.

Qué hace

  • Grafo de dependencias. Los servicios se colocan por capas y se colorean según su estado; al seleccionar un nodo se resaltan sus dependencias y sus dependientes. Se navega con teclado y ratón.
  • Arranque y parada ordenados. start levanta primero las dependencias y espera a que estén listas; stop detiene primero a los dependientes.
  • Healthchecks. HTTP, TCP, comando o el HEALTHCHECK de Docker.
  • Política de reinicio. no, on-failure o always, con backoff exponencial.
  • Logs en vivo. Por servicio o combinados, con prefijos de color, filtro por regex, scroll, marcas de tiempo y resaltado de errores y avisos.
  • Métricas de CPU y memoria. Por árbol de procesos (vía /proc) y por contenedor (docker stats), mostradas como sparklines.
  • Docker y compose. Importa automáticamente el docker-compose.yml (con depends_on, puertos, healthchecks e interpolación de variables) y se reengancha a contenedores que ya estaban en ejecución.
  • Tareas de una sola ejecución. Builds, migraciones o aprovisionamiento cuentan como listas cuando terminan correctamente.
  • Gestión robusta de procesos. Detecta puertos ocupados antes de arrancar y mata árboles de procesos completos, sin dejar procesos vite o esbuild huérfanos.
  • Paleta de comandos con búsqueda difusa, grupos de servicios y apertura en el navegador.

Uso

Publicada en npm como @jgoterris/orbit: se ejecuta con bunx @jgoterris/orbit o se instala globalmente. También ofrece comandos sin TUI (up, down, graph, ls) y orbit init, que genera un orbit.yaml escaneando el proyecto.

Estado

Herramienta personal de código abierto con licencia MIT. El código está cubierto por tests de la configuración, el grafo de dependencias, el supervisor (con procesos reales) y la TUI.