Skip to content

codedownio/sauron

Repository files navigation

sauron logo

sauron

A terminal UI for your GitHub repositories.
Issues, pull requests, workflow runs, branches, and notifications — all in one place.


demo

Features

  • Multi-repo dashboard — organize repos into named sections with a simple YAML config
  • Issues & pull requests — browse, search, comment, close/reopen, and create new issues
  • Workflow runs & job logs — monitor CI status, drill into job logs with syntax highlighting
  • Branches — view all, yours, active, and stale branches with ahead/behind counts
  • Notifications — view and manage GitHub notifications, mark as read/done
  • Health checks — periodic background polling to keep statuses up to date
  • Split view — optional side-by-side layout with logs panel (--split-logs)
  • Keyboard-driven — full hotkey support for fast navigation

Why Sauron?

Most Git TUIs (lazygit, gitui) focus on local operations — staging, committing, rebasing. They don't talk to the GitHub API. The gh CLI can fetch GitHub data but isn't an interactive dashboard. Sauron fills the gap: a persistent, keyboard-driven TUI that watches multiple repos at once and gives you live access to issues, PRs, CI runs, and notifications without leaving the terminal.

Feature Sauron gh CLI gh-dash lazygit gitui
Multi-repo dashboard
Browse/search issues and PRs list only
Comment on issues/PRs
Close/reopen issues/PRs
Create issues
Syntax highlighting
Monitor workflow runs
Drill into CI job logs --log flag
Auto-refresh / health checks
GitHub notifications
Branches with ahead/behind
YAML config for repos
Local git operations
Open in browser

Install

Pre-built binaries

Download the latest release for your platform from GitHub Releases:

# Linux (x86_64)
TMPDIR=$(mktemp -d)
curl -sL https://github.com/codedownio/sauron/releases/latest/download/sauron-x86_64-linux-0.1.0.1.tar.gz | tar xz -C "$TMPDIR"
sudo mv "$TMPDIR/sauron" /usr/local/bin/
rmdir "$TMPDIR"

# macOS (Apple Silicon)
TMPDIR=$(mktemp -d)
curl -sL https://github.com/codedownio/sauron/releases/latest/download/sauron-aarch64-darwin-0.1.0.1.tar.gz | tar xz -C "$TMPDIR"
sudo mv "$TMPDIR/sauron" /usr/local/bin/
rmdir "$TMPDIR"

# macOS (Intel)
TMPDIR=$(mktemp -d)
curl -sL https://github.com/codedownio/sauron/releases/latest/download/sauron-x86_64-darwin-0.1.0.1.tar.gz | tar xz -C "$TMPDIR"
sudo mv "$TMPDIR/sauron" /usr/local/bin/
rmdir "$TMPDIR"

From source (Nix)

nix run github:codedownio/sauron/v0.1.0.1

From source (Stack)

git clone https://github.com/codedownio/sauron.git
cd sauron
stack install

Setup

On first run, sauron will walk you through GitHub OAuth authentication. You can also pass a token directly:

sauron --token YOUR_GITHUB_TOKEN

Configuration (single-repo)

Just run sauron in the directory of a given repo, and it will show that repo!

Configuration (all repos)

To browse all the repos owned by your GitHub account, run

sauron --all

Configuration (organized repos)

Create a YAML config file to define which repos to monitor:

settings:
  check_period: 600000000  # Health check interval in microseconds

sections:
- display_name: "My Projects"
  repos:
  - owner/repo-one
  - owner/repo-two
  - name: owner/important-repo
    settings:
      check_period: 300000000

- display_name: "Team"
  repos:
  - myorg/*  # All repos from an org

Then run:

sauron -c path/to/config.yaml

Or just put your config file in ~/.config/sauron/config.yaml, and sauron will load it from there automatically.

Keybindings

Key Action
Enter / Tab Toggle open/close
n / p Next / previous item
o Open in browser
H I P A Open repo home / issues / pulls / actions in browser
r / R Refresh selected / refresh all
s Search
c Comment on issue/PR or create new issue
C Close/reopen issue or cancel workflow
z Zoom into selected item
N B F L Next / back / first / last page
d Mark notification done
q Quit

CLI Options

sauron [OPTIONS]

  --token STRING       OAuth token for GitHub
  -c, --config FILE    Config file path (YAML)
  -r INT               Max concurrent GitHub API requests (default: 10)
  --debug-file FILE    Write debug logs to file
  --auth               Force OAuth authentication flow
  --all                Show all repos for the authenticated user
  --color-mode MODE    Force color mode: full, 240, 16, 8, none
  --split-logs         Split view: app on left, logs on right

License

BSD-3-Clause

About

Tower's-eye view of your GitHub repos

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors