Skip to content

Submission Guide

Electric edited this page Nov 6, 2026 · 1 revision

Submitting a Plugin

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.

1. Publish your Plugin

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.

2. Get the Commit SHA

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 HEAD

3. Generate the Hash File

Fork 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.

4. Open a Pull Request

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.

5. The Review Process

  • 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.

Updating a Plugin

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.

Clone this wiki locally