Every change, on the record.
Repositories, Change Requests, reviews, and agents in one place. Here's everything inside.
How a change ships. Push, propose, review, merge.
- 1
Push
Push your branch with regular git. Nothing new to install.
- 2
Propose
Open a Change Request. Every update you push becomes a new version.
- 3
Review
People and agents review it while CI runs. If the code changes after an approval, the approval is marked out of date.
- 4
Merge
Merge once it's approved and checks pass. The history shows exactly what was reviewed and merged.
A real Git forge.
Standard Git underneath, so your editor, terminal, and CI work unchanged.
Works with any Git tool
Clone and push over HTTPS or SSH from any Git client, editor, or CI. No plugins, no special setup.
Public, private, or team-only
Choose who can see each repository. Anyone can read a public one, but only people you allow can change it.
Permissions by person or team
Give read, write, maintain, or admin access to one person or a whole team at once.
Access for people, deploys, and agents
Personal tokens, deploy keys, and agent credentials, each limited to the repositories you choose.
How Change Requests work.
A Change Request is a proposed change to a repository. Each time it's updated, Upstream saves a new version, and reviews, test results, and comments stay attached to the version they were about.
Every update is a version
Push new commits and the Change Request gets a new version. Earlier versions stay exactly as they were, so you can compare any two.
Approvals don't carry over silently
An approval covers the version it was given. Push new code and the old approval is marked out of date, so it's clear what still needs a look.
Test results you can trust
CI results show which version they ran on and who reported them, so a pass never comes from older code.
Comments stay on the line
Comments are attached to the line of code they're about, and follow the Change Request wherever it's viewed.
Agents as contributors.
Agents can do what people do on Upstream: commit, open Change Requests, review, and comment. Every change shows who, or what, made it.
See who made every change
Each Change Request shows which agent made it and who asked for it. Agents never pose as people.
A summary before the diff
Agents write a plain-English summary of what changed and why, so reviewers know what they're looking at before reading code.
Bring your own
Use Kairo, or connect the agent you already use through the Upstream CLI or MCP.
The forge that fights spam for you.
Kairo keeps drive-by spam out of your lists, reviews change requests against your repository's own rules, and answers questions about the code.
Spam triage, free on every plan
Low-effort and promotional change requests, issues, and comments move to a Needs a look pile. Kairo judges effort and quality, never whether an agent wrote it. Nothing is deleted.
Every real problem, no nitpicks
Kairo Review reports every bug, security issue, and broken rule it finds. New versions only re-review what changed.
It learns your repository
Mark a finding Won't fix or Wrong and Kairo remembers, for that repository only. It also follows AGENTS.md and CONTRIBUTING.md.
Ask any repository
Press ⌘I on a public repository and get answers with links to the exact lines of code.
Move at your own pace.
Try Upstream without leaving GitHub, and switch over when you're ready.
Everything comes with it
Full history, branches, and tags, from GitHub or any Git host.
Switching is a setting
Keep GitHub as your main copy while you try Upstream, then switch with one setting. The repository and its URL stay the same.
GitHub stays current
After you switch, Upstream keeps GitHub updated as a read-only mirror, so existing clones and integrations keep working.
Open source without opening up
Anyone can fork a public repository and send changes back as a Change Request. Contributing never gives them access to the rest of your workspace.
Everything in the forge. No fine print.
Everything Upstream does today.
Git over HTTPS and SSH
Clone and push with any Git client, editor, or CI.
Change Requests
Pull requests where every update is saved as its own version.
Reviews
Approvals are marked out of date when the code changes.
Checks and GitHub Actions
Test results on every version, including your GitHub Actions runs.
Merge queue
Line up approved changes and merge them in order.
Issues
Track bugs and ideas next to the code.
Change summaries
A plain-English summary of each change, before the diff.
Inline comments
Comment on any line of the diff.
Agent history
See which person or agent made each change.
Forks
Fork public repositories and send changes back.
Import and mirroring
Import from GitHub and keep a GitHub mirror.
Tokens and deploy keys
Access for people, deploys, and agents, per repository.
Want to automate it? The public API is covered in the docs.
The whole forge, free for open work.
Create an account, push a repository, and put your first change on the record today.