/pr-comments
Fetch, reply to, and resolve review threads on a GitHub pull request. Use when checking what review feedback needs addressing, whether threads are resolved, replying to review comments, or clearing AI-reviewer threads after acting on them.
Claude Code
$ npx -y skills add bendrucker/claude --skill pr-comments --agent claude-code
Codex
$ npx skills add bendrucker/claude --skill pr-comments -a codex -y
Cursor
$ npx skills add bendrucker/claude --skill pr-comments -a cursor -y
Gemini CLI
$ npx skills add bendrucker/claude --skill pr-comments -a gemini-cli -y
GitHub Copilot
$ npx skills add bendrucker/claude --skill pr-comments -a github-copilot -y
OpenCode
$ npx skills add bendrucker/claude --skill pr-comments -a opencode -y
Windsurf
$ npx skills add bendrucker/claude --skill pr-comments -a windsurf -y
SKILL.md
pr-comments.SKILL.mdname: github:pr-comments
description: Fetch, reply to, and resolve review threads on a GitHub pull request. Use when checking what review feedback needs addressing, whether threads are resolved, replying to review comments, or clearing AI-reviewer threads after acting on them.
argument-hint: "[<pr-url>|<number>] [--role author|reviewer] [--bots] [--include-resolved]"
allowed-tools:
["Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/pr-comments.ts:*)", "Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts:*)"]PR Review Comments
Fetching
bun ${CLAUDE_PLUGIN_ROOT}/scripts/pr-comments.ts [<pr-url>|<number>] [--role author|reviewer] [--since last-review|<date>] [--bots] [--include-resolved]Output is markdown grouped by file, with each thread's node `id` for replying and resolving. Resolved threads are excluded by default. Outdated threads are included and marked.
- `--role`: `author` fetches all unresolved threads. `reviewer` fetches unresolved threads the authenticated user started. Defaults by whether the authenticated user is the PR author.
- `--since last-review`: threads with activity since the last relevant review. As author, that is the latest review by a human other than you. As reviewer, it is your latest submitted review. An ISO date (`2025-01-15`) sets an explicit cutoff.
- `--bots`: only review-bot threads, meaning accounts the API types as `Bot` plus the plugin's configured reviewers. Pass `--reviewers=${user_config.reviewers}` with it. Identify bots through this filter.
- `--include-resolved`: include resolved threads, tagged `(resolved)`, to find threads resolved without a reply.
Replying and Resolving
bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts reply <thread-id> [--resolve] --body "..."
bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts react <thread-id> [--down] [--resolve]
bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts resolve <thread-id>`reply` also takes `--bodyFile <path>` or stdin. Upload a screenshot for a reply through the endpoint in `github:attach`, since `gh`'s `--attach` does not reach review threads.
Resolve each thread together with a reply or a reaction, through `reply --resolve` or `react --resolve`. The reply or reaction records why the thread closed. React with a thumbs up where an acknowledgment reply would add nothing (test coverage, a rename, an obvious guard). The reaction goes on the thread's first comment.
`--down` is feedback to a bot reviewer whose comment was wrong or unhelpful. Use it only on bot threads and only in an attended run.
On bot threads, push the fix and resolve, or react with a thumbs up. When a reply is needed, write it as a terse note for a future human reader ("Guarded with a null check").
Read more
name: github:pr-comments
description: Fetch, reply to, and resolve review threads on a GitHub pull request. Use when checking what review feedback needs addressing, whether threads are resolved, replying to review comments, or clearing AI-reviewer threads after acting on them.
argument-hint: "[<pr-url>|<number>] [--role author|reviewer] [--bots] [--include-resolved]"
allowed-tools:
["Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/pr-comments.ts:*)", "Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts:*)"]PR Review Comments
Fetching
bun ${CLAUDE_PLUGIN_ROOT}/scripts/pr-comments.ts [<pr-url>|<number>] [--role author|reviewer] [--since last-review|<date>] [--bots] [--include-resolved]Output is markdown grouped by file, with each thread's node `id` for replying and resolving. Resolved threads are excluded by default. Outdated threads are included and marked.
- `--role`: `author` fetches all unresolved threads. `reviewer` fetches unresolved threads the authenticated user started. Defaults by whether the authenticated user is the PR author.
- `--since last-review`: threads with activity since the last relevant review. As author, that is the latest review by a human other than you. As reviewer, it is your latest submitted review. An ISO date (`2025-01-15`) sets an explicit cutoff.
- `--bots`: only review-bot threads, meaning accounts the API types as `Bot` plus the plugin's configured reviewers. Pass `--reviewers=${user_config.reviewers}` with it. Identify bots through this filter.
- `--include-resolved`: include resolved threads, tagged `(resolved)`, to find threads resolved without a reply.
Replying and Resolving
bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts reply <thread-id> [--resolve] --body "..."
bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts react <thread-id> [--down] [--resolve]
bun ${CLAUDE_PLUGIN_ROOT}/scripts/review-threads.ts resolve <thread-id>`reply` also takes `--bodyFile <path>` or stdin. Upload a screenshot for a reply through the endpoint in `github:attach`, since `gh`'s `--attach` does not reach review threads.
Resolve each thread together with a reply or a reaction, through `reply --resolve` or `react --resolve`. The reply or reaction records why the thread closed. React with a thumbs up where an acknowledgment reply would add nothing (test coverage, a rename, an obvious guard). The reaction goes on the thread's first comment.
`--down` is feedback to a bot reviewer whose comment was wrong or unhelpful. Use it only on bot threads and only in an attended run.
On bot threads, push the fix and resolve, or react with a thumbs up. When a reply is needed, write it as a terse note for a future human reader ("Guarded with a null check").
Other skills on claude.
cli
Type-safe CLI argument parsing with commander and @commander-js/extra-typings, the standard parser for this repo's Bun scripts.…
prose-lab
Turn the user's labels on repo prose, or their notes from reviewing a document in Plannotator, into calibrated Vale rules.
activity
Report real device usage from ActivityWatch. Covers per-app time, window titles, and active vs idle spans. Use when asked "what…
agent-team
Orchestrating Claude Code agent teams. Use when creating teams, spawning teammates, assigning tasks, configuring teammate modes,…
handoff
Hand the current conversation off to a fresh background agent that picks up the work immediately, so you can step away and track…
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about pr-comments.
- Which coding agents can use pr-comments?
- pr-comments installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

