An Omarchy bar widget for Prowlarr, the indexer manager. Search across every indexer Prowlarr manages, sort and filter the results, and grab releases — individually or in bulk — without leaving the desktop.
- Search — query Prowlarr across all your indexers, filtered by category: All, Consoles, PC, Movies, TV, Books, Audio
- Sortable results — Age, Title, Size, Grabs, Peers, Category or Indexer, ascending or descending
- Grab — one click on a release, or select several with the checkbox and use "Grab Release(s)" for a bulk grab. Grabbing pushes the release straight to whatever download client(s) you already have configured in Prowlarr — exactly what Prowlarr's own "Grab Release(s)" button does
- History — Prowlarr's own event history (searches, RSS, grabs) for this instance, paginated
- In-panel settings — the ⚙ button lets you set the Prowlarr base URL directly from the panel, without editing
shell.json - Keyboard-driven:
/focuses search,ggrabs the current selection,vswitches between Search and History,rrefreshes,escreturns focus from the search field or closes the panel
- A running Prowlarr instance
- A Prowlarr API key (Settings → General → Security in the Prowlarr web UI)
omarchy plugin add https://github.com/marcuspelo/omaprow.git- Create
~/.config/omaprow/.envwith your Prowlarr API key:Keeping the key in this file (outside the plugin folder) instead ofAPI_KEY=your-prowlarr-api-key URL_BASE=http://your-prowlarr-host:9696shell.jsonkeeps it out of any config you might sync or share.URL_BASEis optional but recommended:omarchy plugin disable/enabledrops the widget's bar-layout entry (including whateverbaseUrlwas set via the panel oromarchy bar set), so a value in.envis what keeps working across that reset. - Enable the widget:
Setting the base URL is only needed if
omarchy plugin enable marcuspelo.omaprowURL_BASEisn't set in.env— either viaomarchy bar set marcuspelo.omaprow baseUrl "http://your-prowlarr-host:9696", or from the panel itself (⚙ → Prowlarr base URL → Save). Note thatomarchy plugin disable/enabledrops the widget's bar-layout entry, including anybaseUrlset either way — a value in.envis what survives that reset.
The API key never appears in process arguments: every curl call sends it as an X-Api-Key header supplied over the child process's stdin (curl -K - with a header = "X-Api-Key: ..." config line), not as a -H argument — so it's invisible to ps/process inspection. ~/.config/omaprow/.env is also set to mode 0600 automatically every time the plugin reads it; you can do this yourself too: chmod 600 ~/.config/omaprow/.env.
Note: Prowlarr's search results embed the API key directly in each release's downloadUrl field. This plugin never uses downloadUrl — grabbing goes through Prowlarr's own POST /api/v1/search grab endpoint instead, addressed by release + indexer id, so the key stays out of that path too.
Available settings (shell.json, or omarchy bar set marcuspelo.omaprow <key> <value>):
| Setting | Type | Default | Description |
|---|---|---|---|
baseUrl |
string | (empty) | Base URL of your Prowlarr instance (no trailing slash). Falls back to URL_BASE in ~/.config/omaprow/.env when unset. |
pageSize |
integer | 100 |
Maximum releases requested per search (10–500) |
defaultCategoryId |
integer | 0 |
Category pre-selected on open (0 All, 1000 Consoles, 2000 Movies, 3000 Audio, 4000 PC, 5000 TV, 7000 Books) |
| Key | Action |
|---|---|
/ |
Focus the search field |
enter (in search field) |
Run the search |
g |
Grab every selected release |
v |
Switch between Search and History |
r |
Refresh (re-run the search, or reload history) |
esc |
Drop focus from the search field back to shortcuts; closes the panel otherwise |
omarchy plugin remove marcuspelo.omaprowMIT
