Repositories
Plugin repositories are curated lists of plugins hosted on GitHub. They let you discover, install, and update plugins directly from the Shisho admin interface.
Managing Repositories
Shisho ships with the official plugin repository enabled by default. You can manage repositories in Admin > Plugins > Repositories.
Adding a Repository
- Go to Admin > Plugins > Repositories
- Click Add Repository
- Enter the repository URL (must be a
raw.githubusercontent.comURL) - The repository will be fetched and its plugins will appear in the Available tab
Syncing a Repository
Repositories cache their plugin list locally. To check for newly added plugins or updated versions, click Sync on the repository. This fetches the latest manifest from GitHub.
Disabling a Repository
You can disable a repository without removing it. Disabled repositories won't show their plugins in the Available tab, but any already-installed plugins from that repository will continue to work.
How Repositories Work
A repository is a JSON manifest file hosted on GitHub that lists available plugins with their versions and download URLs. When you browse the Available tab, Shisho reads from the cached repository manifests to show you what's installable.
Each plugin version in a repository includes:
- A download URL pointing to a ZIP file on GitHub Releases
- A SHA256 hash for verifying the download integrity
- A minimum Shisho version for compatibility filtering
- A changelog describing what changed
Shisho only shows plugin versions that are compatible with your current server version.
Creating a Plugin Repository
If you want to create your own repository of plugins, you need to host a JSON manifest file on GitHub.
Repository Manifest Format
Create a repository.json file with this structure:
{
"repositoryVersion": 1,
"scope": "my-org",
"name": "My Plugin Repository",
"plugins": [
{
"id": "my-plugin",
"name": "My Plugin",
"description": "A brief description of what the plugin does.",
"author": "Your Name",
"homepage": "https://github.com/my-org/my-plugin",
"versions": [
{
"version": "1.0.0",
"minShishoVersion": "0.1.0",
"manifestVersion": 1,
"releaseDate": "2025-06-15",
"changelog": "Initial release.",
"downloadUrl": "https://github.com/my-org/my-plugin/releases/download/v1.0.0/my-plugin.zip",
"sha256": "abc123..."
}
]
}
]
}
Key Rules
- Repository URLs must be on
raw.githubusercontent.com - Download URLs must be on
github.com(typically GitHub Releases) - SHA256 hashes are required and verified on install
- Scope must be unique across all repositories — it acts as a namespace for the plugins
manifestVersionin each version entry must match the plugin's actualmanifest.jsonversion
Hosting
- Create a GitHub repository for your plugin collection
- Add a
repository.jsonat the root (or any path) - Users add the raw GitHub URL:
https://raw.githubusercontent.com/my-org/my-plugins/main/repository.json
Plugin ZIP Structure
Each plugin ZIP should contain the plugin files at the root level:
my-plugin.zip
manifest.json
main.js
See the Development page for details on the manifest and plugin code format.