Saga
AI writes most of our code now, and the pull requests it opens keep getting larger, denser, and more frequent. Writing is no longer the bottleneck, reviewing is. And a two-thousand-line diff across forty files doesn't fit in anyone's head; scrolling it top-to-bottom is how real bugs get waved through.
Saga turns that diff into a chapter-by-chapter guided tour. The whole change partitioned into an ordered story, each chapter narrated in plain language with just the hunks that belong to it. You review with judgment instead of drowning. Point it at a branch or a PR and you have one in seconds.
The output is one HTML file with everything inlined (diff2html, syntax highlighting, the data). Open it offline, email it, commit it, or drop it on any static host.
▶ Explore the interactive example →
New here? I wrote about why reviewing (not writing) is the job now, and how saga tackles it: the story behind saga →
Quickstart
To run saga with no install, diff your current branch with origin/main
cd your-repo
uvx --from saga-cli saga
Or generate a saga from a GitHub PR:
uvx --from saga-cli saga https://github.com/owner/repo/pull/5
Installation
Using saga regularly? Install it once so the command is just saga:
uv tool install saga-cli (or pipx install saga-cli).
Documentation
Full docs live at https://jakeberesford.github.io/saga/:
- Installation: requirements and how to install.
- Usage: running on a branch or a PR, and every flag.
- Providers: Anthropic, OpenAI, OpenRouter, local LLMs, and the Claude Code CLI.
- Reviewing: leaving comments on a saga and publishing them to GitHub, or pulling them into your agent.
- How it works: the pipeline, end to end.
Contributing? See CONTRIBUTING.md
Release files for saga-cli 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| saga_cli-0.8.0.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| saga_cli-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / saga_cli-0.8.0.tar.gz
| Download URL | saga_cli-0.8.0.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cd63e66bb8d528813e6b18fbc8dca1ffef72dfa780ada4bd602af2c7e7c8837
|
|
BLAKE2b-256 checksum How to use checksums |
5dce0fb1a23179cde28a731b6cda930d652cb2e37852bfaf26625a1224df7907
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / saga_cli-0.8.0-py3-none-any.whl
| Download URL | saga_cli-0.8.0-py3-none-any.whl |
|---|---|
| Size | 57.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5be2257c619e2a1229494b930b1ee208f9b53638d235585ed0049c349104a39c
|
|
BLAKE2b-256 checksum How to use checksums |
c7b9396110ace65c4fc9e46d79eea66f1a2bb55b7c0bc3fbe60c445ade54f8be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|