Can we return a fallback instead of throwing here?
Free during early access
Own the code your agent writes.
Understand it, correct it, and merge with confidence.
Koi is a Mac app for GitHub pull requests. A review guide explains what your agent did and why. Notes send your follow-ups back as one prompt.
Apple Silicon & Intel
A single source of truth for sessions
Move session state into a shared provider, then update the components that depend on it.
Start with the session provider
The provider now owns session state. A typed context and an explicit guard make missing providers easier to catch.
Check the boundary here before following the change into the UI.
1 of 3 files viewedconst SessionContext = createContext(null);const SessionContext = createContext<Session | null>(null);export function useSession() { const session = useContext(SessionContext); if (!session) { throw new Error('Session provider is missing'); } return useContext(SessionContext); return session;}A guide gives the pull request a structure. Add a note on any line while you read.
Interactive preview · sample PRYou asked for a feature.
You got a pull request too big to follow.
Your name is on the pull request. Reading file by file does not build understanding, and it is boring. So you pick one of two options.
Spend hours asking the agent to explain its own code.
You read a summary written by the same agent that wrote the code.
Merge without understanding it.
When someone asks why, you have no answer. When a bug appears, you start from zero.
There is a third option.Koi helps you understand the code quickly, so it becomes your code.
One loop between you and your agent.
- AgentThe agent writes the code
- Koi · Review guidesThe guide explains it
- Koi · NotesYou write notes
- AgentThe agent fixes them
Repeat until you understand the code and agree with it.
01 / Understand
Review guides.
Understand what was done and why.
A list of changed files cannot tell you the story of a change. A review guide can.
A guide groups related files into a reading order. Each step explains what changed and why, with the real diff beside it.
While you read, add a note on any line. Notes are the next step.
Explore review guidesA single source of truth for sessions
Move session state into a shared provider, then update the components that depend on it.
Start with the session provider
The provider now owns session state. A typed context and an explicit guard make missing providers easier to catch.
Check the boundary here before following the change into the UI.
1 of 3 files viewedconst SessionContext = createContext(null);const SessionContext = createContext<Session | null>(null);export function useSession() { const session = useContext(SessionContext); if (!session) { throw new Error('Session provider is missing'); }Can we return a fallback instead of throwing here?
return useContext(SessionContext); return session;}Guides run on your own AI account
- The easy path
Connect a ChatGPT account
Sign in with the account you already have. No key to create or paste.
- Full control
Use your own OpenAI API key
Your key is stored in macOS Keychain. Usage is billed to your OpenAI account.
Guide generation sends the pull request description, file paths, and diff to OpenAI. Your review guides are cached on your Mac.
02 / Correct
Notes.
Correct what you do not agree with.
You stay in control of the agent. Write follow-ups on the lines, then send them back as one prompt.
- Step 1
Open the pull request
Run one command in the terminal, or let your coding agent open it.
Terminal# Open the pull request you’re working onreviewcalm github.com/acme/web/pull/482Continue your review in Koi - Step 2
Leave notes
Select a line or a range in the diff and write what to change or explain.
src/auth/provider.tsx:7-10 (new)+ const session = useContext(SessionContext); + if (!session) { + throw new Error('Session provider is missing'); + }Can we return a fallback instead of throwing here?
- Step 3
Paste one prompt
Copy all notes as one prompt, with file, lines, and diff, and paste it into the agent chat.
Copied for your agentReview notes on github.com/acme/web/pull/482 Each note quotes the diff lines it is about. Answer the questions and make the requested changes. ## src/auth/provider.tsx:7-10 (new) ```diff + const session = useContext(SessionContext); + if (!session) { + throw new Error('Session provider is missing'); + } ``` Can we return a fallback instead of throwing here?
Try it on the next pull request your agent opens.
Download for MacFor reviewers
And for the half of your day in other people’s pull requests.
To give good feedback, you must understand the change first. Koi makes that daily work easier.
Understand it fast
A review guide gives you the order and the reasons before you read the diff.
Comment on lines
Post a comment on a line straight to GitHub.
See what is left
Mark files and folders as viewed. Koi counts the progress for you.
Keyboard-first
Move through files, mark them viewed, and jump to the next unviewed file.
Also in Koi
The workspace
around the review.
Folder hierarchy
A real folder tree with progress at every level. Mark a whole folder as viewed and see what is left.
GitHub sync
Mark a file as viewed in Koi and keep that progress on GitHub. Switch between them without losing your place.
Tabs and search
Keep several pull requests open, or find one by name.
⌘N⌘1–9⌘K
Your editor
Open a file in your local editor from the diff.
O
Themes and focus
Light and dark themes, plus focus settings for a quieter screen.
Open your next pull request in Koi.
Download for MacWhat is Koi?
Koi is a macOS app for understanding and reviewing GitHub pull requests. It is built first for the author of agent-written code. A review guide explains what the agent did and why, and notes send your follow-ups back to the agent as one prompt. It also makes the daily review of your teammates’ pull requests easier.
How do review guides work?
A guide groups related changes into a suggested review order and explains their purpose, with the relevant diffs alongside. Generate a guide using your own OpenAI API key or a connected ChatGPT account. Guides help you navigate; you still make the review decisions.
Can I bring my own API key?
Yes. Add your OpenAI API key in Settings → Guides and choose your model. The key is stored in macOS Keychain, and API usage is billed directly to your OpenAI account. Generated guides are cached on your Mac.
Does viewed progress sync with GitHub?
Yes. File viewed state is shared with GitHub. Marking a folder as viewed updates the files inside it, so you can review by subsystem and continue on GitHub with the same progress.
Where does my code go?
Pull request data is loaded from GitHub, and review state is cached locally. If you choose to generate a review guide, the pull request description, file paths, and diff are sent to OpenAI through your configured connection. You can review diffs without connecting an AI account.
Does it work with private repositories?
Yes. Sign in with your own GitHub account or reuse GitHub CLI authentication. Koi supports public and private repositories on GitHub.com. Access still follows your repository permissions and your organization’s policies.
What are notes for the agent?
Notes are private comments on a line or a range in the Diff and Guides tabs. Copy all notes as one prompt with the file, lines, and diff, then paste it into your coding agent. Notes are stored on your Mac and never posted to GitHub.
Which Macs are supported?
Koi supports macOS 13 Ventura or later, on Apple Silicon and Intel Macs.
Is Koi free?
Koi is free during early access. Download the app to get started. If you use your own OpenAI API key for review guides, OpenAI bills that usage separately.
Merge code
you understand.
Your name is on the pull request. Know why the code is there before you merge it.
Download for MacFree during early access · macOS 13+