Publish a mod
Publish a mod.
A community mod is an ordinary npm package. Add one keyword, publish, and it shows up on the mods page. No approval step.
1. Build the mod
The author CLI scaffolds a typed mod with a /hello command and offline tests:
omd-mod-author create ./my_mod my_mod
cd my_mod
pnpm testTests never call a real model. To try it live, pnpm watch STORE reloads the mod in codex on every save, using a practice store from omd-mod init. Full walkthrough.
2. Add the keyword
OMD itself doesn’t need the keyword; it’s how this site finds community mods.
Add omd-mod to keywords in package.json, and publish mod.json at the package root:
{
"name": "@you/my-mod",
"version": "0.1.0",
"keywords": ["omd-mod"],
"files": ["mod.json", "index.ts"]
}The mods page reads mod.json for the ID, API version, permissions and settings, and npm for the description, license and author. Keep the version the same in both, remove "private": true, and set license and provenance in mod.json.
- Leave
dependenciesempty.@oh-my-diff/mod-apiisn’t on npm yet, so list it only as a peer or dev dependency. - npm install scripts never run. The tarball can be at most 4 MiB packed, 16 MiB unpacked.
3. Publish
pnpm check && pnpm test && pnpm publish --access publicpnpm check type-checks; add TypeScript once with pnpm add -D typescript@5.9.3.
Your mod appears after the next daily rebuild. People install it with omd install npm:@you/my-mod, or pin a version with @0.1.0. Git works too.
Listing rules
- Mod IDs that start with
omd_and the@oh-my-diffnpm scope are reserved for first-party mods. - A package without a valid
mod.jsonat its root is skipped. - Community mods are not reviewed. Each one is labeled as community, with the capabilities it asks for shown next to it.
- A mod that is malicious, impersonates another, or breaks npm’s terms is removed after a report.
Want a mod to ship with OMD+? Suggest it in an issue.