blowhorn github

blowhorn github: squatters.

The blowhorn github commands. Each one's --help prints the same text.

Command What it does
github squatters Sweep a repository's assigned-but-stalled issues through GitHub's GraphQL API.

blowhorn github squatters

Sweep a repository's assigned-but-stalled issues through GitHub's GraphQL API.

For each assignee whose silence -- measured from the later of their assignment date and their last activity (a comment, a linked PR, a status change) -- reaches --nudge-after-days (default 14), the action posts a fixed-template nudge; --warn-after-days (default 7) later with still no reply it posts a final warning; --unassign-after-days (default 7) after that it removes the assignee and posts a closing comment. Issues with an open linked PR from the assignee, blocked or waiting-on-maintainer labels, security labels, or an assignee who is the issue's own author are never bumped. A dry run is the default: without --apply the sweep prints exactly what it would do and writes nothing. Immediately before any write the issue is re-read, so a run never unassigns someone who just became active. No CLI is required: the sweep talks to GitHub's GraphQL API over HTTPS with the store's GitHub token, and a token that is missing or unauthenticated is a hard error, never a silent fallback.

output
blowhorn github squatters [OPTIONS]
Flag Type Default Description
--repo string Repository to sweep, as owner/name
--apply boolean false Perform the writes: post the nudge, warning, or closing comment and remove the assignment. Without --apply the run is a dry-run preview and writes nothing
--limit integer 100 Maximum open issues examined in the run (default 100)
--nudge-after-days integer 14 Days of assignee silence before a nudge is posted (default 14)
--warn-after-days integer 7 Days after a nudge with still no reply before the final warning (default 7)
--unassign-after-days integer 7 Days after the final warning with still no reply before the assignment is released (default 7)
--platform string Platform scope for blowhorn github. One of: github, all (all means every platform listed here)
--pace string Accepted by blowhorn github squatters because --pace is a global flag, but this command does no paced work -- it sleeps between nothing -- so the value changes nothing about how it runs and appears only in the Pace column of the -v summary. Resolved as CLI flag, then BLOWHORN_PACE, then defaults.pace in .blowhorn.yaml (normal when none is set); an unrecognized value is rejected before anything runs
--risk-profile string Accepted by blowhorn github squatters because --risk-profile is a global flag, but this command does no gated work -- no Risk Profile hold, cap or pace applies to it -- so the value changes nothing about how it runs. A value after the command word wins over one before it; an unrecognized value is rejected before anything runs

Also takes the shared flags: --config, --log-dir, --profile, --exclude, --headless, --chrome-launch, --headed, --dry-run, --verbose.

Examples:

terminal
blowhorn github squatters --repo owner/name --dry-run
blowhorn github squatters --repo owner/name --apply
blowhorn github squatters --repo owner/name --dry-run --nudge-after-days 21

Output: text.

Last modified November 1, 2026

Free tool

Am I a Bot?

See what sites can read about your Chrome profile.