<title>Oxygen: version control you can verify</title>
7
<metaname="description"content="Oxygen is a version control system, a forge and a build runner designed together: every change signed, conflicts recorded and resolved once, builds reproducible, and all of it hosted where you choose.">
<pclass="eyebrow">Version control, a forge and CI, designed together</p>
18
<h1>Version control you can <spanclass="grad">verify</span>.</h1>
19
<pclass="lede">Oxygen records every change as a signed, commutative patch, keeps conflicts as part of history instead of a mess to clean up, and builds in sandboxes that leave a signed receipt. It runs on your own machines, in your own country, and proves what it did.</p>
<preclass="term"aria-label="An example session"><code><spanclass="p">$</span> oxy clone https://oxygenhub.io/andymccall/oxygen
25
<spanclass="p">$</span> oxy commit -m "Retry the upload"
26
<spanclass="p">$</span> oxy push
27
<spanclass="ok">✔</span> Pushed origin/main · sealed by your key · logged</code></pre>
28
</div>
29
</section>
30
31
<sectionclass="pillars"id="oxygen">
32
<divclass="wrap">
33
<h2>Three parts, one system</h2>
34
<divclass="cards">
35
<articleclass="card">
36
<h3><spanclass="tag">oxy</span> Oxygen</h3>
37
<p>The version control system. Changes commute, so they apply in any order and reach the same result: no rebasing, and a proposal never goes stale.</p>
38
<ul>
39
<li>Conflicts are recorded in history and resolved once, by a change anyone can fetch.</li>
40
<li>Every change is signed, with Ed25519 and the post-quantum ML-DSA-65 together.</li>
41
<li>Imports and exports Git history, commit by commit.</li>
42
<li>Keeps repositories on disk or in your own S3 or Google Cloud Storage buckets.</li>
43
</ul>
44
</article>
45
<articleclass="card"id="hub">
46
<h3><spanclass="tag">oh</span> OxygenHub</h3>
47
<p>The forge, self-hosted or at <ahref="https://oxygenhub.io">oxygenhub.io</a>: repositories, proposals and reviews, issues and boards, releases.</p>
48
<ul>
49
<li>Approvals are sealed with the reviewer's key, so a landing proves who agreed.</li>
50
<li>Every reference update goes into a transparency log, cosigned by independent witnesses.</li>
51
<li>Agents work under grants you can revoke, signing with ten-minute keys, never stored ones.</li>
52
<li>A command line, Visual Studio Code extensions and an Android app.</li>
53
</ul>
54
</article>
55
<articleclass="card"id="flow">
56
<h3><spanclass="tag">flow</span> OxygenFlow</h3>
57
<p>The pipeline runner. Jobs run with no network unless they name the hosts they need, from images pinned by hash.</p>
58
<ul>
59
<li>Three sandboxes: Firecracker microVMs, system-call filtering, and WebAssembly.</li>
60
<li>Runners on Linux (x86_64, Arm and RISC-V), Windows, and Android phones.</li>
61
<li>Each job leaves a signed receipt naming its inputs, image and outputs.</li>
62
<li>Runners update themselves, in test groups first, and roll back on their own.</li>
63
</ul>
64
</article>
65
</div>
66
</div>
67
</section>
68
69
<sectionclass="why">
70
<divclass="wrap two">
71
<div>
72
<h2>Why another version control system?</h2>
73
<p>Git records snapshots and leaves merging to tools and people. Every rebase rewrites history, every conflict is solved again on the next merge, and nothing proves who wrote what unless everyone signs everything by hand.</p>
74
<p>Oxygen starts from the other end. A change is a patch with a stable identity, so applying it twice or in another order changes nothing. History is never rewritten. Signing is the default, checked on every push, and recorded where anyone can audit it.</p>
75
</div>
76
<dlclass="facts">
77
<div><dt>Commutative</dt><dd>Changes apply in any order; proposals never go stale.</dd></div>
78
<div><dt>Conflicts kept</dt><dd>Recorded, built on, resolved once for everyone.</dd></div>
79
<div><dt>Signed</dt><dd>Classical and post-quantum signatures on every change.</dd></div>
80
<div><dt>Logged</dt><dd>A witnessed transparency log of every update.</dd></div>
81
<div><dt>Hermetic</dt><dd>Builds with no network, from pinned images.</dd></div>
82
</dl>
83
</div>
84
</section>
85
86
<sectionclass="sovereign"id="sovereign">
87
<divclass="wrap">
88
<h2>Sovereign by design</h2>
89
<pclass="lede">Your source, your keys, your builds, in your jurisdiction. Oxygen has no service it must call home to.</p>
90
<divclass="cards three">
91
<divclass="card flat">
92
<h3>Host it where you must</h3>
93
<p>Run OxygenHub and its runners on your own hardware or cloud account, in the UK or wherever your data has to stay. Storage can be your own buckets.</p>
94
</div>
95
<divclass="card flat">
96
<h3>Prove what happened</h3>
97
<p>Signed changes, sealed approvals, build receipts and a witnessed log let an auditor check the history without trusting the server that holds it.</p>
98
</div>
99
<divclass="card flat">
100
<h3>Keep builds in</h3>
101
<p>Jobs reach the network only through hosts you allow, every decision logged, so a build cannot quietly fetch or send what it should not.</p>
102
</div>
103
</div>
104
</div>
105
</section>
106
107
<sectionclass="status">
108
<divclass="wrap">
109
<h2>Where it is today</h2>
110
<p>Oxygen is young and moving fast, ahead of a 1.0 release. It is built with itself: its source lives on OxygenHub, every push is tested by OxygenFlow on our own runners, and every release is signed and logged. Try it at <ahref="https://oxygenhub.io">oxygenhub.io</a>, or install <code>oxy</code> and <code>oh</code> from the <ahref="https://oxygenhub.io/andymccall/oxygen/releases">releases page</a> or the apt repository there.</p>