Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get Started
Design and Develop
Publish
Reference
Support

Step 3: Vega Configuration Updates

There are Vega-specific changes that are required for your app to load correctly on the device.

3.1 Manifest.toml interactive components

Update the runtime module path and interface for UI components:

# BEFORE (RN 0.72 / Vega 2.x)
[[components.interactive]]
id = "com.amazon.kepler.script.app.krl.2.yourapp.main"
runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
launch-type = "singleton"

# AFTER (RN 0.83 / Vega 4.x)
[[components.interactive]]
id = "com.amazon.kepler.script.app.krl.4.yourapp.main"
runtime-module = "/com.amazon.kepler.runtime.react_native_kepler_4@IReactNativeKepler_0"
launch-type = "singleton"

Key changes

  1. Component ID: krl.2krl.4
  2. Runtime module path: keplerscript.runtime.loader_2runtime.react_native_kepler_4
  3. Interface: IKeplerScript_2_0IReactNativeKepler_0

3.2 Manifest.toml headless components

If your app uses headless components (services or tasks), update their runtime modules as shown in the examples below.

# BEFORE (RN 0.72)
[[components.service]]
id = "<your-app-package-name>.service"
runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0"
launch-type = "singleton"

[[components.task]]
id = "<your-app-package-name>.onInstallTask"
runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0"

# AFTER (RN 0.83)
[[components.service]]
id = "<your-app-package-name>.service"
runtime-module = "/com.amazon.kepler.runtime.react_native_kepler_headless_4@IReactNativeKeplerHeadless_0"
launch-type = "singleton"

[[components.task]]
id = "<your-app-package-name>.onInstallTask"
runtime-module = "/com.amazon.kepler.runtime.react_native_kepler_headless_4@IReactNativeKeplerHeadless_0"

Key changes

  1. Runtime module path: headless.runtime.loader_2runtime.react_native_kepler_headless_4
  2. Interface: IKeplerScript_2_0IReactNativeKeplerHeadless_0

3.3 app.json updates

Update the component ID in app.json from krl.2 to krl.4:

{
  "name": "com.amazon.kepler.script.app.krl.4.yourapp.main"
}

3.4 CMakeLists.txt updates

Update version numbers, C++ standard, and library targets in the CMakeLists.txt file.

Template pattern (krl.2 → krl.4)

# BEFORE
set(EXECUTABLE_NAME sample-2)
set(PACKAGE_NAME KeplerScriptAppTemplate-2)
set(CMAKE_CXX_STANDARD 17)

project(${EXECUTABLE_NAME} VERSION 2.0)

# AFTER
set(EXECUTABLE_NAME sample-4)
set(PACKAGE_NAME KeplerScriptAppTemplate-4)
set(CMAKE_CXX_STANDARD 20)

project(${EXECUTABLE_NAME} VERSION 4.0)

Version suffix pattern (072 → 083)

# BEFORE
set(VERSION_SUFFIX 072)
find_package(keplerui 0.72 CONFIG REQUIRED)

# AFTER
set(VERSION_SUFFIX 083)
find_package(keplerui 0.83 CONFIG REQUIRED)

Native code linking (if using C++ native modules)

# cxx/CMakeLists.txt
# BEFORE
target_link_libraries(${TARGET_NAME} keplerui::keplerscript-2)

# AFTER
target_link_libraries(${TARGET_NAME} keplerui::keplerscript-4)

Requirements

  • CMake 3.22+
  • C++20-compatible compiler (GCC 10+, Clang 12+, MSVC 2019+)

3.5 Vega bundle configuration

Add the bundle configuration package in your package.json file:

{
  "devDependencies": {
    "@amazon-devices/keplerscript-commonmodules": "^1.0.0"
  }
}

Optionally, configure bundle splitting in package.json. For production apps, it's recommended to remove disableSplitBundle or set to false to enable code splitting for better performance.

{
  "kepler": {
    "disableSplitBundle": true
  }
}

Last updated: Jul 09, 2026