Set up, test, and repair developer machines on macOS, Windows, and Linux — with one command.
Open-source CLI for developers and the teams that manage their machines
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 combines Ansible with each platform's VM tooling, so you can manage local machines, remote hosts, and disposable test systems from one repository.
Why not plain ansible-playbook? See how it's different.
Machine Setup You Run, Not Remember
You run the commands
…the VM builds itself, unattended
- Onboard new developers from a versioned setup instead of a wiki checklist
- Rebuild your own machine from a repository instead of from memory
- Test setup changes safely in disposable VMs before rolling them out
- Repair drifted machines by re-running the same automation
Who Uses Sailwright
Developers, platform and CI teams, admins, IT leads, and agent harnesses each use Sailwright differently: find your scenario on Who It's For.
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. It does not enroll devices or manage policies.
One Toolkit, Every Host
Your setup lives in versioned Ansible roles. Managed workflows create and configure a VM for you; local provisioning applies your roles to the host itself.
| Host OS | Managed VM workflows today |
|---|---|
| macOS | macOS (Tart), Ubuntu (UTM), Windows 11 (UTM) |
| Windows | Ubuntu (Hyper-V), Windows 11 (Hyper-V; VirtualBox also works but is unstable) |
| Linux | Ubuntu and Windows 11 (QEMU/KVM via libvirt and virt-manager), plus Docker-based Linux testing |
Preview First, Re-Run Safely
- 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
License, Privacy, and Security
Sailwright is free and open source under the AGPLv3. Use it at no cost: personally, at work, and across your whole organization, including for commercial purposes. The open-source core will stay free. It is maintained by Carl-Christian Sautter — see About for licensing details.
No telemetry, no phoning home: Sailwright makes only the network calls you ask for — release and self-update downloads, OCI (container) registry pushes and pulls, and whatever your playbooks and VM setups define.
Sailwright asks for elevated rights only where needed and only for the run, rather than “run everything as admin.” On Windows, access is temporary and loopback-only; the Windows access guide explains how. On macOS and Linux, the scripts prompt for sudo only for the steps that need it.
Release checksums are signed keylessly with cosign; SECURITY.md shows how to verify them.
Get Started in Three Commands
Download the release for your OS from GitHub Releases, then:
sailwright install— install the host dependencies (on macOS and Linux this includes Ansible, Packer, and QEMU)sailwright provision local --check— preview what would change on this machine; touches nothingsailwright provision local— apply the setup to this machine: the bundled example roles by default, or your team's roles once you configure role sources
To test on a disposable VM instead, follow Testing workflows. Real workflows are in Use Cases, the full setup in the documentation. Questions? Contact us.