Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Devices
Build
Test
Publish
Connect
Documentation

Share:

Edit the Blog Post Header component above this, then place your content here, then fill out the Related Articles section below, if possible. You should have at least one related article and ideally, all three.

Feel free to add supplementary content to the sidebar at right, but please retain the Twitter component (it can live at the bottom of your added content). 

This text component can be edited or deleted as necessary.

Related Articles

Related article title here

Related articles only have an image (the squarer version of the banner) and a title. This text can be deleted. Place 1-3 related articles.

Subscribe

From Fire OS to Vega: Porting your TV app to React Native for Vega with ADBT

Amazon Developer Oct 30, 2026
Share:
Vega
Blog_Header_Post_Img

Newer Fire TV sticks run Vega OS, a Linux-based platform where React Native is the primary app framework. Your Fire OS APK does not run there. Amazon Devices Builder Tools for AI (ADBT) gives your coding agent an App Porting workflow that turns an existing Fire OS codebase into a buildable React Native for Vega app, then helps you test and fix it on a device.

This article is for Android TV and Fire TV engineers, React Native developers, and TV tech leads planning a migration.

Porting a Fire OS app to Vega OS with ADBT App Porting

Fire OS vs Vega OS

Vega is not Android: no ART runtime, no Activities, no APKs.

Two points matter most for planning:

  • The RN runtime ships with the OS, so you target the React Native version Vega provides. 
  • Libraries need Vega builds. Pure-JS packages usually just work. Anything with Android native code needs an @amazon-devices/* port or a replacement.

Fire OS apps each bundle their own runtime; Vega apps share the OS-provided React Native runtime.

Pick your migration path

ADBT helps you with the App Porting detecting the path from your project structure and asks you if it isn't sure. There are three different paths for porting.

Your Fire OS app

Vega output

WebView / HTML5 hybrid, or web URL only

Vega WebView app

React Native (incl. Expo TV)

React Native for Vega app

Native Java/Kotlin

React Native for Vega app

Set up your toolchain

Prerequisites: a macOS 10.15+ or Ubuntu 20.04+ host; Node.js 18+ (22.14+ for RN 0.83); Vega SDK v0.22+ with Vega Studio; an MCP-capable agent such as Claude Code, Cursor, Kiro, GitHub Copilot or Codex, running its most capable model; a Vega device or the Vega Virtual Device; and your Fire OS source code (or a web URL).

  1. Install the Vega SDK and confirm vega --help works.
  2. Install ADBT. From your system terminal (not your agent's chat), in the folder you will work in, run: npx -y @amazon-devices/amazon-devices-buildertools-mcp@latest init-context
    This registers the MCP server, installs the agent skills, and adds Vega steering files to the project.
  3. Verify. Run the same command with check-status. Then open your agent in that same folder (the steering document is read from the current directory only) and ask: "List the tools provided by Amazon Devices Builder Tools and Agent Skills." You should see skills such as amazon-devices-vega-app-migration. If you used the older @amazon-devices/vega-devtools-mcp, remove it; ADBT replaces it.
  4. Enable Developer Mode on a physical device: vega exec vda shell vsm developer-mode enable

Run app porting

Name the skill and ask for a stop after planning:

Copied to clipboard
Use the amazon-devices-vega-app-migration skill to migrate the Fire OS app at
<project root> to Vega. Write the output to <output folder>.
Stop after Phase 2 (Plan) so I can review the migration guide.

Point the agent at the folder containing AndroidManifest.xml or package.json, and keep the Vega output in a separate directory.

The six phases 

The six App Porting phases, the two gates you enforce, and the files each phase writes.

5. Validate. Detects the app type and flags unsupported dependencies before any code is written.

6. Plan. Maps Fire OS APIs and patterns to Vega equivalents and writes migration_guide.md.

7. Execute. Scaffolds a Vega project and generates code strictly from the guide. Anything it can't migrate goes into NextSteps.md.

8. Build and verify. Builds, runs migration validation tests, installs and launches the app (on the Virtual Device if no device is attached).

9. Guided AI review (mandatory). You test on the TV, describe what's wrong, and the agent fixes it. Be specific ("On the Details screen, pressing Down from Play skips the Episodes row"), ask it to take screenshots, and commit after each working fix.

10.Performance comparison (optional). Benchmarks launch time, UI fluidity and memory against Amazon's thresholds, or against your Fire OS app.

Enforce the gates yourself. The skill advances on its own, so don't just say "continue". Before Phase 3, ask it to confirm the migration guide covers every screen and feature. After Phase 3, ask it to confirm every screen is built with real content, with no stubs or placeholders.

The two files to read carefully

`migration_guide.md` is the contract for the generated app.

`NextSteps.md` lists what wasn't migrated automatically: unmapped APIs and native modules, build errors, validation results, performance notes, and a testing checklist.

What changes in your code

Android concepts and their React Native for Vega counterparts.

Manifest. Every Vega package needs a manifest.toml at its root. A minimal app on Vega SDK 0.24:

Copied to clipboard
schema-version = 1

[package]
title = "My Streaming App"
id = "com.example.streaming"
version = "1.0.0"

# Required as of SDK 0.24; 1.2 is currently the only valid value.
[os.version]
min = "1.2"
target = "1.2"

[[components.interactive]]
id = "com.example.streaming.main"
runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
# RN 0.83: "/com.amazon.kepler.runtime.react_native_kepler_4@IReactNativeKepler_0"

Libraries and native modules. Swap native libraries for their @amazon-devices/* ports (Reanimated, Gesture Handler, React Navigation, MMKV and Async Storage all have one), and use the Vega Module Resolver Preset or a Metro alias so imports stay unchanged. Reimplement your own Android native modules as C++ Turbo Modules. If the repo also has a mobile or Android TV RN app, isolate the Vega app in its own workspace package, since Vega's RN version may lag.

Playback. ExoPlayer code doesn't port. Ask the agent to "Add a media playback implementation to my Vega app" to scaffold a Shaka Player-based player on Vega's MSE/EME, then wire in DRM, captions, media controls and analytics. Run playback in a headless service to keep the UI responsive.

Build and run. Builds are per architecture:

Copied to clipboard
npm run build:debug
vega device install-app --dir . -b Debug
vega device launch-app --dir .

Build, install and launch a Vega app from the command line.

 

After the port

A ported app that launches might not be yet shippable and you have to prompt your agent for the rest of development:

Job

Example prompt

IAP

Help me integrate IAP in my Vega app

Performance (TTFF, key latency, fluidity); run on a physical device before you submit

Help me fix the Time to First Frame issue in my Vega app

Crashes (JS, native, LMK, ANR)

Why did my app crash?

Accessibility and captions

How do I honor the user's caption settings?

Matter Casting

Help me add Matter Casting to my Vega app

RN upgrade

Upgrade my Vega app from React Native 0.72 to 0.83

What still needs you

The generated code is a functional starting point, make sure to review and test, focus on:

  • Custom Canvas views (charts, hand-drawn widgets, game surfaces) are flagged for manual work.
  • Dependencies without a Vega equivalent, including vendor SDKs that call Android system services, need a pure-JS alternative, a port, or a Turbo Module.
  • Business logic (entitlements, ad insertion, analytics, A/B tests) must behave exactly as before. Port its tests before you trust the generated code.

Conclusion

Start with your simplest app, or one vertical slice of your main one. Run it through App Porting, read the migration guide closely, and see how much of NextSteps.md is left. That one experiment will tell you more about your real migration cost than any estimate.

App Porting is in Beta: say "I want to provide feedback" in your agent's chat, or post in the Amazon Developer Community.

Related articles

Sign up for our newsletter

Stay up to date with the latest Amazon Developer news, industry trends and blog posts.