Skip to content

Registry Entry Format

The registry.json file contains an array of RegistryEntry objects. This is the data the VibeDepot shell fetches to populate the store.

FieldTypeRequiredDescription
idstringYesUnique app identifier (kebab-case)
namestringYesDisplay name
versionstringYesCurrent version (semver)
descriptionstringYesShort description
longDescriptionstringNoExtended description for the detail modal
authorstringYesAuthor name
categorystringNoApp category (one of the 10 categories)
keywordsstring[]NoSearch keywords
permissionsstring[]YesRequired permissions
providersstring[]NoSupported AI providers (from manifest.models.providers)
thumbnailstringNoThumbnail image path
bundlestringYesFull URL to the release ZIP on GitHub
checksumstringYesSHA256 hex digest of the bundle ZIP
installsnumberYesNumber of installs (tracked by registry)
updatedAtstringYesISO 8601 datetime of last update
featuredbooleanNoWhether the app appears in the featured carousel
{
"id": "email-writer",
"name": "Email Writer",
"version": "0.1.0",
"description": "AI-powered email drafting assistant.",
"longDescription": "Write professional emails with AI. Supports multiple tones and languages.",
"author": "vibedepot",
"category": "productivity",
"keywords": ["email", "writing", "ai"],
"permissions": ["ai", "storage.kv"],
"providers": ["anthropic", "openai", "gemini"],
"thumbnail": "thumbnail.png",
"bundle": "https://raw.githubusercontent.com/thehorse2000/vibedepot-registry/main/apps/email-writer/releases/0.1.0.zip",
"checksum": "a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890",
"installs": 42,
"updatedAt": "2025-01-15T12:00:00Z",
"featured": true
}

The RegistryEntry is derived from the AppManifest but has some differences:

FieldIn ManifestIn Registry EntryNotes
id, name, version, description, authorYesYesSame
category, keywords, permissionsYesYesSame
entryYesNoNot needed — contained in the bundle
modelsYes (object)NoFlattened to providers array
providersNoYesExtracted from models.providers
bundleNoYesFull GitHub raw URL to the ZIP
checksumNoYesSHA256 of the bundle ZIP
installsNoYesDownload count
updatedAtNoYesLast published timestamp
featuredNoYesCurator flag for the featured carousel
authorUrl, license, homepage, repositoryYesNoMetadata not needed for store display
screenshotsYesNoNot included in registry index
minShellVersion, maxBundleSizeYesNoBuild-time constraints only

The build-index.ts script in the registry repo generates registry.json:

  1. Reads every apps/{id}/manifest.json
  2. Extracts relevant fields
  3. Computes SHA256 checksums of release ZIPs
  4. Constructs GitHub raw content URLs for bundles
  5. Sets installs: 0 for new apps
  6. Sets updatedAt to the current timestamp
  7. Writes the array to registry.json

The RegistryEntry type is defined in packages/shared/src/registry.types.ts.