Every change,on the record.
Repositories, versioned Change Requests, reviews, checks, and agents — one forge, one record. Here is everything inside.
How work moves.
Four steps, one record.
- 1
Push
git push to git.upstream.codes over smart HTTP. Standard clients, scoped credentials, no tooling to install.
- 2
Propose
Open a Change Request against any branch. From the first moment, its version pins exact base and head commits.
- 3
Review
Humans and agents review the same version. Checks report against it, and superseded approvals visibly expire.
- 4
Merge
One durable Git operation with an audit trail. The record and the repository never disagree.
A forge built on real Git.
Repositories are first-class objects with stable identities, real ACLs, and standard Git underneath. Everything else in Upstream hangs off them.
Workspaces that map to you
Your handle or your team's workspace becomes /{workspace}, with stable /{workspace}/{repository} URLs and clone remotes. Identities outlive infrastructure.
Visibility with real ACLs
Public, private, and internal repositories. Access is visibility plus workspace role plus direct and team grants. Public read never means public write.
Credentials for every actor
User tokens, deploy keys, and agent credentials authorize the same remotes — each scoped by repository permissions.
Nothing new to learn
Clone, push, fetch, branch. Upstream speaks Git natively, so your editor, terminal, and CI work unchanged.
- src
- lib
- repository.ts
- change-requests.ts
- checks.ts
- git.ts
- README.md
- LICENSE
Coline SDK
TypeScript SDK for the Upstream forge: repositories, Change Requests, reviews, and checks over a typed client. MIT licensed, contributions welcome.
Change Requests, in depth.
A Change Request is a versioned proposed transformation of a repository — not metadata around two branches. Here is what that buys you.
Immutable versions
Base and head commits pin exactly, and changeset versions seal the complete transformation. Nothing floats, nothing drifts.
Approval staleness, computed
Reviews target the version they judge. Supersede it and old approvals visibly expire — nobody merges on a guess.
Checks per version
CI, agents, and API keys report checks against exact versions. What passed, on what, and reported by whom — all on the record.
Anchored discussion
Comments anchor to the diff, and one comment stream follows the Change Request across every surface that renders it.
Agents as contributors.
Agents work under their own identity with the full provenance trail on the record — and the actor model is open to any agent you bring.
The full actor model
Agents create work, seal changesets, commit, open Change Requests, review, comment, and report checks — the same primitives humans use.
Provenance on the record
Requesting user, originating session, agent identity, and task link ride on the Change Request itself. The record shows the actor; nothing is impersonated.
Summaries before diffs
Agents leave a plain-language summary of what changed and why, version over version, so reviewers start from understanding.
Bring your own
The actor model is open. Kairo today; external coding agents, CI bots, and API automation on the same primitives tomorrow.
Kairo opened this Change Request
requested byRRadin· from sealed changeset
Kairo Summary
· v3Replaces the ad-hoc review lookup with a version-pinned query. Approvals previously survived new commits; staleness now falls out of the version number instead of being guessed at merge time.
The actor model is open. Bring any agent
ci-bot reported checks on #481 · via API key
- Task COL-882
- Session #19182
- CR #481
- Merged
One repository, any posture.
GitHub-canonical while you evaluate, Upstream-canonical when you are ready, mirrored either way. The repository is the same object throughout.
Import from anywhere
GitHub or any Git remote, in minutes. History, branches, tags, and contributors come along. Nothing is left behind.
Canonicality is a setting
Stay GitHub-canonical while you evaluate, then flip to Upstream canonical when ready. The repository never moves, copies, or re-links.
A mirror while you settle
Upstream-canonical repositories can keep GitHub current as a read-only mirror, so existing clones and integrations keep working.
Contributors stay external
Contributing to a public repository is a repository-level relationship. It never grants access to your workspace, your tasks, or your team.
github.com/coline/sdk
Import source
upstream.codes/coline/sdk
Same repository
Provider model
Everything in the forge.
No fine print.
The complete inventory of what Upstream does today. If it is listed, it is on the record.
Smart HTTP Git
Clone and push with any client, CI, or IDE through git.upstream.codes.
Versioned Change Requests
Every proposal pins exact base and head commits. Nothing floats.
Reviews and approvals
Reviews attach to the version they judge and go visibly stale.
Checks
CI, agents, and API keys report against exact versions, by actor.
Provenance
Requesting user, agent identity, session, and task link on every change.
Semantic summaries
Plain-language what-and-why, version over version, before the diff.
Inline comments
Anchored to the diff; one stream on every surface that renders it.
Forks with lineage
Real repositories with preserved fork relationships and clean upstreams.
Import and mirrors
From GitHub or any remote; keep a read-only mirror while you settle.
Profiles and workspaces
Your handle, your work, in stable /{workspace}/{repository} URLs.
Scoped credentials
User tokens, deploy keys, and agent credentials, per repository.
Durable merges
Real Git operations with audit trails — never a database flip.
A public API on the same model is in development. Progress lands in the changelog.
The whole forge,
free for open work.
Create an account, push a repository, and put your first change on the record today.