为宠物目录打造有趣功能
有 Spotify、日历、专注、小游戏、AI 助手或桌面小习惯的想法?在公开 GitHub 仓库中构建,提交审核,我们会把安全打包后的版本列给所有 OpenPets 用户。

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.
构建插件
创建清单、一个 JavaScript 入口文件、本地化文本和内置资源。
标记一个版本
发布 GitHub 标签或提交,让审核可以固定准确源码。
安全进入目录
OpenPets 会在展示前审核权限、主机、资源和打包内容。
Submission readiness
A practical pre-submit flow
Work through these checks before opening an issue. Consult the
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