Skip to content

Repository files navigation

Dev-Dashboard (devdash)

CI Python 3.12+ License: MIT

A narrow terminal dashboard for GitHub PRs, GitHub stacks (gh-stack), reviews, and OMP AI usage.

Dev-Dashboard showing AI usage bars, a stack of three pull requests, two single pull requests, and two pull requests waiting for review

Keep Dev-Dashboard open in a side split of tmux, Ghostty, WezTerm, or any terminal. It answers the questions you would otherwise open five browser tabs for: which PR is red, which one is approved, who still has to review, and what waits on you. The repository, package, and command are all named devdash.

  • Your PRs, grouped the way you work. Grouped by repository. Stacks made with gh-stack are drawn top to bottom, including merged layers. Plain branch chains (a PR whose base is another of your PRs) are drawn as stacks too.
  • Everything that blocks a merge, in one row. CI (with the first failed check), draft, review decision, each reviewer's latest verdict, bot reviews, unresolved threads, conflicts, behind-base, and merge-queue position.
  • Review requests. PRs that wait for you, newest first, with the author and age, and a marker when someone requests your review again.
  • OMP AI usage (optional). Rate-limit bars and reset countdowns for providers with usage reports in the selected OMP profile. OpenRouter spend and remaining credits are read from its key and credits endpoints. Nous Portal credits are read from the Portal account API when omp has a nous-portal or nous credential. Hidden when omp is not installed. Weekly and monthly bars show a pace icon (>> too fast, << too slow, | on pace).
  • Hide what you do not want to see. Exclude single repositories or whole organizations.

PR numbers are clickable in terminals that support hyperlinks.


Contents

Install

You need Python 3.12 or later and the GitHub CLI, signed in:

gh auth login

Then install devdash with uv or pipx:

uv tool install git+https://github.com/shayan-ys/devdash
# or
pipx install git+https://github.com/shayan-ys/devdash

devdash.py is also a self-contained script. It declares its dependencies inline (PEP 723), so with uv installed you can copy one file:

curl -fsSLo ~/.local/bin/devdash https://raw.githubusercontent.com/shayan-ys/devdash/main/devdash.py
chmod +x ~/.local/bin/devdash

To update, run uv tool upgrade devdash (or pipx upgrade devdash), or download the file again.

Usage

devdash                            # live view; press r to refresh now, q to quit
devdash --once                     # print one frame and exit
devdash --exclude acme/monorepo    # hide one repository
devdash --exclude acme             # hide every repository of a user or organization
devdash --no-review --no-usage     # show only your own PRs
devdash --profile personal --once  # show usage from the personal omp profile
devdash --github alice             # MY PRS / REVIEW REQUESTED for this gh login
devdash --help                     # all flags

--once is also the behavior when standard input is not a terminal, so devdash | less -R works. --profile NAME uses the same isolated auth, settings, and usage cache as omp --profile NAME. Without the flag, devdash follows omp's default profile (or $OMP_PROFILE). Usage from one profile is never reused as the last-good reading for another. Providers with an authenticated account but no available usage data appear under no data. With --profile, each provider heading includes that provider's account email in white, for example Codex (user@example.com).

--github USER is the GitHub username from gh auth status (not an email). It scopes MY PRS and REVIEW REQUESTED to that login without running gh auth switch. It does not label usage.

OpenRouter shows per-key spending, not your overall account balance. An API key limit appears as a spend bar; an unlimited key shows dollars spent. If its key is not available through omp token openrouter, or OpenRouter rejects it, the provider stays hidden. Nous Portal has no published read-only usage/balance API; view its usage at Nous subscription management.

Status row legend

Mark Meaning
✓ci ●ci2 ✗ci1 Latest run of each check passed, 2 still running, 1 failed (the first failed check is named at the end of the row)
approved changes needs review The PR's review decision
✓dana ✗lee ✎sam A reviewer's latest review: approved, requested changes, commented
bot✎2 Reviews from 2 bots
⚑3 3 unresolved review threads
⚠conflict ↓behind Merge conflict, or the branch is behind its base
⇢queued #2 Position in the merge queue

