compose-pulse

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2026 License: MIT

README

cpulse

CI Go Report Card GitHub release

A real-time terminal UI that visualizes your Docker Compose startup sequence as an interactive dependency tree — so you can see exactly which service is blocking everything else.

  ● api-gateway
  ├─ ● auth-service
  │  └─ ● postgres
  ├─ ◐ payment-service        ← still starting
  │  └─ ● redis
  └─ ✕ worker                 ← exited with error
     └─ ● rabbitmq

Press Enter on any service for full-screen logs. The dashboard shows a live log preview in the right panel.


Interface

cpulse uses a lazydocker-style split dashboard:

  • Left panel [1] Services — compose dependency trees grouped by project, plus standalone containers
  • Right panel [2] Details — selected service metadata and a live tail of the last ~15 log lines
  • Enter — open full-screen log view (entire terminal)
  • q / Esc (in log view) — return to the dashboard
  • Mouse wheel — scroll logs in full-screen view

The Problem

docker compose up dumps interleaved logs from every container into one stream. When a service fails, you stop everything, scroll through thousands of lines, open multiple terminal tabs, and lose 10 minutes hunting the root cause.

cpulse makes the dependency graph visual and live — healthy services stay green, failing ones turn red immediately, and their logs are one keypress away.


Installation

Homebrew (macOS / Linux)
brew tap hyturing/cpulse
brew install cpulse
Download a binary

Grab the latest release for your platform from GitHub Releases.

# macOS (Apple Silicon)
curl -L https://github.com/hyturing/compose-pulse/releases/latest/download/cpulse_darwin_arm64.tar.gz | tar xz
sudo mv cpulse /usr/local/bin/
Build from source

Requires Go 1.22+.

git clone https://github.com/hyturing/compose-pulse.git
cd compose-pulse
make build
# binary at ./bin/cpulse

Usage

Run cpulse anywhere — it auto-discovers all containers on your local Docker daemon:

cpulse

Compose-managed containers appear as dependency trees grouped by project (COMPOSE · projectname). All other containers appear in a flat OTHER CONTAINERS section below.

New stacks and containers appear automatically — no restart needed. Service status reflects depends_on conditions (service_healthy, service_started).

Bring up stacks in other terminals as usual:

docker compose up
Flags
Flag Default Description
--version Print version and exit

Keyboard Shortcuts

Dashboard
Key Action
j / Move cursor down
k / Move cursor up
Enter Open full-screen logs for selected service
q / Ctrl+C Quit
Full-screen logs
Key Action
q / Esc Back to dashboard
/ or k/j or mouse wheel Scroll logs
PgUp/PgDn or Ctrl+U/Ctrl+D Page scroll
Home Jump to top; press again to load older logs
g / End Jump to bottom and resume follow
l Load older logs
/ Filter logs by regex
Ctrl+C Quit

Status Indicators

Symbol Color Meaning
Green Running and healthy
Yellow Starting / health check running
Red Health check failed / unhealthy
Gray Waiting on a dependency or not yet started
Red Exited with error

Requirements

  • Docker Desktop or Docker Engine running locally
  • macOS or Linux

Roadmap

  • v0.2 — Switch from polling to docker events streaming (lower latency)
  • v0.3 — Full jq-style log filtering via gojq
  • v0.4 — Real graph canvas with box-drawing edges
  • v0.5 — Container lifecycle actions (restart, stop)

Contributing

Pull requests are welcome. See CONTRIBUTING.md for setup instructions and guidelines.

License

MIT — © 2026 hyturing

Directories

Path Synopsis
cmd
cpulse command
internal
dag
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL