# 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
```bash
prctrl chase [OPTIONS]
```
## Options
| `PR_NUMBER` | PR 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-run` | Preview chase comments without posting (explicit preview) | - |
| `--send` | Actually post comments to GitHub (default: preview only) | `false` |
| `-m, --message <TEXT>` | Custom message template | Default template |
| `--repo <REPO>` | Filter by repository name (partial match, case-insensitive) | - |
| `--author <USER>` | Filter by author username (partial match, case-insensitive) | - |
| `-P, --priority` | Show priority scores for each PR (1-5 stars based on age and size) | `false` |
| `-q, --quiet` | Suppress per-PR progress messages (show only summary) | `false` |
| `--json` | Output as JSON | `false` |
## 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:
| `{author}` | PR author's username |
| `{title}` | PR title |
| `{days}` | Days waiting for review |
| `{repo}` | Repository name |
| `{pr}` | PR number with # prefix |
## Examples
```bash
# 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.
## 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