Mise en place for Omarchy.
Waki turns web apps into standalone desktop windows using Chromium's --app mode. A curated catalog of 120+ apps, Chromium profile isolation, and a simple TUI — that's it.
The name comes from the Japanese kitchen hierarchy: the wakiita (脇板) is the chef's trusted second, the one who makes sure everything is in its place before service begins.
curl -fsSL https://raw.githubusercontent.com/modoterra/waki/main/install.sh | bashOr clone and run locally:
git clone https://github.com/modoterra/waki.git
cd waki && bash install.shLaunch with waki or press SUPER SHIFT W.
- Curated catalog of 120+ web apps across 14 categories
- Standalone windows via Chromium
--appmode — no browser chrome, no tabs - Multi-profile — install the same app on different Chromium profiles (work vs personal)
- Chef's recommendations — first-run flow suggests essential apps to get started
- Self-updating —
waki updatepulls latest from git and seeds new catalog entries - Channels — switch between
stableandcanary
Run waki for the interactive TUI, or use commands directly:
waki webapp add Add web apps from the catalog
waki webapp remove Remove installed web apps
waki webapp refresh Regenerate desktop entries
waki alias add Add Oh My Zsh-style git aliases to ~/.bashrc
waki alias remove Remove Waki git aliases from ~/.bashrc
waki alias refresh Refresh the Waki git alias block in ~/.bashrc
waki alias status Show git alias status
waki channel [name] Switch between stable / canary
waki update Update Waki from git
waki about Show version and stats
waki uninstall Completely remove Waki
waki help Show this help
Waki ships an extensive Oh My Zsh-inspired git alias bundle at lib/aliases/git.sh.
Enable it on demand:
waki alias addThis writes a managed block in ~/.bashrc that sources Waki's alias file. Use waki alias remove to remove it, waki alias refresh after updates, or waki alias status to check whether the block is enabled.
Waki fires hooks via omarchy-hook after installs and removals. Create executable scripts in ~/.config/omarchy/hooks/:
| Hook | Arguments | Fired when |
|---|---|---|
waki-webapp-install |
$1 app name, $2 app URL |
After adding a web app |
waki-webapp-remove |
$1 app label |
After removing a web app |
Sample hooks are in hooks/ and copied to ~/.config/omarchy/hooks/ during installation. Remove .sample to activate.
- gum — terminal UI
- sqlite3 — database
- jq — JSON parsing
- curl — icon downloads
- Chromium — browser runtime
Waki keeps an SQLite database with the app catalog, Chromium profiles, and installs. When you add an app:
- Picks a Chromium profile (if you have more than one)
- Downloads the icon from dashboard-icons
- Creates a
.desktopfile in~/.local/share/applications/ - The
.desktopfile callswaki-webapp-launch <install-id>, which queries the DB for the URL and profile, then launches Chromium in--appmode
Each app + profile combo gets its own desktop entry, so the same app on different profiles appears as separate launchers.
Waki stores its state in a local SQLite database. The database lives at database/waki.db when you run from a local repo, or ~/.local/share/waki/database/waki.db when installed via the script. The database and Chromium profiles are local-only and never leave your machine.
See CONTRIBUTING.md for setup, tests, and style guidelines.
See SECURITY.md for reporting instructions.