Manifest [components] Section
The [components]
section declares the application components in the package, including interactive
, service
, and task
components.
An application component embodies a single user workflow and interaction, and can be launched to maintain a single instance at any time, or create new instances. Multiple instances of each component can be created where each maintains its own state and transitions through its lifecycle states independently.
Most application packages consist of at least one application component or they could be a library-only package, and do not include any components. Where applicable, each component in the application package is declared under this section. Note that multiple components of the same type may be declared in the manifest.
[components]
[[components.interactive]]
# interactive component configuration (define 0 or more)
[[components.service]] # define 0 or more components of this type
# service component configuration (define 0 or more)
[[components.task]] # define 0 or more components of this type
# task component configuration (define 0 or more)
[[components.interactive]]
Required
The interactive
type represents a type of component that provides interactability to your end users. Such components display graphical content and respond to user inputs, such as keyboard. You must have com.amazon.category.main
in the categories
section to launch your app or submit to the Appstore.
Fields
id
(string, required): A unique identifier for the component. By convention, this is represented as<package_id>.<component_name>
. The identifier string must follow the rules forpackage_id
:- Allowed characters: uppercase letters
A-Z
, lowercase lettersa-z
, digits0-9
, dot.
and underscore_
. - Use reverse DNS notation:
<package_id>.<component_name>
, where each segment starts with a letter.
- Allowed characters: uppercase letters
categories
(array of strings, required for feature integrations): A list of category classification for different components in the application package. Category strings are expressed ascom.amazon.category.<category_name>
, where category names are a predefined list of component categories defined in the Vega system. The allowed values for category are -com.amazon.category.main
: Declares the component as the default interactive component for the application package. This category is relied upon by Vega system to find the default component when launching the app based on thepackage-id
or the productASIN
. A manifest must declare only one single interactive component as the main, and is required to ensure app launches successfully from the Home launcher or the Appstore app.com.amazon.category.caf
: Declares the component to be a Capability Agent which interacts with the Alexa Voice Service.com.amazon.category.kepler.media
: Declares the component to be targeted for Vega Media operations.com.amazon.category.launcher
: Declares the component as the Launcher application for the device. This category is reserved for system applications, and would be an error for any other apps.
categories = [ "com.amazon.category.main" ]
launch-type
(string, optional): Describes the launch behavior of the component that the system uses to manage its lifecycle. The allowed values are:new-instance
: A new instance is created in the existing application process container, and shares the same memory space. This is the default if thelaunch-type
is not defined.new-container
: A new instance is created in a new process container, instead of sharing the process with existing instance. As a result each component instance is isolated.singleton
: Only one running instance of an application component is created, and new invocations always reference the existing instance. This same instance remains in the back stack.-
singleton-per-display
: In a multi-display scenario, one running instance of an application component is created per display. New launches on the same display refer to the existing instance of that display. If it's a single display,singleton-per-display
behaves assingleton
launch-type.launch-type = "singleton"
-
timeout-secs
(number, optional): The timeout value, in seconds, for the foreground component instance for inactivity. The specified value must be a positive integer. If not provided, the timeout is set to system default. On timeout, the inactive foreground component is sent to the background and the next component in the backstack based on the lifespan is moved foreground.timeout-secs = 30
lifespan
(string, optional): The lifespan policy for the component instance that determines whether the component must be brought back to the foreground after the existing component instances in the foreground have timed out or terminated. The system chooses an application component from the backstack that has a lifespan longer than or equal to that of the component that was last in the foreground. The allowed lifespan values are:permanent
: The component instance is only terminated based on explicit user action. This is the default if lifespan is not defined.long
: The component instance runs for a long time (more than a few minutes to hours).short
: The component instance runs for a few seconds to minutes.-
transient
: The component instance gains focus on the screen for a very short time but returns focus to the previous instance quickly.lifespan = "permanent"
-
runtime-module
(string, optional): The runtime modules that the component requires to run. This is used by the system to pre-load required libraries into the process before instantiating the component. If not defined, then native runtime is set for the component. The runtime module currently available on the Vega system is/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0
or/com.amazon.kepler.runtime.keplerscript_2@IKeplerScript
.runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
Learn more about setting
runtime-module
.
[[components.service]]
Optional
The service type represents a type of component that performs operations in the background and does not offer interactable interface to the end users.
Fields
id
(string, required): A unique identifier for the component. By convention, this is represented as<package_id>.<component_name>
. The identifier string must follow the rules forpackage_id
:- Allowed characters: uppercase letters
A-Z
, lowercase lettersa-z
, digits0-9
, dot.
and underscore_
. - Use reverse DNS notation:
<package_id>.<component_name>
, where each segment starts with a letter.
- Allowed characters: uppercase letters
categories
(array of strings, required for feature integrations): A list of category classifications for different components in the application package. Category strings are expressed ascom.amazon.category.<category_name>
, where category names are a predefined list of component categories defined in the Vega system. The allowed values for category are:-
com.amazon.category.kepler.media
: Declares the component to be targeted for Vega Media operations.categories = [ "com.amazon.category.kepler.media" ]
-
launch-type
(string, optional): Describes the launch behavior of the component that the system uses to manage its lifecycle. The allowed values are:singleton
: A single instance of this component will be used by all of its client application processes. This is the default iflaunch-type
is not defined.-
singleton-per-application
: A new instance of this component will be allocated per client application package.launch-type = "singleton-per-application"
-
runtime-module
(string, optional): The runtime modules that the component requires to run. This is used by the system to pre-load required libraries into the process before instantiating the component. If not defined, then native runtime is set for the component. The runtime module currently available on the Kepler system is/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0
and/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0
. Use them for components developed using the KeplerScript 2.0 framework (React Native 0.72). You should use the headless runtime-module if your task/service component does not share process with any interactive component.runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
Learn more about setting
runtime-module
.
[[components.task]]
Optional
The task type represents a type of component that performs a finite duration of the work in the background.
Fields
id
(string, required): A unique identifier for the component. By convention, this is represented as<package_id>.<component_name>
. The identifier string must follow the rules forpackage_id
:- Allowed characters: uppercase letters
A-Z
, lowercase lettersa-z
, digits0-9
, dot.
and underscore_
. - Use reverse DNS notation
<package_id>.<component_name>
, where each segment starts with a letter.
- Allowed characters: uppercase letters
categories
(array of strings, required for feature integrations): A list of category classifications for different components in the application package. Category strings are expressed ascom.amazon.category.<category_name>
, where category names are a predefined list of component categories defined in the Vega system. The allowed values for category are:com.amazon.category.kepler.media
: Declares the component to be targeted for Vega Media operations.
-
runtime-module
(string, optional): The runtime modules that the component requires to run. This is used by the system to pre-load required libraries into the process before instantiating the component. If not defined, then native runtime is set for the component. The runtime module currently available on the Vega system is/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0
and/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0
. Use them for components developed using the KeplerScript 2.0 framework (React Native 0.72). You should use the headless runtime-module if your task/service component does not share process with any interactive component.runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
Learn more about setting
runtime-module
.
Last updated: Sep 30, 2025