Plugin registry for kreeader-studio: aggregates each plugin repo manifest.json into a single index.json that studio's plugin manager pulls.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-04 20:20:22 +00:00
.forgejo/workflows CLAUDE.md + fix runner label (docker->arch; docker has no runner here) 2026-08-12 13:23:21 -05:00
schema schema: add 'procgen' to plugin kind enum 2026-08-15 15:11:59 -05:00
.gitignore Plugin registry: aggregated index.json + manifest schema + aggregate workflow 2026-08-12 13:09:30 -05:00
CLAUDE.md CLAUDE.md + fix runner label (docker->arch; docker has no runner here) 2026-08-12 13:23:21 -05:00
index.json registry: refresh index.json (2026-09-04T20:20:22Z) 2026-09-04 20:20:22 +00:00
README.md Plugin registry: aggregated index.json + manifest schema + aggregate workflow 2026-08-12 13:09:30 -05:00

kreeader-plugins / registry

The plugin registry for kreeader-studio. It aggregates every plugin repo's manifest.json into a single index.json that studio's plugin manager pulls to discover, install, and update plugins.

How it works

plugin repo (on release tag v*)                registry (this repo)
  ┌───────────────────────────┐   aggregate    ┌────────────────────┐   pull
  │ plugin.toml (author)       │   ─────────▶   │ index.json         │  ─────▶  kreeader-studio
  │ CI renders manifest.json   │   (fetch each  │ (all plugins,      │          plugin manager
  │  with version from the tag │    repo's      │  latest versions)  │
  │  and commits it            │    manifest)   └────────────────────┘
  └───────────────────────────┘
  1. Each plugin repo has plugin.toml (author-maintained capabilities) and a Forgejo Action that, on a release tag v*, renders manifest.json (capabilities + the tag's version + artifact ref) and commits it back to that repo. That is each plugin "updating its manifest with its latest version."
  2. This registry's aggregate workflow (on schedule + manual dispatch) lists the kreeader-plugins org, fetches every repo's manifest.json, validates it against schema/manifest.schema.json, and writes the combined index.json.
  3. kreeader-studio fetches index.json (one request = the whole catalog with current versions), and can fetch a plugin's full manifest.json for detail.

index.json shape

{
  "schema": "…/manifest.schema.json",
  "generated": "2026-08-12T18:00:00Z",
  "registry_version": 1,
  "plugins": [ { /* one manifest per plugin, latest release */ } ]
}

Publishing a plugin

  • Add plugin.toml + the publish-manifest workflow to the plugin repo (see kreeader-tts-attribute / kreeader-tts-sampled for the template).
  • Tag a release (vX.Y.Z). CI renders and commits manifest.json.
  • The registry picks it up on the next scheduled run, or trigger the aggregate workflow manually for an immediate refresh.

Auth

The aggregate workflow needs org read to enumerate repos and fetch raw files. It uses the repo's auto FORGEJO_TOKEN where that suffices; otherwise set a PLUGIN_REGISTRY_TOKEN secret (org read) on this repo. Plugin repos need no cross-repo secret — they only write their own manifest.json with the auto token.