Omarchy OmaMovie
Credit: MovieBox-TUI by mesamirh — ported to Python backend (
bridge/python/).

Quickshell panel for movies, shows & anime — search, pick season/episode and stream in mpv.
- No Rust, no binary downloads — pure Python,
~1.8Mclone (was~231Mbefore history purge) - Instant — dedicated streams process, E1 auto-selected,
≥2chars for suggestions, recent-search chips,Escto close/clear - Verified —
py_compile+ crypto unit tests onpush/PRonly (no release artifacts)
Install
omarchy plugin add https://github.com/yesheytenzin/omamovie.git --enable
Creates shim $XDG_CACHE_HOME/omamovie/omamovie-bridge → bridge/python/__main__.py and verifies {"cmd":"ping"}. Click in the bar to browse.
Update / Remove
omarchy plugin update tenzin.omamovie
omarchy plugin remove tenzin.omamovie
Backend
Pure Python — no Rust, no compilation, no binary downloads. Panel.qml unchanged — same CLI JSON contract.
| File | Role |
|---|---|
bridge/python/crypto.py |
HMAC-MD5 signing (x-client-token, x-tr-signature), sorted query, x-client-info |
bridge/python/client.py |
7-host failover, requests or urllib fallback, token via x-user |
bridge/python/cache.py |
~/.cache/moviebox-tui/ — 24h search/details, 2h streams, 1h homepage |
bridge/python/__main__.py |
ping/search/suggest/details/resources/captions/homepage + filtering/sorting |
Rust bridge (moviebox-tui crates) fully replaced; removed from repo.
Panel
Esccloses from any view; clears search field when focused- Episodes auto-populate on
openDetails;E1selected, dedicatedstreamsProcfor instant load - Suggestions gated at
≥2chars (220ms debounce, history instant) - Recent searches
Flow(max 10, deduped, click to re-search) - Streams placeholder:
Loading streams for S1E1 …/No streams — tap again to retry(retryMouseArea) - Sub→dub fallback:
auto-switched to <lang> — N streamswhen primary has no streams
License
MIT