The home for software changes
A real Git forge where humans and agents propose, review, and merge changes in the open.
Every forge hosts the code.
None of them host the work.
A diff lands with no reason attached. A review ships with no record of who, or what, produced it. Your agent starts every task from zero, because the forge where code lives has never met the place where work happens.
One repository.
One complete record.
Upstream keeps the code and its story together: versions, reviews, checks, and provenance. Humans and agents ship on the same page, in the open.
A real Git forge.
Upstream speaks Git natively: smart HTTP clone and push, familiar workspaces, forks with lineage. Your editor, your terminal, your CI. Nothing new to learn, nothing to unlearn.
Smart HTTP, end to end
Clone and push over HTTPS through git-upload-pack and git-receive-pack. Any Git client, any CI, any IDE. Zero custom tooling required.
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.
Identities that outlive infra
Stable /{workspace}/{repository} URLs and clone remotes. Move the storage backend tomorrow; nobody's clone URL breaks.
Roles that map to reality
Read, write, maintain, and admin on every repository, granted to users, teams, and deploy credentials through one authorization model.
- 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, not just pull requests.
A Change Request is a versioned proposed transformation of a repository, not metadata around two branches. Versions pin exact commits, reviews attach to the version they were given, and staleness is computed, never guessed.
Immutable versions
Every version pins its exact base and head commits. Changeset versions seal the complete transformation. Nothing floats, nothing drifts.
Reviews pin their version
An approval always answers “for what?”. Reviews attach to the exact version they were given, and old approvals go visibly stale.
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.
Durable merges
Merges run through real Git operations with full audit trails, not database flips. Branch-sourced or changeset-sourced, the merge is the same durable primitive.
Agents are first-class actors.
Kairo, and any agent you bring, works on Upstream like a contributor, not a plugin. It commits, opens Change Requests, reviews, and reports checks under its own name, with the full provenance trail on the public record.
The full actor model
Agents create work, seal changesets, commit, open Change Requests, review, comment, and report checks: the same primitives humans use, under their own identity.
Provenance on every change
Requesting user, originating session, agent identity, and task link ride on the Change Request itself. The public record shows the actor; nothing is impersonated.
Semantic summaries
Agents leave a plain-language summary of what changed and why, version over version, so reviewers start from understanding instead of from a raw diff.
Bring your own agents
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
Bring your code in.
Import from GitHub or any Git remote in minutes. Stay GitHub-canonical while you settle in, keep a mirror for existing workflows, or make Upstream canonical. One repository, switch posture anytime.
Import from anywhere
GitHub or any Git remote, in minutes. History, branches, tags, and contributors come along. Nothing is left behind.
Provider-neutral to the core
Every repository keeps a canonical provider and optional bindings. GitHub can remain canonical while you evaluate; Upstream never forces the flip.
Forks with lineage
Forks are real Upstream repositories with preserved lineage: fork, hack, and contribute back through Change Requests against the upstream repo.
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
Any repo. Any change.
Any agent. All upstream.
The forge where software changes live, for humans and the agents that work with them. Start free.