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. 1

    Push

    git push to git.upstream.codes over smart HTTP. Standard clients, scoped credentials, no tooling to install.

  2. 2

    Propose

    Open a Change Request against any branch. From the first moment, its version pins exact base and head commits.

  3. 3

    Review

    Humans and agents review the same version. Checks report against it, and superseded approvals visibly expire.

  4. 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.

upstream.codes/coline/sdk
main
coline / sdkPublicMIT
CodeChange Requests12CommitsBranches
radin merged 2 commits into main

Coline SDK

TypeScript SDK for the Upstream forge: repositories, Change Requests, reviews, and checks over a typed client. MIT licensed, contributions welcome.

TypeScript 94%Shell 6%
git clone https://git.upstream.codes/coline/sdk.git
mainv2-roadmapfix/stale-review-stateall checks passing

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.

Fix stale review state#481Opensource: sealed changeset
v1
v2
v3
v3 current · reviews target this version
teststypechecklint pending+84 −21 · 3 files
src/lib/review-state.ts+619
src/lib/checks.ts+187
src/index.ts+55
A
Reviewed v3. The version-pinned lookup fixes it. Approving.1h
Alice approved v3· approval valid for this version
All checks passed on v3No conflicts with main
MergeSquash

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

reported testsreported typecheckleft 2 review commentssummary written for v3

Kairo Summary

· v3

Replaces 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

  1. Task COL-882
  2. Session #19182
  3. CR #481
  4. 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

Import

upstream.codes/coline/sdk

Same repository

Provider model

canonicalupstream
bindinggithub: import source
bindinggithub: mirror (read-only)
Stay GitHub-canonicalKeep a mirrorGo canonical

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.