Skip to main content

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.

Test against it, without a real GitHub

Embedding the crate, run_with(&cli, providers) takes the two implementations a run reaches Vcs and RemoteHost through; run is that with Git and GitHub. onevcs-testing ships in-memory and file-backed implementations of both, so a consumer's suite drives a real onevcs through a real journey against a host it seeded:

cargo add --dev onevcs-testing

They emit the events the real implementations emit — a claim this repository's own suite checks by running one publication journey on both backends and holding the two event streams to each other.

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

onevcs_cli-0.2.0-py3-none-win_amd64.whl (978.1 kB view details)

Uploaded Python 3Windows x86-64

onevcs_cli-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

onevcs_cli-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (938.8 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

onevcs_cli-0.2.0-py3-none-macosx_11_0_arm64.whl (925.7 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

onevcs_cli-0.2.0-py3-none-macosx_10_12_x86_64.whl (985.0 kB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file onevcs_cli-0.2.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: onevcs_cli-0.2.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 978.1 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for onevcs_cli-0.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d50774c48e0fb58d9d6aa94b7b85b652f85b26d5294f1566bc16de325bebc285
MD5 0d2979f1bd06785658e5a2495c4cdf8d
BLAKE2b-256 fde8dd055ae4fa8b2bf5044aabc6975a18af2a3a4440b3b4ca7e97d730e4be66

See more details on using hashes here.

File details

Details for the file onevcs_cli-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for onevcs_cli-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8b7b2e6c6e042a2b9e24d0d844a2f8edec2fb15f77a86489241fcb14457e2a5
MD5 0a1dbd4093012ae6016aed6b8fb2eb48
BLAKE2b-256 d0ff834ece4f7cd312d00df616158facc6db45fde873a7fd71674e364f19bfd1

See more details on using hashes here.

File details

Details for the file onevcs_cli-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for onevcs_cli-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07f49653be3a9c02f434857ba8c697a4d98de6c027fdbd23faf9ff8043f910f1
MD5 edd00d316d81dd6b0964f53af0a89d83
BLAKE2b-256 eec40b69c62499bd7f3b58aee94a51c3e835fa7c958decec3b39dfd854bccc31

See more details on using hashes here.

File details

Details for the file onevcs_cli-0.2.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for onevcs_cli-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dcf4e9cbf15efa88a90de5d4701e05878d64199507e3ad078d085cec075bf7a5
MD5 02f25a0863f22fd0f2e910a8b70f3855
BLAKE2b-256 e83159dc072226c38d1256b8468c8aaeb08785e5eea3500e60a770528a37d590

See more details on using hashes here.

File details

Details for the file onevcs_cli-0.2.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for onevcs_cli-0.2.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f66b4299cb907cf27b38f5335fc9a12d0b9879ca6f45ccb4d17b02e3dcf1f059
MD5 289f5c18b5872492ae5094f1d011f43e
BLAKE2b-256 c948723ed1696a77b8b5e34370753592e2eae7ed7efd5e1090983bc5846cb529

See more details on using hashes here.

Release history Release notifications | RSS feed

0.18.0

5 files

0.17.1

5 files

0.17.0

5 files

0.16.3

5 files

0.16.2

5 files

0.16.1

5 files

0.16.0

5 files

0.15.10

5 files

0.15.9

5 files

0.15.8

5 files

0.15.7

5 files

0.15.6

5 files

0.15.5

5 files

0.15.4

5 files

0.15.3

5 files

0.15.2

5 files

0.15.1

5 files

0.15.0

5 files

0.14.1

5 files

0.14.0

5 files

0.13.0

5 files

0.12.3

5 files

0.12.1

5 files

0.12.0

5 files

0.11.1

5 files

0.11.0

5 files

0.10.0

5 files

0.9.0

5 files

0.8.1

5 files

0.8.0

5 files

0.7.0

5 files

0.6.1

5 files

0.6.0

5 files

0.5.0

5 files

0.4.2

5 files

0.4.1

5 files

0.4.0

5 files

0.3.1

5 files

0.3.0

5 files

0.2.10

5 files

0.2.9

5 files

0.2.8

5 files

0.2.7

5 files

0.2.6

5 files

0.2.5

5 files

0.2.4

5 files

0.2.3

5 files

0.2.2

5 files

0.2.1

5 files

This release

0.2.0 This release

5 files

0.1.3

5 files

0.1.2

5 files

0.1.1

5 files

0.1.0

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page