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. vcs is a placeholder name until the public preview.
vcs 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: vcs 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/vcs/install.sh | sh
On Windows, in PowerShell:
irm https://downloads.coline.dev/vcs/install.ps1 | iex
macOS (Apple silicon and Intel), Linux (x64 and arm64) and Windows (x64 and arm64). On Windows, files keep being executable or links in vcs 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 vcs-cli in this folder (Rust 1.90 or later).
Shell completions: vcs completions zsh > ~/.zfunc/_vcs (or bash, fish, powershell, elvish).
vcs login # signs in to upstream.codes in your browser
vcs get upstream.codes/acme/shop # a workspace on a new change
# ...edit files...
vcs land -m "Fix the login redirect" # merged into main on the server
A project of your own, with no server: vcs init, then vcs publish upstream.codes/you/name when you want to share it. A git repository: vcs import <git url> --to upstream.codes/you/name.
vcs guide prints GUIDE.md, the instructions for coding agents. docs/git-teams.md is for teams on git: trying vcs, 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/vcs of the Coline repository). Agents without a workspace can use its HTTP API or MCP at https://vcs.coline.dev/mcp.
Your own server: vcs-server is one binary with SQLite and a folder of objects.
vcs-server user add alice --name Alice --email alice@example.com --data ./data # prints a token
vcs-server serve --data ./data --listen 0.0.0.0:8790
vcs login your.host:8790 --token <token>
Put it behind HTTPS (vcs talks plain HTTP only to localhost, or with VCS_INSECURE=1).
| Folder | What | License |
|---|---|---|
core | The model: objects, trees, merges, private paths, secrets. No I/O. | Apache-2.0 |
cli | The vcs command. | Apache-2.0 |
server | vcs-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 (VCS_TARGET=worker for Upstream's host), git.sh, perf.sh, and the agent run in tests/agent. | |
install | The installer and the release manifest script. |
Licenses: LICENSE-APACHE, and server/LICENSE for the server.