OmaBoot? Live is a comprehensive Intel Mac test suite for Omarchy: it runs from a USB stick on your Intel Mac (2006–2020), installs nothing, and reports the results to DoesItOmarchy.com.
Developer toolsPython · HTMLGitHub @omabootOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
omaboot.live: the site for OmaBoot? Live, a USB stick that tests how well Omarchy runs on your Intel Mac
Taken from the repository README
Loading the full README.
Read the full README ↗The public site of OmaBoot? Live: a bootable USB image, built from Omarchy's own ISO, that tests how well Omarchy runs on an Intel Mac (2006–2020) without installing anything, and reports the results to DoesItOmarchy.com.
Static HTML, no cookies, no third-party anything; two small scripts of its own, and every page works without them. Built by one Python script (stdlib only), like willitomarchy.com, and meant for Cloudflare Pages.
python3 site_build.py # writes dist/, checks it, lists the owner TODOs
make check # the same, then the fixes copy check and the scrub check
make sync-fixes # copy the OmaBoot? fixes from DoesItOmarchy.com (data/fixes.json)
python3 site_build.py --serve 8091 # preview dist/ at http://127.0.0.1:8091/ (Ctrl+C stops)
--serve behaves like Cloudflare Pages: directory indexes, 404.html, _redirects and the headers in _headers, including the CSP, so a CSP mistake shows up locally.
To see the Download page with a release in it without touching the real data:
python3 site_build.py --releases data/releases.example.json --out /tmp/omaboot-preview
(That build reports example.com as a problem on purpose: the check refuses example addresses in anything that ships.)
The build fails if a page links to something that doesn't exist, or if a {{token}}, a TODO or an example address is left in the output.
| Path | What |
|---|---|
pages/*.html | The copy. One HTML fragment per page; the first two lines are <!-- title: … --> and <!-- description: … -->. <!-- TODO(owner): … --> notes are listed by every build and left out of dist/. |
site.css | All styling. The OmaBoot? palette from the prototype; light and dark follow the system setting. Green is reserved for passed tests, so the site uses none. |
site_build.py | The generator. Also draws Boot (the prototype's v16 sprite) and the pixel wordmark as inline SVG, and the favicon. |
data/site.json | Addresses: the source org, the image repo, a contact. Empty values show as plain text, never as broken links; the build lists them as TODOs. |
data/releases.json | Published releases, newest first. [] until the first one: the Download page then says the first release is coming soon. |
data/releases.example.json | The shape of one release entry. |
data/editions.json | The editions (Live, Omarchy, Lab): name, role, one line, size, and what the card says until it has a release. Each needs its startup-disk icon in assets/editions/<id>.png. |
data/tests.json | The criteria and how OmaBoot? Live tests each one (how it tests, how it decides, how sure it is, what was seen on a real Mac, what could mislead it). Docs makes /docs/ and one page per test from it. Made from the criteria review (boot-wip/reviews/criteria-review.html in the project, boot-live 0.6.3 dev) with dev history taken out; update it when a test changes. |
data/fixes.json | The OmaBoot? fixes, copied from DoesItOmarchy.com's fix registry (its data/fixes.yaml, through /api/v1/snapshot) by make sync-fixes: each fix with the levels of the system it lives at (driver patch, boot options, …), the list of those levels (fix_levels), and the names of the configurations and criteria the fixes mention. Don't edit it by hand: the registry is the only place a fix is defined, since reports are checked against its IDs. make check (and so CI) fails while the copy is out of date; it passes with a notice when DoesItOmarchy.com can't be reached. .github/workflows/sync-fixes.yml syncs it daily (07:17 UTC) and on demand: when the copy changed and every fix has its entry in data/fixes-detail.json, it opens a pull request from sync-fixes, runs the required check, merges and deploys; when a fix is new, it leaves the pull request open for its entry and fails, which emails the maintainers. |
data/fixes-detail.json | What this site adds about each fix for /fixes/: the problem, how it works, when it acts in OmaBoot? Live, how a run shows it, what it leaves alone, its source files, and the image paths it adds (so a release's difference report links to it). The build fails when a fix in data/fixes.json has no entry here, or the other way round. Test pages list the fixes that can change their result. |
assets/screens/ | Real screens for the home page, drawn by boot-live's own code: go run ./tools/screens -only NAME -size 180x56x16 -out DIR (the MacBook Air 13-inch console), with the shown version set to a release (Version: in tools/screens/main.go). Hero: hero-quick-pass.webp, the quick pass and its results as the demo plays them, drawn with go run ./tools/screens -movie 12 -size 180x56x16 -out FRAMES and encoded with ffmpeg -framerate 12 -i FRAMES/%05d.png -c:v libwebp_anim -lossless 1 -loop 0 hero-quick-pass.webp (lossless, so the console's pixels stay sharp); hero-results.png is its last frame, shown instead when the reader asks for less motion; gallery (The test screens, Fig. 1–8): 1-hello, 2-whichmac, 4-quick-heat-running, gallery-console (the console over Quick results: ids, why thermal.fans, catalog mac, a note), h10-keyboard-typing, h9-usb-a-plug-in-here, h11-mic-tone-2, 6-finish-sent, saved as hello, which-mac, quick-heat, console, keyboard, usb-ports, microphone and finish, the demo naming the release image and its built-in catalog snapshot. |
assets/editions/ | The editions' startup-disk icons: the 256 px PNG inside each release .VolumeIcon.icns of the image build. |
assets/fonts/ | Nordwand Mono (body), Regular and Bold, OFL: from our fork omaboot/Nordwand-Mono, which adds the characters the site uses that the font lacked (· “ ” ‹ › « » ← ↑ ↓ ↗ ⌘ ✓, the no-break space), cut there with make web-cut (Latin-1, punctuation and arrows, no ligatures, about 7 KB each); data/body-font-chars.txt is the cut's list of characters, and the build fails when a page uses one outside it. iA Writer Quattro as Nerd Fonts' iM Writing Quattro (headings), Regular and Bold, OFL, cut to Latin from the Nerd Fonts v3.5.1 "Propo" builds. The Omarchy Font. Self-hosted: the CSP allows fonts from the site only. |
data/wordmark.json | The OmaBoot? Live wordmark's outlines, from BigBlue Terminal 437: tools/wordmark.py FONT.ttf (needs fontTools; the font is in Nerd Fonts' BigBlueTerminal.tar.xz). |
data/hero-imac.svg | The home page's drawing of an iMac (27-inch, Late 2009) [iMac10,1] from the rear, its ports labelled with the tests: python3 tools/hero_drawing.py data/hero-imac.svg --labels tests --hero. Inlined by the build. |
copy.js | Copy buttons on command blocks (<pre class="out"> blocks, what a command prints, get none). The CSP allows scripts from the site only. |
gallery.js | The home page's lightbox: a screen (or a step's Fig. link) opens larger with its caption; ← → and swipes go through them, Esc or × closes. Loaded only on pages with a .gallery; without it the screens are plain links to their images. |
data/allowed_signers | The release keys, published at /allowed_signers. The Verify page shows their fingerprints, computed at build time. |
Add the release to the top of data/releases.json, with "edition" (live, omarchy or lab; live when left out):
{
"version": "0.5.0", "date": "2026-11-02", "omarchy": "4.0.5",
"iso": "https://…/omaboot-live-0.5.0.iso", "size": 1987654321,
"sha256": "<64 hex digits>",
"sha256sums": "https://…/SHA256SUMS", "signature": "https://…/SHA256SUMS.sig",
"packages": "https://…", "difference": "https://…", "build_log": "https://github.com/…/actions/runs/…",
"notes": "optional, one line"
}
Every field except notes is required and every address must be https://. Then make the release's page (/releases/<version>/, its difference report, with the numbers the Download page shows): download the release's build-info.json, packages.tsv and diff-report.tsv.gz from its GitHub release into a folder and run python3 tools/release_report.py FOLDER, which writes data/reports/<version>.json (public facts only; commit it with the release entry). Without it, the site links the published difference file instead. With a release present, _redirects also gets /latest.iso, /SHA256SUMS and /SHA256SUMS.sig pointing at the newest one.
omaboot.live is the site. doesitboot.com, omaboot.com and boot.watch redirect to it with domain-level Cloudflare redirect rules, which live in Cloudflare, not in this repo. boot.watch's redirect is temporary: it becomes the phone relay's address once that exists. boot.watch/v1/* (bootwatchd, the network tests' endpoints) and status.boot.watch (bootwatcherd, the status page) are exempt from the redirect; keep both exemptions when the redirect's target changes (bootwatchd's deploy/cloudflare.sh re-applies them).
Every push to main deploys: GitHub Actions (.github/workflows/deploy.yml) runs make check (the build, its link and token checks, the scrub check's generic part), then uploads dist/ with wrangler pages deploy to the Cloudflare Pages project omaboot-live, which serves omaboot.live. Pull requests get the same checks without the deploy. The workflow needs two repository secrets: CLOUDFLARE_API_TOKEN (an account token with Cloudflare Pages: Edit and nothing else) and CLOUDFLARE_ACCOUNT_ID. Run make check before pushing: with the maintainers' pattern file, it also runs the scrub check's private part, which CI can't.
The code (site_build.py, site.css, tools/, the Makefile) is MIT (LICENSE). The words and art (the pages' copy, the text in data/editions.json and data/tests.json, the pictures in assets/editions/ and assets/screens/, and the drawings of Boot, the iMac, the T2 utility and the favicon) are CC BY 4.0 (LICENSE-CONTENT). The fonts: Commit Mono and iM Writing Quattro are OFL (CommitMono-OFL.txt, iMWritingQuattro-OFL.md). The wordmark's letters are outlines of BigBlue Terminal 437 by VileR (int10h.org), so the wordmark is CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); the Omarchy Font, used only for the word Omarchy in the home page's title, is MIT, by Mark Cuda (OmarchyFont-LICENSE.txt), a fan font: the Omarchy name and wordmark remain Omarchy's.
The scrub check in make check fails on private-network addresses other than the usual examples, home-directory paths, private keys and report keys, and on the maintainers' own host names, read from a patterns file outside the repo ($OMABOOT_SCRUB_PATTERNS; skipped with a notice when there is none).