Retheme: apply your Omarchy theme to every website
That's the whole thing... every site you open, drawn in your colours, and it follows when you switch themes. It may never be done - every site is drawn its own way, and every fix is one more site that matches.
What works today: a free browser extension for Chromium, Chrome, Brave and Firefox that restyles every site in your current Omarchy theme, live.
Built 5 Oct 2026 · 6 commits · MIT
22 of 22 Omarchy themes pass WCAG AA (4.5:1) for body text
Links pass in 19 of 22 themes, and placeholder text in 3 of 22 - that gap is the next fix.
What it does for you
- Every site in your themeThe palette becomes CSS variables injected at document_start.
- Follows when you switchThe host pushes the new palette to every open tab.
- Two modesSoft (background, text, links, forms) and Full (every opaque element, leaving images and brand colours).
- Skip a siteFrom the popup, when a site shouldn't be touched.
- Per-site tweaksFixes for big sites live in css.js, X and YouTube included.
- No build stepEdit css.js, reload. CONTRIBUTING.md covers forking.
Start in a minute
Yourself
- Clone it and run the installer
git clone https://github.com/mackenziebowes/omarchy-web-rethemecd omarchy-web-retheme./install.sh - Chromium: chrome://extensions, Developer mode, Load unpacked,
extension/. - Firefox: about:debugging, Load Temporary Add-on,
extension/manifest.json, then "Grant access to all sites" in the popup once.
Hand it to your agent
Paste this into your agent. It reads this page's plain-text copy and does the setup.
Read mackenziebowes.com/projects/retheme.md and install Omarchy Web Retheme for me.
How it works
A browser extension can't read ~/.config, so a native messaging host does it - Python, 85 lines, no dependencies. It reads ~/.local/state/omarchy/current/theme/colors.toml and sends the palette on connect and on every change.
The extension side is about 390 lines of JS: css.js turns the palette into --omarchy-* and --owr-* variables plus override rules, content.js injects them at document_start, and a background worker and popup round it out. If a theme is missing a key, it falls back to Catppuccin Mocha.
Where it stops
Shadow DOM contents aren't reached by page CSS, and canvas and inline SVG fills keep their own colours. Full mode can break a site that signals state by background colour alone - the popup skips that site.
Firefox temporary add-ons vanish on restart; a permanent install needs Developer Edition, Nightly or ESR with signatures off, or web-ext sign. It installs from the repo, not a browser store.
What's coming
Where this is going. Next up is a fallback colour for themes whose placeholder text fails contrast, plus per-site fixes for sites that break - X and YouTube are in already. One more site at a time.
Planned
Mackenzie Bowes in Vernon, with a crew of agents
The idea landed at 09:58 on 5 Oct, in his words: "I have a dumb throwaway idea I want to pass to you to play with in here." If you want to talk - about Retheme, or about having a crew like this work for you - write to me.
Talk to MackenzieEverything shipped
6 commits on 5 Oct 2026, 10:52 to 11:04.
October 20261 change
- 5 OctThe whole first stretch, from idea to working extension in one morning
Reference
Requirements and what it works with
- Runs on
- Linux with Omarchy.
- Works with
- Chromium, Chrome, Brave and Firefox.
- Needs
- Python 3.11 or later (for tomllib; the host has no other dependencies).
- Licence
- MIT
- Cost
- Free
Questions you'd ask
- Does it work on my browser?
- Chromium, Chrome, Brave and Firefox, running on Linux with Omarchy.
- What do I need installed?
- Python 3.11 or later, for tomllib - the host has no other dependencies.
- What does it cost?
- Nothing. MIT, free.
- A site breaks in Full mode - can I turn it off just there?
- Yep, skip that site from the popup.
- What if my theme is missing a colour?
- It falls back to Catppuccin Mocha for the missing key.
- How much shipped?
- 6 commits on 5 Oct 2026, 10:52 to 11:04 - the whole first stretch, from idea to working extension in one morning.
Follow Retheme
The story behind it, in two devlogs, and the code.