Getting Started
1. Watch some repos
Section titled “1. Watch some repos”Create ~/.config/presto/config.toml (presto writes a commented one on first launch) and list
the repositories:
[[repositories]]name = "polaris/api"
[[repositories]]name = "polaris/web"alias = "web"
[[repositories]]name = "polaris/infra"starred_only = true # only PRs from authors you have starred (s)
[[repositories]]name = "polaris/legacy"disabled = true # fetched only when you filter with repo:legacyLaunch presto. Every open PR from every enabled repo appears in one list, most recent
activity first. The list is cached, so the second launch is instant and refreshes behind it.
2. Read a row
Section titled “2. Read a row”S C R B M # Title Author Repo○ ✓ ✓ ✓ ✓ - Rate-limit the search endpoint (#482) @ines api○ ✓ - ✓ ! 3 Retry transient S3 errors (#475) @kai api○ ✓ ✓ ↓ ! - Expose the audit log over GraphQL (#458) @arjun api○ ✓ ? ✓ ? - Migrate sessions table (#479) @mara apiThe first four columns are the gates — State, Checks, Review, Base — and the
fifth is the Merge verdict: whose move it is. ✓ nobody’s, merge it. ! the author’s:
open comment threads, a red build, conflicts, behind its base. ? someone else’s, usually a
review. · a machine’s — CI is running. ⇢ auto-merge is armed.
By default the list shows only S and M; press c to expand the gates. The full
vocabulary is on Status Columns, and ? shows the legend
in the app.
3. Look closer
Section titled “3. Look closer”j / k move, p opens the preview: the same five columns spelled out, then comments,
reviews, the description, files and commits. P moves the panel to the bottom, ^D / ^U
scroll it.
↵ opens the PR in riff, o in the browser, ⇧D pipes the
diff through delta (or bat, or less), space checks the branch out locally, x opens the
failing check.
4. Narrow it
Section titled “4. Narrow it”/ opens the filter. It applies as you type:
/ @me your PRs/ repo:api state:draft drafts in one repo/ -@renovate[bot] hide the bot/ >unread what changed since you looked/ https://github.com/polaris/api/pull/482 one PR, fetched if it is not loaded5. Keep it as a tab
Section titled “5. Keep it as a tab”The filters you type every day should not be typed every day. t opens a new tab — a copy of
the current one — and / gives it a filter; the tab is named after it:
t / @me ↵ My PRst / >unread ↵ Unreadt ⌫ / repo:infra ↵ infra1 2 3 switch, [ ] cycle, d closes, u brings one back. Every tab filters the same
refreshed list, so they cost nothing, and they are all there again on the next launch. A dot
on a tab means a PR in it changed since you looked. See Tabs.
6. Act
Section titled “6. Act”^P opens the command palette with every action for the selected PR. Merge, submit a review,
arm auto-merge, update the branch from base, re-run the failed checks, trigger a workflow, mark
ready or draft, close — each with the confirmation GitHub itself would ask for. See
Actions.
7. Come back later
Section titled “7. Come back later”presto refreshes every five minutes and whenever the terminal regains focus. Each refresh is
diffed against the last one: a new push, new comments, an approval, a merge. Changed PRs get a
dot and a toast, >unread lists them, v marks one as read. With
notifications.desktop = true you also get a system notification.