Documentation

Onset command reference

Every on command, how to name versions and changes, onset.toml, environment variables and limits.

Every command saves the workspace before it does anything else, takes --json, and ends with a next: line when there's something to do. on help <command> prints a command's options.

Commands

GroupCommandWhat it does
Starton get <project> [folder]Makes a workspace for a project. --lazy fetches each file when it's first opened.
on init [folder]Starts a project that lives only on this machine.
on import <git-repo> [folder]Makes a project from a Git repository, with its history.
on publish <project>Puts a local project on a host.
on login [host]Signs in. The default host is upstream.codes.
on workspaces [add <folder> | clean]Lists this project's workspaces, adds one or removes the finished ones.
on mount [folder]Starts a lazy workspace's mount again. --stop stops it.
Seeon status [change]Where you are and what to do next.
on diff [path...]What a change changes.
on log [version|change|path]History of main, open changes, saves or operations.
on blame <file>The version that last changed each line.
on show <file>Prints a file as it is in main, or --from a version, change or save.
on bisect <good> <bad> --run "<command>"Finds the first version of main where a command fails.
on verify [version]Who signed the land that made a version.
on gitWhere Git clones the project, and whether the Git view is current.
Workon new ["title"]Starts another change. The current one is kept.
on describe "text"Sets the current change's description.
on switch <change>Puts this workspace on another change.
on drop [change]Abandons a change.
on tag [name] [version]Names a version of main. --remove takes the name off.
on line [name]Lists release lines, or starts one --from a version.
Finishon syncBrings the change up to date with main.
on land [change]Puts a change on main.
on watch --run "<check>"Checks each new version of main and takes back the one that breaks the check.
Fixon undo [version]Undoes the last on command, or takes a landed version back out.
on restore <path...>Brings files back from an earlier point.
on purge <path>...Takes files out of the project's whole history. Owners only.
on rollback --to <time>Puts a hosted project back as it was. Owners, the last 30 days.
on checkChecks this machine's objects and the host's copy for damage.
on gcCleans up old saves and objects on this machine.
Shareon access <change|path> [who...]Shows or sets who can see a change or a path.
on group <name> [@person...]Shows or sets one of the project's groups.
on approve <change>Approves someone else's change.
on keyMakes this machine's signing key. Lands are signed from then on.
on settings [name=value]Shows or sets host settings: approvals=N, git=on|off, signed=required|optional.
on sessionsAgent sessions kept with changes: list, show, turn off or delete.
on submoduleLists, adds, removes or checks out Git submodules.
Helpon guidePrints the guide for coding agents.
on help [command]Help for a command.

References

WrittenMeans
48213Version 48213 of main. main is the latest version.
rtnbkcvx or rtnbA change at its latest save. The first four letters or more are enough.
rtnb:14Save 14 of change rtnb.
1.x, 1.x/3A release line at its latest version, and its version 3.
--at "10 min ago", --at 15:30A point in time in this workspace's saves.

onset.toml

Optional, at the project's root. It lands like any file.

[workspace]
copy = ["node_modules", "target"]    # build folders new workspaces copy from your latest one

[mine]
paths = [".env", ".env.*", "!.env.example", "!.env.sample", "!.env.template"]   # the default

[land]
run = ["pnpm lint", "pnpm test"]     # on land runs these first. If one fails, nothing lands

[land] run belongs to each machine, as Git hooks do. Required checks, approvals and who can land are host settings, so a change can't loosen its own rules.

Environment variables

VariableDoes
ONSET_TOKENSigns in with a token, for agents and CI.
ONSET_NAME, ONSET_EMAILThe author of lands made with on land.
ONSET_SAVER=0Turns the background saver off.
ONSET_SESSIONS=0Doesn't keep the agent's session for this command.
ONSET_GIT=0Makes workspaces without a .git.
ONSET_UPDATE_CHECK=0Turns off the daily look for a new release.
ONSET_HOMEWhere Onset keeps its data. The default is ~/.local/share/onset.

Limits

Limit
One project100 GiB
One file5 GB. Files over 1 MiB are stored in chunks, so a small edit uploads only what changed.
One HTTP edits call10,000 files
RollbackThe last 30 days
Saves of a landed or dropped changeKept for 30 days

Onset runs on macOS, Linux and Windows, on x64 and arm64.