---
title: Status and history
description: Count pull requests by author and repository, check review states, and compare saved reports.
url: "https://issue-graph.dev/docs/status"
docs_index: /llms.txt
lastUpdated: "2026-09-23T00:00:00.000Z"
canonical_url: "https://issue-graph.dev/docs/status"
---

# Status and history

> For an index of all documentation, see [/llms.txt](/llms.txt).

## Check PR status

Specify repositories and authors:

```bash
issue-graph status --repo vercel-labs/portless --author ctate,Railly
issue-graph status --repo vercel-labs/agent-browser --repo vercel-labs/portless --author ctate,Railly
```

Both `--repo` and `--author` are required. Repeat `--repo` for more repositories. Repeat `--author` or separate authors with commas. Scope matching and deduplication are case-insensitive.

## Choose a view

```bash
issue-graph status --repo vercel-labs/portless --author ctate,Railly --view projects
issue-graph status --repo vercel-labs/portless --author ctate --view prs
```

| View                | Output                                                                                |
| ------------------- | ------------------------------------------------------------------------------------- |
| `authors` (default) | Counts by author and repository, including known zero counts                          |
| `projects`          | Repository totals and counts per author                                               |
| `prs`               | PR titles, URLs, head identifiers, assignees, requested reviewers, and graph commands |

## Choose an output format

A terminal gets an aligned table with a narrow-screen fallback. A pipe gets versioned JSON. Set `--format auto|table|markdown|json` to choose explicitly.

```bash
issue-graph status --repo vercel-labs/portless --author ctate,Railly --format markdown
issue-graph status --repo vercel-labs/portless --author ctate,Railly --json
```

For status, `--json` writes to stdout and takes no filename. Schema version 1 includes scope, query timestamps, coverage, PR details, author and project rows, totals, and next steps. `NO_COLOR` disables styling. Progress messages go to stderr.

## Read the counts

Each metric contains `count`, `prIds`, and `unknownIds`. A `null` count, shown as `?` in human output, means the total is unknown. Known matching IDs provide a lower bound.

Check `coverageComplete` and each repository's `coverage` before using totals. A failed repository makes its aggregate counts and portfolio totals unknown. Complete sibling repositories retain their counts. Query timestamps record the collection window.

Review-required, changes-requested, approved, no-review-required, and unknown states partition open PRs. Draft, conflict, and unassigned flags are independent and can overlap.

Ready-for-review means the PR is non-draft. To find non-draft, unassigned PRs, filter `pullRequests` for `isDraft === false` and an explicitly empty `assignees` array. Unknown mergeability or assignees remain unknown.

Check CI, code review findings, and unresolved review threads separately before merging; status collects review state and metadata.

## Pagination and exit codes

Status paginates PRs in groups of 50 and also paginates assignees and reviewer requests.

| Flag              | Default                  | Range     |
| ----------------- | ------------------------ | --------- |
| `--concurrency N` | 4 repositories           | 1 to 32   |
| `--max-pages N`   | 100 pages per connection | 1 to 1000 |

Caps, access failures, malformed responses, and detectable pagination drift produce incomplete coverage.

| Exit code | Meaning                                                            |
| --------- | ------------------------------------------------------------------ |
| `0`       | Complete inventory and any requested comparison                    |
| `1`       | Incomplete evidence or runtime failure; inspect any partial report |
| `2`       | Invalid arguments or incompatible options                          |

## Save and compare captures

Use `--save` to keep a local capture:

```bash
issue-graph status --repo vercel-labs/portless --author ctate,Railly --save
issue-graph status --repo vercel-labs/portless --author ctate,Railly --since last --save
issue-graph status --repo vercel-labs/portless --author ctate,Railly --since /path/to/previous.json --json
```

Captures are immutable JSON files under `~/.issue-graph/status/<scope-hash>/`. Set `ISSUE_GRAPH_HOME` to change the storage root.

`--since last` loads the latest capture for the same repository and author scope before fetching new data. Order and case can differ. `--since PATH` accepts a saved snapshot or an older status JSON export. Missing, corrupt, future, or mismatched baselines return an error.

`--no-snapshot` prevents saving and conflicts with `--save`. You can combine it with `--since` to compare without saving the new capture.

## Read changes

Human output includes a Changes section. JSON adds `history` for comparisons and `snapshot` when saving. Changes cover review state, drafts, conflicts, heads, assignments, requested reviewers, additions, departures, and counts.

PRs missing from the new inventory are queried again to identify merged, closed, or unverified departures. Unknown data and incomplete baselines limit which transitions can be reported.

See [Permissions and privacy](/docs/security) before storing or sharing captures.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)