Skip to content
Conduit

mcp server

omastore

The Omarchy store in your terminal — search, preview, and install themes and plugins

antunesales-dev/omastorecommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "omastore": {
      "command": "uvx",
      "args": [
        "omastore"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 25, 2026

omastore

A terminal client for catalogs other people already built.

This is not a competing store. omarchytheme.com (limehawk) and omarchyplugins.com (HANCORE) remain the catalogs. omastore is another way to look at the same public listings from the keyboard, then install with the official omarchy theme and omarchy plugin commands those sites already document.

$ omastore
Omastore  1 themes  2 plugins  3 installed  4 packs     Search  ·  /

 stars     f filter   v source   s sort

 ● Spacex
 ● Tokyo Night                              [t] try  [b] back  [a] apply
 ○ Lumon                              *164  [o] repo  [c] catalog  [p] zoom

Not affiliated with Omarchy, 37signals, or the community catalog sites. Those sites stay the galleries. omastore is a terminal client for the same catalogs.

How it works

It is meant to stay simple.

  1. Open omastore.
  2. Type / and search, or press 1 / 2 / 3 / 4 for themes, plugins, installed, or suggested packs.
  3. Filter with f (installed / available / extra / stock / outdated), v (community / built-in), y (verified), m (active / inactive / all), and s (stars / name / recent). You can also type prefixes in the search box: hue:blue, tag:bar, by:oldjobobo, is:available, is:outdated, is:updatable, is:inactive, src:community. On plugins, active (default) hides community listings whose GitHub repo has not been updated in 90 days — not a delist; m all or omarchyplugins.com still has the full gallery. Installed extras stay visible. On a listing, g shows more from the same author on the current tab (1 / 2 for the other kind). On a pack, g (or clicking a member name) opens those plugins.
  4. The installed tab groups current theme, extra themes, community plugins, then built-in plugins. Stock themes are not dumped into that list (use v built-in if you want them). Installed themes on other tabs show a filled ● (green if it is the current theme, cyan otherwise) and sort above catalog-only rows. Plugin rows show a green ✓ when the HANCORE catalog verified them, or a yellow − when they are unverified. A yellow ↑ means git HEAD is behind and [u] updates it. On Installed or Plugins with f outdated, u scans every listed extra, then updates (one omarchy theme update for extra git themes). On the plugins tab, f is installed / not-installed / outdated, v is community / built-in, y is verified / unverified, and s sorts by rating (outdated rows stay at the top). You can also type is:installed, is:not-installed, is:outdated, src:builtin, verified:yes, stars:10. On the installed tab, f is all / extra / outdated.
  5. Press enter (or i) to install. omastore first scans a copy of the repo without running it (checking repo in a sandbox…). Clean and warn listings (network fetch, QML Process, hyprctl, unknown https hosts) get the usual confirm, then the official omarchy command. Block hits (curl | bash, secrets, obfuscation, crashed fetch) stop the install: abort, open a prefilled report draft, or install anyway after a second confirm. --yes is enough for warn; it cannot skip a failed scan. Packs are hand-picked verified plugins from the HANCORE catalog (Everyday, Developer, Finance, Designer, Music, Artist, Gamer), not a keyword dump and not a new store. In a pack, ● is already installed and ○ is still to install. i scans every remaining plugin, confirms if they are all clean, then installs them one by one. A blocked member fails the whole pack. x confirms every installed member, then removes them one by one. A plugin that also sits in another pack is still removed.

While the TUI is open it follows the current Omarchy theme (including colors) and installed plugins. Catalog JSON still caches for six hours; r refreshes it.

You do not browse a new store. You browse their catalogs, then Omarchy does the install. How we relate to those projects is in COMMUNITY.md.

Credits

omastore does not create or host the listings.

What you seeWho made it
Theme cataloglimehawk — omarchytheme.com · omarchy-theme-website
Plugin catalogHANCORE — omarchyplugins.com · omarchy-plugin-marketplace
Each theme or pluginThe author named on the item (and their GitHub repo)
Install / enable / removeOfficial Omarchy CLI

The plugin marketplace itself credits bjarneo for interface inspiration and limehawk's theme site for its submission workflow.

Press ? in the TUI for credits, version, and a changelog tab (l). Or run omastore about / omastore changelog. Full third-party rights notes are in NOTICE.md. How this relates to the catalogs, and a note you can send the authors, is in COMMUNITY.md.

Install

Needs Python 3.12+ and the omarchy CLI.

git clone https://github.com/antunesales-dev/omastore.git
cd omastore
python3 -m venv .venv
.venv/bin/pip install -e .
ln -sf "$PWD/bin/omastore" ~/.local/bin/omastore

Or run it from the repo:

./bin/omastore

Put it next to Omacalc / Omacut / Omawrite in the Omarchy app launcher:

omastore desktop

Then Super + Space and type Omastore, or Super + Ctrl + O. It opens as a floating Omarchy TUI and follows the current theme colors.

Use

omastore                          # TUI
omastore plugins                  # TUI on the plugins tab
omastore tui --tab plugins
omastore tui --tab packs
omastore packs                    # list suggested plugin packs
omastore pack everyday            # show the Everyday pack
omastore pack install everyday --yes
omastore pack install everyday --yes --i-accept-scan-risks
omastore pack remove everyday --yes
omastore scan plugin:omarchy-overview
omastore search lumon
omastore search overview --kind plugin
omastore search hue:blue is:available --sort stars
omastore search --category widgets --tag bar --available
omastore list --installed --source community
omastore list --outdated
omastore list --kind plugin --inactive
omastore search --kind plugin --include-inactive
omastore search is:outdated --kind plugin
omastore outdated
omastore update --outdated --yes
omastore try theme:lumon
omastore revert
omastore open theme:lumon
omastore open plugin:omarchy-overview --catalog
omastore preview plugin:omarchy-overview
omastore info theme:lumon --readme
omastore install theme:lumon
omastore apply lumon
omastore install plugin:omarchy-overview
omastore install plugin:omarchy-overview --yes
omastore install plugin:omarchy-overview --yes --i-accept-scan-risks
omastore remove plugin:omarchy-overview
omastore list --installed
omastore refresh
omastore about
omastore changelog
omastore mcp                      # stdio MCP (browse/audit; mutate off unless OMASTORE_MCP_ALLOW_MUTATE=1)

MCP (agents)

omastore mcp is a stdio MCP server over the same limehawk and HANCORE catalogs. It is an agent client, not a new store.

Read-only tools: search, info, installed, packs, pack, audit, hidden_widgets, scan, outdated.

Install/remove/enable/disable are not registered unless OMASTORE_MCP_ALLOW_MUTATE=1. Even then they require confirm: true and use official omarchy commands. Install also runs the no-execute scan; confirm is not enough when the scan reports issues (accept_scan_risks), and a failed scan cannot be overridden. They never execute catalog installCommand strings.

Example Cursor/Claude config:

{
  "mcpServers": {
    "omastore": {
      "command": "omastore",
      "args": ["mcp"]
    }
  }
}

TUI keys

KeyAction
/search (also hue:blue, tag:bar, is:available)
1 2 3 4themes / plugins / installed / packs
finstalled / not-installed / outdated / all
vcommunity / built-in / all
yverified / unverified / all (plugins tab only)
mactive / inactive / all (plugins tab; default hides 90-day-quiet GitHub repos)
ssort: stars, name, recent
0reset filters (keeps the current sort)
enterinstall, apply, or enable
iinstall
t / btry an installed theme (does not freeze the list) / restore the previous one
o / copen the author repo / catalog site
gmore from this author (same tab); on a pack: show those plugins
penlarge the screenshot (+/− zoom, arrows pan, o opens the file)
aapply theme
e / denable / disable plugin
uupdate (on Installed/f outdated: every listed extra)
xremove (on a pack: every installed member)
rrefresh catalogs
?credits (version + changelog tab)
qquit

Theme detail shows the catalog palette. After you settle on a row, omastore also shows a 16:9 screenshot: the theme's own preview.png if it is installed, otherwise a catalog or GitHub image, rendered with Sixel (Foot) or Kitty graphics (Ghostty) via textual-image, with half-block as fallback (p opens the file). Thin plugin listings fill empty fields from the author's manifest.json without overwriting catalog text. Plugin about is still the marketplace listing plus the upstream README.

Catalogs

Catalogs cache under ~/.cache/omastore/ for six hours. omastore refresh fetches them again.

Safety

Community themes and plugins are third-party code. Plugins run unsandboxed inside omarchy-shell. omastore is not a sandbox, and a clean scan is not proof of safety. HANCORE's verified badge is a signal; we still scan.

Before omarchy plugin add / omarchy theme install, omastore fetches a GitHub archive or a hookless shallow clone to a temp dir. The static audit then runs in bubblewrap (no network, no HOME, no extra capabilities). It never imports QML and never runs qmlscene. If the fetch, sandbox, or parse fails, install is refused (fail closed). --yes alone does not skip a failed scan; --i-accept-scan-risks only covers pattern hits, not a crashed scan. After you confirm, the official omarchy command still installs into omarchy-shell, which is not a sandbox.

Findings can be turned into a draft GitHub issue (HANCORE listing repo and/or the plugin repo). omastore never POSTs that issue.

omarchy theme install <url>
omarchy plugin add <url> --enable --yes

Review the repository before you confirm. The first launch shows this once; [y] continues, [e] opens the Everyday pack.

Reporting issues

Product bugs and feature ideas: GitHub Issues. Do not paste secrets, tokens, or personal data.

A vulnerability in omastore itself: report privately — SECURITY.md. Do not open a public issue or PR.

Develop

PRs only — main does not take direct pushes. See CONTRIBUTING.md.

.venv/bin/pip install -e '.[dev]'
.venv/bin/pytest

License

MIT

↑↓ navigate openesc close