Skip to content

svjson/launch-goblin

Repository files navigation

Launch Goblin

A terminal-based launcher for multimodule projects.
Granular control over what you start, how you start it, and when.

Build and Test npm version GitHub License: MIT Node

Launch Goblin is a TUI (text-based user interface) tool for developers working in monorepos or other multi-service environments.
Instead of juggling turbo run and npm/pnpm with endless --filter or --workspace sequences, shell scripts, or custom launchers, you get a single interface where you can:

  • Inspect available modules
  • Select what to launch
  • Run targets interactively
  • Keep both shared and private launch configurations

Features (0.1.4)

  • Turborepo integration – browse and run turbo run targets per module.
  • npm and pnpm integration – run package.json scripts with npm or pnpm directly from the interface.
  • docker compose - run all or a selection of services from your docker-compose.yaml.
  • Granularity – pick specific modules or run multiple together.
  • shared and private configs - Keep common launch configurations in VCS and temporary working sets in $HOME.
  • Interactive TUI – keyboard-driven, curses-style UI with focus and navigation.

Installation

System-wide

To install launch-goblin as a global command on your system, you typically use a package manager.

$ pnpm install -g launch-goblin

Then run it from your repository/multi-module product root:

$ launch-goblin

NodeJS project

To use launch-goblin in a NodeJS project, add it as a devDependency and create a package.json script:

$ pnpm add -D launch-goblin

package.json

{
  "scripts": {
    "dev": "launch-goblin"
  }
}

Running Launch Goblin

By default, Launch Goblin attempts to run the dev target/script of your project or turborepo configuration.

Commands / Arguments

Argument Command
(no-args) Open the Launch Goblin TUI
Specify the default launch/target script, and open the Launch Goblin TUI
--r, --relaunch Bypasses the TUI component selection and immediately launches the most recently launched configuration
--i, --term-info Outputs the information about the terminal environment you are running in

When running the Launch Goblin TUI, you can use --color-mode <mode> to force a specific color mode. This is helpful if the terminal misreports its capabilities, which can otherwise cause issues like black text on a black background.

Valid Color Modes are: truecolor, 16, 8 and monochrome

Configuration and Project Discovery

Launch Goblin aims to be zero- or low-conf, and will automatically discover facets of projects - to a point.
In the early version that it is currently in, there is no way to configure Launch Goblin or provide hints.

The aim will always be to not force the user to configure or specify what could or should be inferred, dwim-style there may still be plenty of cases where one might tweak or inform the project setup, and this will be enabled as the project matures.

Version History

See CHANGELOG.md

Latest Release: [0.1.4] - 2025-11-19

Grouped key legends + Docker Compose fix

Added

  • Grouped footer keyboard legend into categories

Fixed

  • Fixed issue when docker compose failed to launch due to references to missing services in configs

Roadmap

Short-term (0.1.x - 0.2.0)

  • Config management:
    • ✅ Create
    • ✅ rename
    • Edit
  • ✅ Auto-keep “last launched” setup, even if not saved as config.
  • CLI mode: run configs directly without opening the TUI.
  • ✅ Allow different modules to be launched with different launch scripts.
  • More control over process lifecycle for launcher strategies where it makes sense (restart/stop).
  • Additional backends: Docker Compose, tmux, and more.
    • ✅ Docker Compose
  • Configurable keymaps and themes.
  • ✅ Persisted state across sessions.
  • Support for parallel vs sequential launch strategies.

License

© 2025-2026 Sven Johansson. MIT Licensed

About

tui launcher for multi-module projects

Resources

License

Stars

Watchers

Forks

Packages

No packages published