Build something great for the pet catalog
Have an idea for Spotify, calendar, focus, games, AI helpers, or tiny desktop rituals? Build it in a public GitHub repo, submit it for review, and we can list the safe, packaged version for every OpenPets user.

Starter repo
Clone a complete example first
The starter repo includes a manifest, JavaScript entry, locale file, bundled SVG icon, README, and SDK smoke test. You can test it alone, then load that folder from OpenPets → Plugins → Developer Mode.
Build the plugin
Create a manifest, one JavaScript entry file, locales, and any bundled assets.
Tag a release
Publish a GitHub tag or commit so reviewers can pin the exact source.
Get listed safely
OpenPets reviews permissions, hosts, assets, and packaging before it appears in the catalog.
Submission readiness
A practical pre-submit flow
Work through these checks before opening an issue. Consult the SDK overview for manifest and capability details, and use plugin docs to see what users review before installing from the plugin catalog.
1. Confirm the manifest
Keep openpets.plugin.json alongside the entry file, with a stable plugin id, semver version, declared entry, and any bundled assets.
2. Declare only what you use
Request minimal permissions. If the plugin uses network access, declare only the exact public HTTPS hosts it needs.
3. Make the build reproducible
Validate and test the standalone plugin folder, then pin the submitted source with an immutable Git tag or full commit SHA.
4. Explain the purpose
Write a short README covering what the plugin does, local testing, and any account, API key, or OAuth setup users need.
5. Assemble the review packet
Include the plugin name and id, repository and subdirectory, pinned source, requested permissions and hosts with their purpose, plus external setup.
What to prepare
- A public GitHub repository with your plugin source.
- A plugin folder containing openpets.plugin.json, index.js, locales/en.json, and declared assets.
- A stable plugin id, semver version, minimal permissions, and exact network hosts.
- A Git tag or full commit SHA that reviewers can pin.
- A short README explaining what the plugin does and how users set it up.
Review packet
- Plugin name and plugin id.
- GitHub repo URL and plugin subdirectory.
- Release tag or commit SHA.
- Requested permissions and why each one is needed.
- Network hosts and what each host is used for.
- Any external account setup users need, such as OAuth app setup.
Copy into the GitHub issue if you are not using the form fields
Plugin name:
Plugin id:
GitHub repo URL:
Plugin subdirectory: .
Release tag or commit SHA:
Requested permissions:
- permission-name: why it is needed
Network hosts:
- host.example.com: what it is used for
External account setup:
- None, or explain OAuth/API setup users must complete
