This repository serves as the official extension registry for Cove. It contains metadata for all officially published extensions that can be discovered and installed through the Cove UI.
index.json # Master index of all extensions
extensions/
{extension-id}.json # Canonical extension metadata + version history
- The Cove application fetches
index.jsonfrom this repository'smainbranch via GitHub raw content URLs - Users can browse and search extensions in Settings → Extensions → Find and Install Extensions
- Cove resolves extension summary/version data from each
extensions/{extension-id}.jsonfile - When a user installs an extension, Cove downloads the release ZIP from the extension's own GitHub repository
- Extensions are extracted to the local extensions directory and loaded automatically
- Build your extension following the Cove Extension Development Guide
- Create GitHub releases with ZIP packages named
{extension-id}-{version}.zip - Submit a PR to this repository adding your extension metadata:
- Create
extensions/{your-extension-id}.jsonas the source of truth
- Do not hand-write generated release fields. CI computes
versions[].checksumfromdownloadUrlduring PR validation and stamps missingversions[].releasedAtwhen the PR merges tomain.
index.json is generated/synchronized by CI as an ID-only list. Do not manually duplicate version/summary fields there.
{
"id": "com.example.my-extension",
"sourceManifestUrl": "https://raw.githubusercontent.com/your-org/your-repo/main/extensions/MyExtension/extension.json",
"name": "My Extension",
"description": "What this extension does.",
"author": "Your Name",
"repositoryUrl": "https://github.com/your-org/your-repo",
"categories": ["ui", "analytics"],
"dependencies": {},
"screenshots": [],
"versions": [
{
"version": "1.0.0",
"changelog": "Initial release",
"minCoveVersion": "1.0.0",
"downloadUrl": "https://github.com/your-org/your-repo/releases/download/v1.0.0/com.example.my-extension-1.0.0.zip"
}
]
}extensions/{extension-id}.jsonis the canonical source for extension identity and summary.versions[]is the canonical source for version-specific data (version,releasedAt,changelog,downloadUrl,checksum,minCoveVersionwhere needed).- Top-level release fields like
version,minCoveVersion,releasedAt,checksum,downloadUrl, andupdatedAtare not allowed. - CI can sync metadata summary fields from
sourceManifestUrlto reduce duplication with extension source repos.
sourceManifestUrlcan point at the extension repo'sextension.jsonso name/description/author/categories/minCoveVersion stay aligned automatically.- This keeps registry metadata thin while preserving support for direct URL installs (which still read the extension package manifest directly).
extensions/{extension-id}.jsonis the canonical source forname,description,author,repositoryUrl,categories, andversions[].minCoveVersionlives on eachversions[]entry because compatibility can change between extension releases.- CI computes
versions[].checksumfromversions[].downloadUrland writes it back to the PR branch when possible. - CI sets missing
versions[].releasedAton merge tomain. - CI syncs the ID-only
index.json, so maintainers do not manually duplicate summary/version fields there.
Use reverse domain notation: com.{org}.{extension-name}
Official extensions use cove.official.{name}.
Use lowercase kebab-case categories. Common categories: ui, ai, scraper, downloader, metadata, metadata-consumer, integration, automation, content-management, media-player, library, theme, layout, analytics, tools, search, import, export, notification, security.
Scrapers and downloaders are ordinary extensions in this registry. Do not create separate scraper or downloader registries.
Extensions can be organized in two ways:
One repository per extension. Simpler CI, clear ownership. Use the Cove single-extension template.
Multiple extensions in one repository. Use this for official Cove-provided packs that share CI or tests. Current official multi-extension repos are split by capability boundary: cove-extensions-ui for UI extensions, communitydownloaders for downloader extensions, and communityscrapers for scraper extensions.
MIT