Vega App Manifest File Overview
A Vega application package must contain a configuration file called manifest.toml
located at the root of the package. This file describes essential information about the package, such as:
- Identifiers for the package and its components, such as interactive, service, and task, and their launch information.
- Capabilities of the Vega system and other installed applications the package depends on, such as modules, services, and messages.
- Privileges required to access certain features from the Vega system and other installed applications.
The Vega system and development tools use this information to install, execute, and manage the application.
The manifest file
The Vega application manifest is defined in the TOML configuration file format, and declares
multiple sections leveraging the TOML table []
and array of TOML table [[]]
formats to group
information together.
schema-version = 1
[package]
# basic package details
[components]
# application component lifecycle configuration
[tasks]
# task configuration
[needs]
# required dependency
[wants]
# optional dependency
[message]
# messages defined by the package
[offers]
# capabilities offered by the package
[processes]
# grouping of components to run in a process
[[extras]]
# custom meta-data for the package
schema-version
Required
schema-version
specifies the schema version used in the manifest file. Every manifest must declare this before adding any other information.
schema-version = 1
At this time, Vega manifest schema is on version 1, so this value must always be 1
.
[package]
Required
The [package]
section declares the basic details for the package, such as unique identifier, title, and icon.
[package]
id = "com.foo.bar"
title = "Foo Bar"
icon = "@image/foo_icon.png"
Learn more about the package section.
[components]
Required
The [components]
section declares the components bundled into this application package including interactive, service, and task components.
[components]
[[components.interactive]]
id = "com.foo.bar.interactive"
categories = ["com.amazon.category.main"]
launch-type = "singleton"
Learn more about the components section.
[tasks]
Optional
The [tasks]
section declares small routines that can run at specific events during the lifecycle of the application package. At this time the Vega system supports the install
event for running such tasks post application install and before first launch.
[tasks]
[[tasks.work]]
component-id = "com.foo.bar.onInstallOrUpdateTask"
mode = "install"
Learn more about the tasks section.
[needs]
Optional
The [needs]
section declares the system capabilities that the application requires to function on a Vega device. This information helps Vega package manager and Amazon Appstore to ensure the application is installed on the supported devices. Carefully declare the application's needs for your desired device targeting.
[needs]
[[needs.module]]
id = "/com.amazon.camera.module@ICamera"
[[needs.privilege]]
id = "com.amazon.media.secureplayback"
Learn more about the needs section.
[wants]
Optional
The [wants]
section declares the capabilities that are optional for the application to function on a Vega device. Handle graceful fallbacks in your application code if a feature in this list is unavailable on a device. You can choose a combination of needs and wants to maximize your device reach, while providing enhanced features on more capable devices.
[wants]
[[wants.service]]
id = "com.amazon.inputmethod.service"
[[wants.privilege]]
id = "com.amazon.camera.privilege.access"
Learn more about the wants section.
[message]
Optional
The [message]
section declares access control rules for message URIs used with Vega Messaging.
[[message]]
uri = "samplepkg://play"
sender-privileges = [com.amazon.security.example1]
receiver-privileges = [com.amazon.security.example2]
Learn more about the message section.
[offers]
Optional
The [offers]
section declares the capabilities that this package offers to other applications on the system, such as modules, services, and interactions.
[offers]
[[offers.service]]
id = "com.amazon.keplervideoapp.interface.provider"
[[offers.interaction]]
id = "com.amazondeveloper.keplervideoapp.main"
Learn more about the offers section.
[processes]
Optional
The [processes]
section declares the group of components that should share a process when launched.
[processes]
[[processes.group]]
component-ids = [
"com.foo.bar.interactive",
"com.foo.bar.service"
]
[[processes.group]]
component-ids = [
"com.foo.bar.another_service",
]
Learn more about the processes section.
[[extras]]
Optional
The [[extras]]
section declares a set of key-value pairs to include custom meta-data associated with the package.
[[extras]]
key = "foo"
value = "bar"
Learn more about the extras section.
Manifest validation
To ensure your manifest.toml file is correctly formatted and contains valid configurations, you can use the VPT tool (App Packaging Tool). This tool is included in the Vega SDK and is automatically added to your system's PATH
during SDK installation.
To validate your manifest file, run the following command. Replace <path-to-manifest>
with the absolute path to your manifest file.
kepler exec vpt validate /<path-to-manifest>/manifest.toml
Learn more about the VPT tool.
Last updated: Sep 30, 2025