onevcs
Version control and its remote host behind one host-neutral vocabulary, for agent workflows.
The review unit is a change request — GitHub maps it to a pull request, and a
later host maps it to whatever it calls the same thing. Vcs owns the repository
side (identities, sessions over an isolated worktree, preserved work);
RemoteHost owns the host side (opening a change, reading its checks, merging
it); a rules file decides, per repository, how a change publishes and what
verifies it. Everything a run does is emitted as an NDJSON event stream.
The public surface is the approved contract — docs/contract.md
— compiled, and it is implemented: the registry with its lazy migration, the rules
engine, sessions over borrowing clones, bounded git, the FIFO merge queue, both
publication strategies, recovery and provenance, the merge train, and the event
stream.
What one change looks like
onevcs register ~/projects/widgets # once per checkout
onevcs rules check widgets # which policy, and why
token=$(onevcs session open widgets --branch feature/thing | jq -r .token)
# …work in the worktree the session printed…
onevcs publish "$token" # verify, then land it
onevcs events "$token" # everything it did, as NDJSON
Everything durable lives under one state root — ONEVCS_HOME, otherwise
~/.onevcs.
Install
cargo install onevcs # crates.io
pip install onevcs-cli # a prebuilt wheel, no Rust toolchain
npm install -g onevcs-cli # a prebuilt binary, no Rust toolchain
All three install the same onevcs binary. Prebuilt binaries exist for Linux
(x64, arm64), macOS (x64, arm64), and Windows (x64); every release also attaches
the archives and their .sha256 checksums for a direct download.
Use
onevcs --help
--help is the command surface, and publish reserves its own exit codes for a
gate that failed, a request that was invalid, and a base that moved under it.
Develop
just bootstrap # from a clean clone
just check # the deterministic gate: format, clippy, tests, coverage, docs
just gate # check, plus the diff-scoped LLM-judge tier — the pre-push bar
just --list is the full index.
License
MIT. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file onevcs_cli-0.1.3-py3-none-win_amd64.whl.
File metadata
- Download URL: onevcs_cli-0.1.3-py3-none-win_amd64.whl
- Upload date:
- Size: 976.9 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79e5be9cd6c359e7be2767cb5d9f9c94b5f2e47fed98303669e6195966ba38f5
|
|
| MD5 |
8133615ee0c45a22cba2e80f60e951ad
|
|
| BLAKE2b-256 |
a17263e2df7fd91360fa3d2e152a43540813f20e4537bb6fa39824d761077bea
|
File details
Details for the file onevcs_cli-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: onevcs_cli-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 999.5 kB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bfa352f70713a1fd0b0063076b05aefc527a7b6dc4111d7f420f7028b568e56
|
|
| MD5 |
8510ea1d61592279ed0db7f328eb6660
|
|
| BLAKE2b-256 |
b9a0ed7558f7716772207cc330a1f868d061e16e382bcef9b32cc7c2770009f6
|
File details
Details for the file onevcs_cli-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: onevcs_cli-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 937.5 kB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c026f4a93fe78f9eecd2d7630e4ab9d11aaf3e598b3b7b3b03bcce334feccde8
|
|
| MD5 |
03ebbb43e62e4042c92d71f16ea1c458
|
|
| BLAKE2b-256 |
3645c0ee4eb9640839689e73848e81e7f0f8daa0afcdb2b6ec232e47c0f72ad1
|
File details
Details for the file onevcs_cli-0.1.3-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: onevcs_cli-0.1.3-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 924.3 kB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adc33b493e2a9866ab2f3cbcb3ab6b7cf2d25cb5f6f193391fc906f84b965444
|
|
| MD5 |
dc58667f792bbf5e171701b7bdec09f7
|
|
| BLAKE2b-256 |
48c839003b7450b9e64505880089d0922ba1d32393b91708dd46d5529d9b2fb5
|
File details
Details for the file onevcs_cli-0.1.3-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: onevcs_cli-0.1.3-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 983.5 kB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c762a1fbaccaaf8fabc474e98fb40c40952e3216625119651d0fc3cc01f58f0a
|
|
| MD5 |
53a42ac74fd7148ad5df3931992b4d46
|
|
| BLAKE2b-256 |
8eab310ef83b86cbdb57d765407e82256904991beb75d8e6a764de58f328ab83
|