Onset: version control where nobody waits and nothing gets lost. The on command, its core and onset-server.
Version control where nobody waits and nothing gets lost. Its command is on.
on undo takes back what you did (a land included), and a change follows you to another machine..env files stay yours, and likely secrets are stopped before they land.It has its own model and protocol. Git is a bridge: on import brings a repository's history in, and every hosted project is also a git repository that git, CI and GitHub mirrors keep using.
curl -fsSL https://downloads.coline.dev/onset/install.sh | sh
On Windows, in PowerShell:
irm https://downloads.coline.dev/onset/install.ps1 | iex
Or with Homebrew, from Coline's tap on Upstream:
brew tap coline/tap https://git.coline.app/coline/homebrew-tap.git
brew install coline/tap/onset
macOS (Apple silicon and Intel), Linux (x64 and arm64) and Windows (x64 and arm64). On Windows, files keep being executable or links in Onset when edited there, as in git; links Windows won't make (without Developer Mode) are files holding their target. Or build it: cargo build --release -p onset-cli in this folder (Rust 1.90 or later).
Shell completions: on completions zsh > ~/.zfunc/_on (or bash, fish, powershell, elvish).
Onset was called vcs before it had its name. Installing it replaces the vcs command, and on picks up where it left off: sign-ins, projects, workspaces (their .vcs folders become .onset), vcs.toml files and VCS_* settings all keep working.
on login # signs in to upstream.codes in your browser
on get upstream.codes/acme/shop # a workspace on a new change
# ...edit files...
on land -m "Fix the login redirect" # merged into main on the server
A project of your own, with no server: on init, then on publish upstream.codes/you/name when you want to share it. A git repository: on import <git url> --to upstream.codes/you/name.
on guide prints GUIDE.md, the instructions for coding agents. docs/git-teams.md is for teams on git: trying Onset, using both, moving over. docs/safety.md covers what keeps code safe. SPEC.md describes every command, how landing works, access, the git bridge and the protocol.
Upstream hosts projects at upstream.codes (the service is in apps/onset of the Coline repository). Agents without a workspace can use its HTTP API or MCP at https://onset.coline.dev/mcp.
Your own server: onset-server is one binary with SQLite and a folder of objects.
onset-server user add alice --name Alice --email alice@example.com --data ./data # prints a token
onset-server serve --data ./data --listen 0.0.0.0:8790
on login your.host:8790 --token <token>
Put it behind HTTPS (on talks plain HTTP only to localhost, or with ONSET_INSECURE=1). For a git copy (GitHub, GitLab, your own git server), run on git mirror <git url> next to it.
GitHub stays where it is: on git mirror https://github.com/acme/shop keeps GitHub's main as the project's main, both ways: versions go out as commits, and pull requests merged there come in as versions.
on command or read. Until then, a fresh workspace can be a few versions behind git main; on sync and on land bring the push in.on publish <host/owner/name> in the import's folder carries on (0.9.4 and later, onset-server too).on land takes ONSET_NAME/ONSET_EMAIL.on log <file> takes tens of milliseconds, where git takes a few.mv can't move a file a lazy workspace hasn't fetched yet (a folder of them moves fine; cmd /c move, Move-Item and Explorer can).| Folder | What | License |
|---|---|---|
core | The model: objects, trees, merges, private paths, secrets. No I/O. | Apache-2.0 |
cli | The on command. | Apache-2.0 |
server | onset-server, for self-hosting. | AGPL-3.0 |
wasm | The core for Upstream's host (Cloudflare Workers). | Apache-2.0 |
tests | End-to-end suites: local.sh, hosted.sh (ONSET_TARGET=worker for Upstream's host), git.sh, perf.sh, and the agent run in tests/agent. | |
install | The installers, the release manifest and Homebrew formula scripts, and tap.sh (puts a release in the Homebrew tap). | |
npm | The @colineapp/onset npm package (not published yet) and pack.sh, which packs it for a release. |
Source: upstream.codes/coline/onset (git clone https://git.coline.app/coline/onset.git, or on get upstream.codes/coline/onset). Licenses: LICENSE-APACHE, and server/LICENSE for the server.