Repository navigation
Submission Guide
We use a strict, commit-pinned, hash-verified registry to keep users safe. The easiest way to install plugins is directly inside Selah via the Community Plugins tab. If you have built a plugin and want it listed, follow these steps.
Publish your plugin in a public GitHub repository. It can be a dedicated repo, or a folder inside a monorepo (e.g., my-plugins/daily-stats).
Make sure your repo contains a valid manifest.json and index.js.
The registry locks plugins to an exact commit so that code cannot be silently updated by the author. Run this in your plugin's repository to get the full 40-character SHA:
git rev-parse HEADFork the selah-plugins repository, clone it locally, and run our hash script.
- If your plugin is in its own dedicated repo:
node scripts/hash.mjs owner/repo <commit-sha> - If your plugin is a folder inside a monorepo:
node scripts/hash.mjs owner/repo <commit-sha> <folder-name>
This will output a JSON object containing the URLs, commit, and SHA-256 hashes of your files.
Save the output from the script as plugins/<your-plugin-id>.json in the registry repo. Commit this file to a new branch and open a Pull Request.
- Our CI will automatically download your files at that exact commit, verify the hashes, and run security checks.
- A human maintainer will review the code to ensure it is safe and well-intentioned.
- Once merged, the registry is rebuilt, and your plugin will appear inside Selah within minutes.
To update your plugin, push your changes to GitHub, get the new commit SHA, and open a new Pull Request to update your plugins/<id>.json file with the new hashes and commit. Users are never moved to new code without a reviewed PR.