Onset: version control where nobody waits and nothing gets lost. The on command, its core and onset-server.
| 6 | - **Nothing is lost.** Work saves itself, `vcs undo` takes back what you did (a land included), and a change follows you to another machine. |
| 7 | - **Private where you need it.** A folder can be visible to only some people, `.env` files stay yours, and likely secrets are stopped before they land. |
| 8 |
| 9 | 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. |
| 10 |
| 11 | ## Install |
| 12 |
| 13 | ```sh |
| 14 | curl -fsSL https://downloads.coline.dev/vcs/install.sh | sh |
| 15 | ``` |
| 16 |
| 17 | On Windows, in PowerShell: |
| 18 |
| 19 | ```powershell |
| 20 | irm https://downloads.coline.dev/vcs/install.ps1 | iex |
| 21 | ``` |
| 22 |
| 23 | 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). |
| 24 |
| 25 | Shell completions: `vcs completions zsh > ~/.zfunc/_vcs` (or bash, fish, powershell, elvish). |
| 26 |
| 27 | ## Start |
| 28 |
| 29 | ```sh |
| 30 | vcs login # signs in to upstream.codes in your browser |
| 31 | vcs get upstream.codes/acme/shop # a workspace on a new change |
| 32 | # ...edit files... |
| 33 | vcs land -m "Fix the login redirect" # merged into main on the server |
| 34 | ``` |
| 35 |
| 36 | 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`. |
| 37 |
| 38 | `vcs guide` prints [GUIDE.md](GUIDE.md), the instructions for coding agents. [docs/git-teams.md](docs/git-teams.md) is for teams on git: trying vcs, using both, moving over. [docs/safety.md](docs/safety.md) covers what keeps code safe. [SPEC.md](SPEC.md) describes every command, how landing works, access, the git bridge and the protocol. |
| 39 |
| 40 | ## Hosting |
| 41 |
| 42 | - **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`. |
| 43 | - **Your own server:** `vcs-server` is one binary with SQLite and a folder of objects. |
| 44 |
| 45 | ```sh |
| 46 | vcs-server user add alice --name Alice --email alice@example.com --data ./data # prints a token |
| 47 | vcs-server serve --data ./data --listen 0.0.0.0:8790 |
| 48 | vcs login your.host:8790 --token <token> |
| 49 | ``` |
| 50 |
| 51 | Put it behind HTTPS (`vcs` talks plain HTTP only to localhost, or with `VCS_INSECURE=1`). |
| 52 |
| 53 | ## Layout |
| 54 |
| 55 | | Folder | What | License | |
| 56 | |---|---|---| |
| 57 | | `core` | The model: objects, trees, merges, private paths, secrets. No I/O. | Apache-2.0 | |
| 58 | | `cli` | The `vcs` command. | Apache-2.0 | |
| 59 | | `server` | `vcs-server`, for self-hosting. | AGPL-3.0 | |
| 60 | | `wasm` | The core for Upstream's host (Cloudflare Workers). | Apache-2.0 | |
| 61 | | `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`. | | |
| 62 | | `install` | The installer and the release manifest script. | | |
| 63 |
| 64 | Licenses: [LICENSE-APACHE](LICENSE-APACHE), and [server/LICENSE](server/LICENSE) for the server. |
| 65 |