Skip to content
/ gitdeck Public

A fast TUI dashboard to monitor GitHub Actions and GitLab CI/CD pipelines from your terminal — no browser, no clutter.

License

Notifications You must be signed in to change notification settings

waabox/gitdeck

Repository files navigation

gitdeck

A terminal UI for monitoring CI/CD pipelines.
Run it from any git repository and get an instant overview of pipeline runs and job statuses — no browser required.

CI Release Latest Release Go Version License: MIT Wiki

gitdeck demo

Why gitdeck instead of the web UI?

  • No context-switching: see pipelines, jobs and logs without leaving your terminal.
  • Keyboard-first: rerun / cancel with a single keypress.
  • Works with both GitHub Actions and GitLab CI/CD from the same tool.

Quick Start

# Option A: Homebrew
brew tap waabox/gitdeck && brew install gitdeck

# Option B: One-liner install (requires Go 1.24+)
curl -sSL https://raw.githubusercontent.com/waabox/gitdeck/main/install.sh | bash

cd /path/to/your/repo
gitdeck

On first run gitdeck will authenticate via OAuth Device Flow — just open a link and enter a code.

Features

  • Hierarchical drill-down navigation: Pipelines → Jobs → Steps
  • Live pipeline list with status icons and durations
  • Auto-refresh every 5 seconds
  • Configurable number of pipelines to display (default: 3)
  • OAuth Device Flow authentication for GitHub and GitLab (no manual token copy-paste)
  • Config via ~/.config/gitdeck/config.toml with environment variable overrides
  • Auto-detects repository from the current working directory
  • View full raw job logs from Jobs or Steps view (press l)
  • Re-run or cancel any pipeline with a single keypress and inline confirmation

Installation

macOS (Homebrew)

brew tap waabox/gitdeck
brew install gitdeck

Note: The binary is not yet signed with an Apple Developer certificate, so macOS may flag it as unverified. If that happens, remove the quarantine attribute:

xattr -d com.apple.quarantine "$(readlink -f $(which gitdeck))"

Linux (Debian/Ubuntu)

wget https://github.com/waabox/gitdeck/releases/latest/download/gitdeck_linux_amd64.deb
sudo dpkg -i gitdeck_linux_amd64.deb

For ARM64:

wget https://github.com/waabox/gitdeck/releases/latest/download/gitdeck_linux_arm64.deb
sudo dpkg -i gitdeck_linux_arm64.deb

Linux (RPM — Fedora/RHEL)

sudo rpm -i https://github.com/waabox/gitdeck/releases/latest/download/gitdeck_linux_amd64.rpm

Quick install (curl)

curl -sSL https://raw.githubusercontent.com/waabox/gitdeck/main/install.sh | bash

Clones the repo into a temp directory, builds from source, and installs the binary to /usr/local/bin. Requires Git and Go 1.24+.

From source

git clone https://github.com/waabox/gitdeck.git
cd gitdeck
go build -o gitdeck ./cmd/gitdeck
mv gitdeck /usr/local/bin/

Requires Go 1.24 or later.

Authentication

gitdeck ships with built-in OAuth credentials for GitHub and GitLab. On first run it starts the Device Flow automatically — just open a link and enter a code:

No GitHub token found. Starting OAuth authentication...
Visit:      https://github.com/login/device
Enter code: ABCD-1234
Waiting for authorization...
Authenticated. Token saved to /Users/you/.config/gitdeck/config.toml

The token is saved so subsequent runs are silent. No config file needed for the common case.

Configuration

Optionally create ~/.config/gitdeck/config.toml to customize behavior:

# Number of recent pipelines to show (default: 3)
pipeline_limit = 3

[github]
# Override the built-in OAuth Client ID with your own
# client_id = "YOUR_GITHUB_OAUTH_APP_CLIENT_ID"

[gitlab]
# Override the built-in OAuth Application ID with your own
# client_id = "YOUR_GITLAB_OAUTH_APP_CLIENT_ID"
# Only needed for self-hosted GitLab instances
# url = "https://gitlab.example.com"

Environment variable overrides

Variable Overrides
GITHUB_TOKEN github.token
GITLAB_TOKEN gitlab.token
GITLAB_URL gitlab.url

Using your own OAuth Apps

If you prefer to use your own OAuth credentials instead of the built-in ones:

GitHub: Create an OAuth App at Settings → Developer settings → OAuth Apps. Set the callback URL to http://localhost. Copy the Client ID into the config.

GitLab: Create an OAuth App at User Settings → Applications. Enable the read_api scope and tick Allow Device Authorization Grant. Copy the Application ID into the config.

Keyboard shortcuts

Key Action
/ Navigate items / scroll logs
Enter Drill down: Pipelines → Jobs → Steps
Esc Go back: Steps → Jobs → Pipelines
l View full logs (from Jobs or Steps view)
r Re-run selected pipeline (asks confirmation)
x Cancel selected pipeline (asks confirmation)
PgUp / PgDn Scroll logs by page (in log viewer)
g / G Jump to top / bottom of log (in log viewer)
ctrl+r Refresh pipelines now
q / Ctrl+C Quit

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Built with

License

MIT — see LICENSE.


Documentation · Issues · Releases

About

A fast TUI dashboard to monitor GitHub Actions and GitLab CI/CD pipelines from your terminal — no browser, no clutter.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published