Skip to main content

Fields

FieldTypeRequiredDescription
kindstringrequiredMust be vibe.app/v1
idstringrequiredReverse-domain app identifier (e.g., com.example.todo)
namestringrequiredHuman-readable app name
versionstringrequiredSemver version string
iconstringoptionalRelative path to icon asset within the package

runtime

FieldTypeRequiredDescription
modeenumrequirednative or compose
composeFilestringconditionalRelative path to Compose file. Required when mode: compose, ignored when mode: native
Validation:
  • When mode: native, services must be defined inline under services
  • When mode: compose, composeFile must point to a valid file within the package; the services array is ignored

Examples

Minimal app

kind: vibe.app/v1
id: com.example.hello
name: Hello World
version: 1.0.0

runtime:
  mode: native

services:
  - name: web
    image: nginx:alpine
    ports:
      - container: 80

Compose-mode app

kind: vibe.app/v1
id: com.example.myapp
name: My App
version: 2.1.0

runtime:
  mode: compose
  composeFile: compose.yaml
id must match the pattern ^[a-zA-Z][a-zA-Z0-9]*(\.[a-zA-Z][a-zA-Z0-9]*)+$ — reverse-domain format with at least two components. version must be valid semver (e.g., 1.0.0, 2.3.1-beta.1).