Usage pace

Weekly and monthly bars have a pace icon beside the percentage: fast and on-pace icons on its right, slow icons on its left. It compares the share of the quota you used with the share of the window that has passed. For example, 34% used with 19 of 30 days gone (63%) is 29 points slow: <<.

Icon Points from pace Meaning
| less than 5 On pace
> >> >>> 5, 15, 30 or more ahead Too fast; >>> runs out well before the reset
< << <<< 5, 15, 30 or more behind Too slow; you have quota to spare

There is no icon on 5-hour windows, or in the first 10% (at least 12 hours) of a window, where one busy hour looks like a runaway pace. Set usage.pace = false to hide the icons.

Configuration

Every setting is optional. devdash reads a TOML file from the first of:

  1. --config PATH
  2. $DEVDASH_CONFIG
  3. $XDG_CONFIG_HOME/devdash/config.toml, which is usually ~/.config/devdash/config.toml
interval = 60                    # seconds between refreshes

[github]
exclude = ["acme/monorepo", "some-org"]   # "owner/repo", or "owner" for all of its repositories
review_requested = true          # show the REVIEW REQUESTED section

[usage]
enabled = "auto"                 # true, false, or "auto" (only when omp is installed)
refetch_after = 180              # force a fresh usage read after this many seconds; 0 = never
pace = true                      # pace icons (> fast, < slow, | on pace) on weekly and monthly bars
order = ["openai-codex", "anthropic"]

[usage.names]
anthropic = "Claude"

[usage.colors]
anthropic = "#d97757"

Command-line flags override the file, and each --exclude adds to github.exclude. An unknown key or a value of the wrong type stops devdash with an error, so a typo cannot fail silently. config.example.toml lists every key with its default.

Troubleshooting

gh is not signed in. Run gh auth login. With more than one account, pass --github USER (the username from gh auth status) or set github.account in the config file.

A PR is missing. devdash shows the first 50 open PRs you wrote and the first 50 that request your review. Excluded repositories do not count toward the 50.

Stacks are shown as chain → main instead of stack #N. The PRs were not made with gh-stack, or your GitHub host does not provide stack data (for example, GitHub Enterprise Server). devdash then rebuilds stacks from branch chains.

The usage section shows last read … ago. Some providers rate-limit their usage endpoints, and omp then drops the provider from its report. devdash keeps the last good read, marks it stale, and saves it in $XDG_CACHE_HOME/devdash/. To make fewer requests, raise refetch_after or use --cached.

OpenRouter is missing. omp usage does not report every configured model provider. devdash queries OpenRouter's per-key usage and remaining-credits APIs with the key returned by omp --profile NAME token openrouter; the key stays in memory and is never saved in the dashboard cache. Check that the key belongs to the selected profile and remains valid.

Nous Portal is missing. Portal credits are not part of omp usage. devdash calls https://portal.nousresearch.com/api/oauth/account with omp --profile NAME token nous-portal (or nous). A browser or Hermes login is not visible to omp; store the Portal credential in the selected omp profile first. Inference keys that cannot read the account API are omitted.

Related projects

  • gh-dash is a full-screen, interactive dashboard for PRs and issues. Use it to act on PRs. Use devdash to watch them from a narrow pane.
  • gh-stack creates and manages the stacks that devdash draws.

Contributing

Questions, bug reports, and pull requests are welcome. Please open an issue first for a large change. CONTRIBUTING.md explains the local setup, and everyone who takes part agrees to the Code of Conduct. Report security problems as described in SECURITY.md.

License

MIT © Shayan

About

Dev-Dashboard: a narrow terminal dashboard for GitHub PRs, GitHub stacks (gh-stack), reviews, and OMP AI usage.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages