Claude Modsunofficial directory

Dashboards·terminal·MIT

ci-watch

A progress bar for each GitHub Actions run Claude starts, then pass or fail.

ci-watch band above the prompt: a CI run with its progress bar and timer, then a green CI passed line
Screenshots from the arasovic/claude-code-mods repository, MIT license

ci-watch follows the GitHub Actions runs that Claude sets off, so you see CI finish without leaving Claude Code. When Claude pushes a branch, opens a pull request or pushes a tag, a band above the prompt gives each workflow run a progress bar, then a green or red result.

What it does

  • While a run is going: one row per workflow, with the time so far against the duration of that workflow’s last successful run, as in 1m10s / ~2m45s. The bar stays short of full until the run really ends.
  • When it ends: a green line with the workflows that passed, or a red one naming those that failed and how. The result also arrives as a toast and stays in the band until you send your next message.
  • When nothing starts: after 90 seconds without a run, the row says no workflow was triggered.

A push and the PR opened from that branch share one row, which waits for both sets of runs. A push to a branch that already has an open PR also waits for its pull_request runs. A tag push waits only for the runs on the tag, not for the branch CI that already ran on that commit.

Failed scheduled workflows

Turn on Flag failed scheduled workflows in /config and, at each session start, every workflow whose latest scheduled run in the last 14 days failed, timed out or could not start gets a red row with a link to the run. Dismiss hides those runs for this repo; a newer failure shows up again. The option is off by default because it makes a few gh calls at every start.

Install

Needs Claude Code 2.1.287 or later, plus the GitHub CLI (gh) logged in to the repo’s GitHub account.

claude plugin marketplace add arasovic/claude-code-mods
claude plugin install ci-watch@claude-code-mods

Restart Claude Code. The band appears on its own the next time Claude pushes from the repo.

The marketplace holds fourteen mods by the same author, each installed on its own, among them session-meter and change-ledger. Its name, claude-code-mods, is also used by hamzafer/claude-code-mods and karanb192/claude-code-mods: if claude plugin marketplace list already shows a claude-code-mods, the add clashes with it, so remove that one first with claude plugin marketplace remove claude-code-mods.

How it works

ci-watch hooks Claude’s Bash tool calls. After each command it reads the command line, what Claude Code reports about it (a branch pushed, a pull request created) and git’s output, where a new tag shows up.

The rest goes through git and gh in the repo. git rev-parse finds the pushed commit on origin. Every 10 seconds gh run list asks GitHub for that commit’s runs, with one extra call per workflow for the duration of its last successful run. For a new PR it also runs gh repo view and gh pr view to confirm the PR belongs to this repo and get its head commit. All network traffic is gh talking to GitHub, and nothing is sent to the model, so it costs no tokens.

Unfinished watches live in the mod’s state and pick up again when the mod reloads. Dismissed scheduled runs are stored per repo, up to the last 50.

Limitations

  • Only the repo Claude Code was started in is watched, and only if that folder has .github/workflows. A session opened in a subfolder of the repo is not watched, and a push made with cd <other repo> && git push or git -C <other repo> is ignored.
  • It sees only pushes that Claude runs through its Bash tool, not pushes from another terminal.
  • It reads the pushed commit from origin; a push to another remote falls back to the local branch.
  • It gives up after 60 minutes and marks the run as still running.
  • The scheduled check looks back 14 days, so a monthly workflow whose last run failed can be missed.
  • The author documents it only in the terminal.

Similar Claude Mods

The whole directory →