> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fallow.tools/llms.txt
> Use this file to discover all available pages before exploring further.

# fallow report

> CLI reference for fallow report. Render a saved --format json results file in another format without re-running analysis: analyze once, emit GitHub annotations and the job summary from the same file.

Render a saved `--format json` results file in another format without re-running analysis. Analyze once, then emit annotations and the job summary from the same file; output is byte-identical to running the target `--format` directly.

```bash theme={null}
fallow --format json -o results.json
fallow report --from results.json --format github-annotations
fallow report --from results.json --format github-summary >> "$GITHUB_STEP_SUMMARY"
```

The command dispatches on the envelope's `kind`, so any saved fallow result renders: `dead-code`, `dupes`, `health`, `audit`, `security`, or the bare combined run.

v1 renders the two GitHub-native formats only ([`github-annotations` and `github-summary`](/integrations/ci)). Both are log-based, so they render on fork PRs without a write token, unlike the PR-comment and review formats.

## Options

| Flag                    | Description                                                               |
| :---------------------- | :------------------------------------------------------------------------ |
| `--from <PATH>`         | Path to a fallow JSON results file produced by `--format json` (required) |
| `-f, --format <FORMAT>` | Target format: `github-annotations` or `github-summary`                   |
| `-r, --root <ROOT>`     | Project root directory (used for repository-root path rebasing)           |
| `-q, --quiet`           | Suppress progress output on stderr                                        |

## Exit code

Rendering is exit-neutral: `fallow report` exits 0 even when the saved file contains findings. Gating belongs to the analysis run that produced the file (`--fail-on-issues`, the audit verdict); use that run's exit code in CI and keep `report` as a pure rendering step.

## See also

<CardGroup cols={2}>
  <Card title="CI integration" icon="gears" href="/integrations/ci">
    The GitHub Action, GitLab template, and native workflow formats
  </Card>

  <Card title="Global flags" icon="sliders" href="/cli/global-flags">
    Repository-root path rebasing and `--report-path-prefix`
  </Card>
</CardGroup>
