-
Notifications
You must be signed in to change notification settings - Fork 0
Registry Spec
krwg edited this page Jul 8, 2026
·
1 revision
Format of registry.json at repo root.
| Field | Type | Description |
|---|---|---|
name |
string | Human-readable registry name |
version |
string | Registry schema version (currently 3.0.0) |
plugins |
array | Plugin entries |
| Field | Required | Description |
|---|---|---|
id |
yes | Folder name under repo root (lowercase, - allowed) |
name |
yes | Display name in Cultiva catalog |
version |
yes | SemVer — must match manifest.json
|
author |
yes | GitHub username or name |
description |
yes | Short catalog blurb |
icon |
no | Display icon (prefer empty — Cultiva uses letter placeholders) |
baseUrl |
yes | Raw GitHub URL to plugin folder |
minAppVersion |
yes | Lowest tested Cultiva version |
tags |
no | String array for filtering |
sha256 |
yes | Map of filename → hex hash |
{
"id": "weather",
"name": "Weather Widget",
"version": "2.1.0",
"author": "krwg",
"description": "Open-Meteo weather with hybrid city search.",
"icon": "",
"baseUrl": "https://raw.githubusercontent.com/krwg/cultiva-plugins/main/weather",
"minAppVersion": "1.7.0",
"tags": ["widget", "weather"],
"sha256": {
"manifest.json": "…",
"index.js": "…",
"styles.css": "…",
"cities-ru.json": "…"
}
}All installable assets:
manifest.json- Entry script (
manifest.entry, defaultindex.js) - Every file in
manifest.styles - Every file in
manifest.data
Compute locally:
node scripts/compute-registry-sha256.mjsCommit updated registry.json after any plugin file change.
- Must be HTTPS raw content URL (GitHub
raw.githubusercontent.comor GitHub Pages) - Must point to the plugin folder, not a single file
- Cultiva appends filenames when downloading
- Update
manifest.jsonversion in plugin folder. - Update matching
versionin registry entry. - Re-run sha256 script.
- Test install on Cultiva ≥
minAppVersion.
-
idmatches folder name -
versionmatches manifest - All hashed files exist on disk
-
minAppVersionis accurate -
permissionsin manifest match actual API usage - No secrets or API keys in plugin source