Set up, test, and repair developer machines on macOS, Windows, and Linux — with one command.
Sailwright
Public Beta
Setting up a developer machine is still one of the most manual things in software: wiki checklists, one-off scripts, and asking whoever did it last. Sailwright replaces that with automation you can version, test, and re-run.
It's a single command-line tool that sets up, tests, and maintains developer environments on macOS, Linux, and Windows. Under the hood it combines Ansible with the right VM and system tooling for each platform, so teams can manage local machines, remote hosts, and disposable test systems from one repository.
Sailwright is not a replacement for the MDM/UEM tooling your IT department runs — it complements those tools by covering the developer-tooling layer they don't reach: the part that usually stays manual, team-specific, and hard to reproduce.
The result: machines that look the same however they got there — a new laptop, a rebuilt CI runner, or a workstation that has drifted and needs to be brought back in line.
Download the binary for your OS from GitHub Releases, then run: sailwright install
You run the commands
…the VM builds itself, unattended
Why It Helps
One shared, versioned machine setup — here's what it changes for a cross-platform team:
- Onboard new developers in minutes instead of days
- Keep machine setup consistent across macOS, Windows, and Linux
- Test setup changes safely in disposable VMs before rolling them out
- Reduce one-off scripts, tribal knowledge, and repeated support work
- Repair drifted machines by re-running the same automation
Who Uses Sailwright
Developers keeping their own workstation honest. Platform teams onboarding new hires. CI engineers reusing build images. Windows and Mac admins who don't want standing remote access. IT leads weighing open source against support contracts.
Sailwright serves each of them a little differently — see who it's for and find your scenario.
One Toolkit, Every Host
Sailwright keeps setup logic in versioned Ansible roles and playbooks, then uses host-appropriate tooling to apply and test them.
| Host OS | What you can automate today |
|---|---|
| macOS | Managed workflows for macOS (Tart), Ubuntu (UTM), and Windows 11 (UTM), plus direct local provisioning of the host itself |
| Windows | Managed workflows for Ubuntu (Hyper-V) and Windows 11 (Hyper-V, plus VirtualBox as unstable), plus direct local provisioning of the host itself |
| Linux | Managed workflows for Ubuntu and Windows 11 with native QEMU/KVM via libvirt/virt-manager, plus direct local provisioning of the host itself and Docker-based Linux testing |
Tart, UTM, Hyper-V, and QEMU/KVM are each platform's native virtualization tools — Sailwright drives them for you, so you never interact with them directly.
Built on Simple Ideas
- Ansible roles and playbooks are the single source of truth for machine setup
- Roles stay cross-platform where possible, with OS-specific handling where needed
- Runs are idempotent: applying the same setup twice is safe and changes nothing the second time
- Machines pull and run their own automation locally — no central server required
- Every change can be previewed with --check mode before it touches the machine
Built on Trust
Sailwright is maintained by Carl-Christian Sautter and open source under the GNU Affero General Public License v3 (AGPLv3), with a separate commercial license available for closed-source or SaaS use — see About for details.
It collects no telemetry and phones home to nothing: the only network calls it makes are the ones you explicitly ask for (release/self-update downloads, OCI registry push/pull, and the Ansible/VM/network operations your playbooks define).
Elevation is scoped and temporary rather than “run everything as admin.” On Windows, sailwright provision local creates a dedicated, time-boxed local administrator account and a loopback-only WinRM/SSH listener for the duration of the run, then restores the prior state during cleanup. On macOS/Linux, install and provisioning scripts prompt for sudo only for the steps that need it.
Release binaries ship with published checksums, signed keylessly with cosign — see SECURITY.md for verification steps.
See It in Action
Find yourself on Who It's For, browse the Features, or see real workflows in Use Cases.
Ready to try it? Download the release for your OS from GitHub Releases, then:
sailwright install— install host dependenciessailwright provision local --check— preview what would change, touches nothingsailwright provision local— apply your team's setup
Full setup, including Windows and VM workflows, is in the documentation — or get in touch with questions.