[os.version] section declares the range of device OS versions your app supports. Vega validates this section at build time, and the Vega Packaging Tool (VPT) validates it again for packaged apps.
Starting with Vega SDK 0.24, the [os.version] section is required. Your build fails if the section is missing.
min and target to 1.2. When a later OS version is minted, set target to the newest version you build against and keep min at the oldest version you support.
Fields
The following table describes the fields in the[os.version] section.
"M.n" strings that name officially minted OS versions. Vega rejects a value that isn’t minted, even when the value is numerically well-formed.
Validation rules
Vega applies the following rules to the[os.version] section:
-
Both
minandtargetmust be OS versions known to the SDK compatibility manifest. -
minmust be less than or equal totarget. -
Every
[[needs.module]]entry must be available atmin. -
Your code must guard APIs added after
min, which the tooling records as[[wants.module]]entries. For details, see Guard newer APIs with isPresentOnOS.
Example manifest
The[os.version] section sits alongside your other manifest sections, and the tooling generates the matching OS version module entries. A complete manifest that targets OS 1.2 looks like the following example.
[os.version] section is yours to set, and the tooling generates the module entries. Each OS version module id is the OS version with its dot replaced by an underscore, so 1.2 becomes /com.amazon.vega.os@IVega_1_2.
Because min and target are both 1.2 in this example, the manifest has a single [[needs.module]] entry and no [[wants.module]] entry. The tooling emits a need for min, and it emits a want only for a version above min.
Add the [os.version] section
You can add the section in three ways.[os.version] section yet, use one of the first two methods. Both are built for authoring the section.
The third method is a convenience during migration, and it’s narrower than it looks. Pass both --os-min and --os-version. install resolves your OS target before it writes anything. On a project that has no [os.version] section and no --os-version value, it fails with Missing OS Version and writes nothing. With both flags, it creates the section, sets min, seeds target, and confirms with 📝 Set [os.version] min = "<v>" in manifest.toml.
Three more limits apply to the third method:
-
--os-mintakes effect only together with--fix. Neither a barevega project install --fixnor aninstall <package>run adds the section. -
--dry-runpreviews the change without writing it. -
When
[os.version]already exists, this form writesminonly and leaves yourtargetunchanged. A legacy[os]section counts as an existing section for this purpose. To changetarget, usevega project update-manifest.
[[needs.module]] and [[wants.module]] entries, run vega project update-manifest.

