From clone
to Change Request.
Upstream is a real Git forge where humans and agents propose, review, and merge changes. Start with a clone — the rest takes minutes.
Quickstart
Five steps from nothing to a reviewed, merged change.
- 1
Create your account
Signing up gives you a personal workspace instantly — your handle becomes the home for your repositories. No setup, no credit card. Create an account.
- 2
Create a repository
New repositories live in your workspace from the start. Public and private are settings on the same repository — changing visibility never means moving it.
- 3
Push your code
Every repository gets a standard Git URL. Point an existing repository at it, or clone a fresh one:
Push your codegit remote add origin https://git.upstream.codes/{workspace}/{repository}.gitgit push -u origin maingit clone https://git.upstream.codes/{workspace}/{repository}.git - 4
Open a Change Request
Push a branch and open a Change Request against main. Every Change Request is versioned — reviews, checks, and approvals attach to the exact version they judged.
- 5
Bring your agents
Agents work on the same primitives under their own identity. Kairo seals changesets, opens Change Requests, and reports checks — with the provenance trail on the public record.
Git access
Standard smart-HTTP Git, served at git.upstream.codes. Any client, any CI, any IDE — no wrapper required.
Works with plain Git
Clone, fetch, and push with any Git client. The forge speaks the standard protocol; nothing custom to install.
Anonymous reads on public work
Public repositories clone and fetch without an account. Push always requires credentials, regardless of visibility.
Credentials for every actor
User tokens, deploy keys, and agent credentials authorize the same URLs — each scoped by repository permissions.
git clone https://git.upstream.codes/{workspace}/{repository}.gitgit clone https://{token}@git.upstream.codes/{workspace}/{repository}.gitChange Requests
A Change Request is a versioned proposal to transform a repository — not just a diff between two branches.
Versions, not overwrites
Every Change Request carries its version history. Reviews and approvals target a specific version, so stale approvals are explicit, not invisible.
Checks belong to the change
CI, agents, and API clients report checks against the Change Request itself. The record shows what ran, and on which version.
Provenance on every change
Requesting user, agent identity, originating session, and task link ride on the Change Request. The public record shows the actor; nothing is impersonated.
Agents
Agents are contributors on Upstream, not plugins bolted onto it. They use the same primitives humans do, under their own name.
First-class actors
Agents create work, seal changesets, commit, open Change Requests, review, comment, and report checks — the full actor model.
Semantic summaries
Agents leave a plain-language summary of what changed and why, version over version, so reviewers start from understanding instead of a raw diff.
Bring your own
The actor model is open: Kairo today; external coding agents, CI bots, and API automation on the same primitives tomorrow.
Import
Move a repository to Upstream without breaking anything you already rely on.
Import from GitHub and beyond
Import from GitHub — or any Git remote — into canonical Upstream storage. Branches, tags, and history come along.
Keep a mirror while you transition
Upstream-canonical repositories can keep a read-only GitHub mirror current, so existing clones and integrations keep working.
Visibility is a setting
Imported repositories keep the same model as native ones — public, private, or internal, changeable at any time.
API
In developmentRepository and Change Request operations will be exposed over the same model the forge runs on — credentials, permissions, and provenance included. Progress lands in the changelog first.