Skip to content

Rivet: GitHub Actions control center in your terminal - pin runs, search workflows and more

License

Notifications You must be signed in to change notification settings

Cloudsky01/gh-rivet

Repository files navigation

Rivet

Rivet

A TUI for organizing and managing GitHub Actions workflows.

Go Version License



What is this?

A terminal UI for organizing GitHub Actions workflows into groups. Navigate workflows with vim keys, pin favorites, and avoid the messy default GitHub interface.

Wraps the GitHub CLI (gh) — uses your existing auth, no tokens needed.

Requirements

Installation

Homebrew (macOS/Linux)

brew install cloudsky01/tap/rivet

Go Install

go install github.com/Cloudsky01/gh-rivet/cmd/rivet@latest

Build from Source

git clone https://github.com/Cloudsky01/gh-rivet
cd gh-rivet
make build

Quick Start

1. Initialize inside your repo:

cd your-repo
rivet init  # Auto-detects repo, scans workflows, guides you through grouping

2. Run:

rivet  # Uses repository from .rivet.yaml

Update repo later:

rivet update-repo owner/repo

Configuration

rivet init walks you through grouping workflows and choosing where to save the config. Pick a user-specific config (~/.config/rivet/config.yaml) for personal prefs or save to .github/.rivet.yaml to share with your team.

Configuration Precedence & Merging

Rivet loads configuration from multiple sources and merges them. The order of precedence (lowest to highest) is:

  1. Repository Default: .github/.rivet.yaml (Shared team defaults)
  2. User Global: ~/.config/rivet/config.yaml (Your personal preferences)
  3. Project User: .git/.rivet/config.yaml (Your per-project overrides)

Merging Logic:

  • Preferences: Merged. You can set a global theme in your User Global config, and it will apply to all projects unless overridden.
  • Groups: Replaced. If a higher-precedence config defines groups, it completely replaces the groups from lower-precedence configs. This prevents messy merging of workflow lists.

Example:

repository: owner/repo

groups:
  # Simple grouping
  - id: ci
    name: "CI/CD"
    workflows:
      - test.yml
      - build.yml

  # Nested grouping
  - id: services
    name: "Microservices"
    groups:
      - id: auth
        name: "Auth Service"
        workflows:
          - auth-test.yml
      - id: api
        name: "API Gateway"
        workflows:
          - api-deploy.yml

  # Custom display names & Pinning
  - id: infra
    name: "Infrastructure"
    workflowDefs:
      - file: terraform.yml
        name: "Terraform Apply (Prod)"
    pinnedWorkflows:
      - terraform.yml

FAQ

Does this require a GitHub Token? No. Uses your local gh CLI. If gh run list works, Rivet works.

Why is it slow? Fetches live data from GitHub on demand. No aggressive caching = always fresh status.

Works with GitHub Enterprise? Yes, if your gh CLI is authenticated to your instance.

License

MIT

About

Rivet: GitHub Actions control center in your terminal - pin runs, search workflows and more

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published