Contribute

Jack in.

VectraOS is developed in the open on GitHub. Clone it, boot it, read it, and send what you find.

Build and boot

vx is the one front door. SwiftPM builds vx and the host tests; CMake and Ninja build the loader, kernel and user images, one tree per architecture, and vx drives both. Each step's log lands in build/vx/.

You need Swift 6.4.0 through swiftly (pinned by .swift-version, with its bundled clang, lld and llvm-objcopy), CMake, Ninja, bash, and QEMU with edk2. Nothing else.

sh
$ git clone https://github.com/JamesKane/VectraOS
$ cd VectraOS
$ swift build --product vx
$ .build/debug/vx ci              # everything
$ .build/debug/vx test --changed  # what a change risks
$ .build/debug/vx test arm64      # one arch in QEMU
$ .build/debug/vx boot arm64      # Ctrl-A x quits
$ .build/debug/vx bench           # budgets, KVM
$ .build/debug/vx loc             # size budgets
House rules

How the code is kept

Swift first, C23 where necessary

Embedded Swift built with strict memory safety, every unsafe use marked. C23 only for ABI headers, the compiler runtime and entry code, and each C file says why in its header comment.

Nothing third-party on the device

Everything that runs on VectraOS is first-party. Heavy compilers may run on the host, only to produce our own artifact formats. Code lifted from our earlier projects is recorded in IMPORTS.tsv against its source commit.

Decisions are written down

A change to the design, an exception to a principle, or a new mechanism comes with a dated entry in docs/decisions/.

Every promise is a budget

A new budget lands with its check and a milestone. A budget is never loosened in the change that would otherwise fail it.

New tests are Embedded Swift

A suite in user/test/swift/ with named checks, run inside the booted system on every architecture.

One mechanism per job

No compatibility shims or portability layers. Adding a mechanism means naming the one it replaces, or explaining why none exists.

BSD-3-Clause, no CLA

You keep the copyright on what you write. There is no contributor license agreement and no copyright assignment.

Forks are welcome

The license permits them. Its third clause means a fork can't use the VectraOS name to endorse itself.

Start with the README, the principles, and the known issues and open questions in docs/roadmap.md.

Governance

One BDFL. Four rules.

VectraOS is run by a BDFL, a benevolent dictator for life: James Kane. Every decision passes through the BDFL after weighing its pros and cons. Substantive changes get argued in an issue, a pull request or the decision log before the code lands, and a decision says why it was made.

If VectraOS ever reaches a user base the size of desktop Linux’s, a steady 2–3% of desktops, we’ll consider moving governance to a committee.

The code of conduct isn't one. It's four rules:

  • Have fun.
  • Respect each other.
  • Build cool software.
  • Leave politics at the door.

The AI policy is one sentence: AI assistance is permitted, and you’re responsible for reviewing what you submit and making sure it’s correct.