omarchy-plugin-publish
Skill1 starsChanged 3 months agoMITView on GitHub
Scaffold, validate, and publish a third-party Omarchy shell plugin (bar widget, panel, overlay, menu, service, or bar replacement) as a public git repository. Use when the user wants to create a NEW Omarchy shell plugin, package one for distribution, prepare it for the omarchyplugins.com directory, or write its manifest.json/README/LICENSE. Covers the pre-publish checklist (public repo with install/removal docs, license and dependency disclosure, ownership/rights attestation, no silent config overwrites) and the `omarchy plugin add/validate/update/remove` install flow end users will follow. Distinct from the `omarchy` skill's plugins.md, which covers using or cloning plugins that already exist on an installed system — this skill is for authoring and shipping a new one.
In this repositoryOne other file it gives its agents.
- tilSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Read this before building a new Omarchy shell plugin for public distribution, or before preparing an existing one for submission to …
- Distinctive: line 55
Validate the manifest: before going further:
- Very specific: line 66
Look at real examples before writing QML: Don't guess at the Quickshell/plugin API.
- Distinctive: line 91
Every third-party plugin README must give installers everything Omarchy's own manual describes at …
- Very specific: line 138
Unsure about a manifest field or QML API?: Don't guess — read a built-in plugin's source under $OMARCHY_PATH/shell/plugins/ first.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Omarchy Shell Plugin: Author & Publish
Read this before building a new Omarchy shell plugin for public distribution, or before preparing an existing one for submission to omarchyplugins.com.
This skill is about authoring a plugin repo from scratch and getting it
ready to ship. If the user instead wants to customize a plugin that's
already installed or built-in, that's omarchy plugin clone territory —
use the omarchy skill's plugins.md guide instead.
Scope check: where does this repo live?
A plugin repo you're developing is a normal git project — it lives
wherever the user keeps their source (e.g. ~/src/omarchy-weather/), not
under ~/.config/omarchy/plugins/. It only lands in
~/config/omarchy/plugins/<id>/ once someone runs omarchy plugin add (or
the developer symlinks it there for live testing). Don't confuse the two
locations.
GitHub is read-only for this assistant per the user's global policy: no creating repos, no pushing, no commits/PRs. This skill scaffolds files locally and validates them — the user pushes to their own remote and creates the public repo themselves, unless they've explicitly told you otherwise for this session.
Workflow
- Pick the plugin kind(s) and confirm the
id(username.pluginname, e.g.dhh.clock— seemanifest-schema.md). Theomarchy.namespace is reserved for built-ins; never use it. - Scaffold the repo from
templates/:manifest.json— fill inid,name,version,kinds,entryPoints, and (forbar-widget) thebarWidgetblock.- One QML file per declared kind, matching the
entryPointspaths. README.md— see the README section below.LICENSE— seechecklist.mditem 2.
Validate the manifest before going further:
omarchy plugin validate ./my-pluginThis checks schema-version compliance, required fields, that the
iddoesn't collide with the reservedomarchy.namespace, that every declared kind has a matching entry point that exists as a safe relative path, and that there are no symlinks inside the plugin folder. Fix everything it flags — don't publish past a validation failure.Look at real examples before writing QML. Don't guess at the Quickshell/plugin API. Read existing built-in plugins for real patterns (reading is always safe, per the
omarchyskill's safety rules):ls "$OMARCHY_PATH/shell/plugins/" cat "$OMARCHY_PATH/shell/plugins/<name>/manifest.json" cat "$OMARCHY_PATH/shell/plugins/<name>/"*.qml- Run the full pre-publish checklist in
checklist.md— all four items, including the one only the human can attest to (ownership of the plugin and any preview assets). Do not check that item off on the user's behalf; ask them to confirm it explicitly. Hand off for publishing. Tell the user to create the public repo and push (or do it yourself only if they've explicitly asked you to write to GitHub in this session). Once public, installers use:
omarchy plugin add https://github.com/<user>/<repo>.git --enable
README Requirements
Every third-party plugin README must give installers everything Omarchy's
own manual describes at
omarchy.org/manual/shell-plugins/#adding-a-plugin-from-git.
Start from templates/README.md.template,
which includes:
- What it is — one-paragraph description, screenshot/GIF if it's a visual widget (only assets the submitter actually owns — see checklist item 3).
Install — the exact command, with the real repo URL substituted in:
omarchy plugin add https://github.com/<user>/<repo>.git --enableNote for readers that Omarchy will show a trust warning first (plugins run as unsandboxed code inside the long-lived shell process) and require explicit confirmation before cloning into
~/.config/omarchy/plugins/<id>/. It never runs an install hook or asks for sudo.Update:
omarchy plugin update <id>Remove:
omarchy plugin remove <id>- License — name it and link/include the LICENSE file.
- Dependencies — anything the plugin shells out to, imports, or talks to over the network (see checklist item 2).
Decision Framework
- Building a brand-new plugin? Scaffold from
templates/, then follow the numbered workflow above. - Plugin already has code, just needs packaging for release? Skip to
step 3 (validate) and confirm
README.md/LICENSEmeet the requirements above, then run the checklist. - Just want to run
omarchy plugin validate? That alone doesn't require this skill's full checklist — just run the command. - User wants to customize/clone a plugin that's already installed?
Wrong skill — use
omarchy'splugins.mdinstead. - Unsure about a manifest field or QML API? Don't guess — read a
built-in plugin's source under
$OMARCHY_PATH/shell/plugins/first.
Example Requests
- "Help me build an Omarchy bar widget that shows my calendar" → scaffold a
bar-widgetkind plugin, walk through the manifest and README, runomarchy plugin validate. - "I've got a plugin working locally, get it ready to publish" → jump to the pre-publish checklist and README requirements.
- "What needs to be true before I submit to omarchyplugins.com?" →
checklist.md. - "Does my manifest.json look right?" → cross-check against
manifest-schema.md, then runomarchy plugin validate.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

