Skip to content

App Manifest Reference

Every VibeDepot app must include a manifest.json file in its root directory. This file defines the app’s identity, permissions, AI requirements, and metadata.

FieldTypeDescription
idstringUnique identifier. Must be kebab-case (e.g. my-app). Lowercase letters, numbers, and hyphens only.
namestringDisplay name shown in the store and library.
versionstringSemantic version (e.g. 1.0.0). Must match X.Y.Z format.
descriptionstringShort description shown in app cards.
authorstringAuthor name or organization.
entrystringPath to the HTML entry file, relative to the app root (e.g. index.html or dist/index.html).
permissionsstring[]Array of permission strings.
FieldTypeDescription
longDescriptionstringExtended description shown in the app detail modal.
authorUrlstringURL to the author’s website or profile.
licensestringLicense identifier (e.g. MIT, Apache-2.0).
thumbnailstringPath to a thumbnail image, relative to the app root.
screenshotsstring[]Array of paths to screenshot images.
categorystringApp category. See categories below.
keywordsstring[]Search keywords for store discovery.
modelsobjectAI model configuration. See models below.
minShellVersionstringMinimum VibeDepot version required.
maxBundleSizestringMaximum bundle size declaration.
changelogstringChangelog text or URL.
homepagestringApp homepage URL.
repositorystringSource code repository URL.

The models object configures AI provider requirements:

{
"models": {
"required": true,
"providers": ["anthropic", "openai", "gemini"],
"default": "anthropic",
"minContextWindow": 8000
}
}
FieldTypeDescription
requiredbooleanWhether AI is required for the app to function.
providersstring[]Supported AI providers: 'anthropic', 'openai', 'gemini'.
defaultstringPreferred provider used when no explicit provider is specified.
minContextWindownumberMinimum context window size in tokens.

Apps can be assigned to one of these categories:

CategoryDescription
productivityTask management, organization, workflow tools
writingWriting assistants, editors, content creation
codingCode generation, review, debugging tools
filesFile management and processing
researchResearch assistants, summarizers, analyzers
dataData analysis, visualization, transformation
mediaImage, audio, video processing
integrationsConnectors to external services
utilitiesGeneral-purpose tools
funGames, entertainment, creative tools
{
"id": "email-writer",
"name": "Email Writer",
"version": "0.1.0",
"description": "AI-powered email drafting assistant.",
"longDescription": "Write professional emails with AI assistance. Supports multiple tones, languages, and formats.",
"author": "vibedepot",
"authorUrl": "https://github.com/thehorse2000",
"license": "MIT",
"entry": "index.html",
"thumbnail": "thumbnail.png",
"screenshots": ["screenshots/compose.png", "screenshots/settings.png"],
"category": "productivity",
"keywords": ["email", "writing", "ai", "productivity"],
"models": {
"required": true,
"providers": ["anthropic", "openai", "gemini"],
"default": "anthropic"
},
"permissions": ["ai", "storage.kv"],
"homepage": "https://github.com/thehorse2000/email-writer",
"repository": "https://github.com/thehorse2000/email-writer"
}

The CLI validates manifests against a Zod schema. Run:

Terminal window
vibedepot validate

This checks:

  • All required fields are present and correctly typed
  • id is kebab-case
  • version is valid semver
  • entry file exists on disk
  • permissions contains valid permission strings
  • category is one of the 10 valid categories (if provided)
  • models.providers contains valid provider names (if provided)