Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

chase

Send follow-up reminders to authors of stale PRs to get their attention.

Nothing kills momentum faster than PRs that languish without review. chase helps you send gentle, polite reminders to authors whose PRs have been waiting too long — either as a preview (default) or actually sent to GitHub.

When to Use

  • Weekly maintenance: “Time to shake the trees a bit”
  • Sprint end: “Let’s close out those pending reviews”
  • Post-vacation: “Get eyes back on neglected PRs”
  • Custom follow-up: With your own message template

Synopsis

prctrl chase [OPTIONS]

Options

FlagDescriptionDefault
PR_NUMBERPR number to chase (shorthand for --pr)-
-p, --pr <PR>Target a specific PR by number-
--pr-numbers <NUMS>PR number(s) to chase (comma-separated)-
--min-age <DAYS>Minimum age in days to chase (default: 7)7
-s, --since-days <DAYS>Only chase PRs created since this many days ago-
-n, --dry-runPreview chase comments without posting (explicit preview)-
--sendActually post comments to GitHub (default: preview only)false
-m, --message <TEXT>Custom message templateDefault template
--repo <REPO>Filter by repository name (partial match, case-insensitive)-
--author <USER>Filter by author username (partial match, case-insensitive)-
-P, --priorityShow priority scores for each PR (1-5 stars based on age and size)false
-q, --quietSuppress per-PR progress messages (show only summary)false
--jsonOutput as JSONfalse

Message Template

The default message is:

👋 Hi @{author}! Just checking in on this PR — it's been waiting for 
review for {days} days. Could you please address any pending feedback 
or let us know if it's ready for another look? Thanks!

Template Variables

Your custom message can include these placeholders:

VariableDescription
{author}PR author’s username
{title}PR title
{days}Days waiting for review
{repo}Repository name
{pr}PR number with # prefix

Examples

# Preview chase comments for PRs older than 7 days (default behavior)
prctrl chase

# Explicitly preview what would be sent
prctrl chase --dry-run

# Chase a specific PR (ignores --min-age, targets only that PR)
prctrl chase --pr 123

# Chase multiple specific PRs by number
prctrl chase --pr-numbers 123,456,789

# Chase PRs older than 14 days and post comments
prctrl chase --min-age 14 --send

# Chase only PRs created in the last 3 days (newer stale PRs)
prctrl chase --since-days 3

# Chase PRs between 3-14 days old
prctrl chase --since-days 14 --min-age 3

# Chase with priority scores to identify most urgent PRs
prctrl chase --priority

# Use a custom message template
prctrl chase --message "Hey {author}, bumping this - it's been {days} days!"

# Get JSON output for scripting
prctrl chase --json

# Chase PRs silently (summary only, useful in scripts)
prctrl chase --send --quiet

Output

When run in preview mode (without --send):

  • Shows each stale PR with author, age, and proposed comment
  • Color-coded age badges (red for 14+ days, yellow for 7+ days)
  • Priority scores (when --priority is specified)
  • Summary of how many PRs would be chased

When run with --send:

  • Posts the comment to each PR on GitHub
  • Shows success/failure for each
  • Final count of sent vs. failed

Safety

Dry-run by default: Without any flag, the command shows a preview. Use --dry-run to be explicit, or --send to actually post comments to GitHub.

PRs you already commented on are skipped: If you’ve already left a comment on a PR, it will be automatically skipped to avoid duplicate notifications.

Tips

  • Start with a dry run to review the message tone
  • Use --min-age 14 for weekly maintenance routines
  • Custom messages are great for team-specific workflows
  • Combine with catchup for a comprehensive review maintenance session