Documentation
Onset quickstart
Install the on command, sign in, start a project and land your first change.
This page takes you from nothing to a landed change.
1. Install
On macOS and Linux:
curl -fsSL https://downloads.coline.dev/onset/install.sh | sh
On Windows, in PowerShell:
irm https://downloads.coline.dev/onset/install.ps1 | iex
With Homebrew:
brew tap coline/tap https://git.coline.app/coline/homebrew-tap.git
brew install coline/tap/onset
The installer picks the build for your machine and checks its SHA-256. On macOS and Linux it puts on in ~/.local/bin. Run it again to update. Every build is also on the downloads page.
on --version
2. Sign in
on login
This prints a link and waits. Open it, sign in and choose Approve. Upstream and Coline share one account, so the page is on coline.app. When it's done, on prints your handle:
account upstream.codes: signed in as sam (sam@example.com)
Agents and CI use a token instead. Make one in Tokens settings and set ONSET_TOKEN.
3. Start a project
Pick the one that fits.
Bring a Git repository. This makes a project with the default branch's history and tags:
on import https://github.com/you/shop --to upstream.codes/you/shop
Start a new one. on init makes a project that lives only on your machine. Land there as much as you like, then publish it:
on init shop
cd shop
# add files
on land -m "First version"
on publish upstream.codes/you/shop
Get one that exists.
on get upstream.codes/acme/shop
you is your handle on Upstream, or an organization's. New projects are private. Add --public to on publish or on import --to for one anyone can read.
4. The loop
on status # where you are
# edit files
on land -m "Fix the login redirect" # put the change on main
There's nothing to stage or commit. on land saves your change, and the server merges it with whatever landed since you started. Afterwards you're on a new, empty change and your files are unchanged.
Every command ends with a next: line that says what to do.
5. Work in parallel
Give each agent or task its own folder:
on get upstream.codes/you/shop ../shop-search
# or, from inside a workspace
on workspaces add ../shop-search
A second workspace takes seconds. Each one lands when it's ready, in any order.
When a land doesn't go through
| Exit | Code | What to do |
|---|---|---|
| 3 | conflict | Run on sync, fix the marked lines, then on land again. |
| 4 | checks_failed | A check failed. Fix it, then on land again. |
| 5 | waiting | Someone else has to approve or land it. |
| 6 | offline | The change is saved. Land again later. |
| 8 | secret | Remove the secret from the line it names. |
Landing explains each one.
Fix a mistake
on undo # undoes the last on command, a land included
on restore src/app.ts --at "10 min ago" # a file as it was ten minutes ago
Tell your agent
on guide prints the instructions for coding agents. Add them to the project:
on guide >> AGENTS.md