asm

asm

AIR SDK versions, managed from your terminal.

Find, install, update and remove AIR SDK builds on Windows, macOS and Linux. One native binary that works with the settings AIR SDK Manager already keeps.

install

irm https://raw.githubusercontent.com/emptyenemy/asm/main/install.ps1 | iex

Puts asm.exe in %LOCALAPPDATA%\Programs\asm and adds it to your user PATH, no admin rights needed. To leave PATH alone, download install.ps1 and run it with -NoPath.

curl -fsSL https://raw.githubusercontent.com/emptyenemy/asm/main/install.sh | sh

Puts asm in ~/.local/bin and adds it to the profile of your shell. To leave the profile alone, pipe into ASM_NO_PATH=1 sh instead.

Both installers check the download against the release's SHA256SUMS and stop rather than overwrite an unrelated command called asm.

PowerShell sped-up replay
A recorded asm session. asm update finds 51.3.4.3 for an installed 51.3.4.1 and announces 51.4.1.1. asm install 51.4 downloads 51.4.1.1 with a progress bar, extracts and configures it. asm list then shows both SDKs and their paths.

why asm

one binary
No runtime, no package manager, no admin rights. Download one file and run it.
no setup
Shares ~/.airsdk/airsdkmanager.cfg with AIR SDK Manager, so both see the same SDKs. The first run fills in what is missing and leaves the manager's own lines alone.
short versions
asm install 51.4 picks the newest stable build of that branch. An exact build such as 51.4.1.1 or latest works too.
resumable
A dropped connection is not a lost download. The next attempt, or the next run, continues from the bytes already on disk.
verified
Every archive is checked against its published size and SHA-256 before a single file is unpacked.
three sources
When the official API does not answer, asm falls back to the announcement archive and the shockpkg mirror, and says which one it used.
safe updates
An update keeps the old SDK until the new one is in place, then carries over adt.cfg and adt.lic. Paths in your tools stay valid.
recoverable
Closed the terminal mid-install? asm clean finds what was left behind and puts a half-replaced SDK back.

what asm install 51.4 does

  1. resolve51.4 becomes 51.4.1.1, the newest stable build in that branch. Previews and betas are skipped.
  2. catalogThe official AIR SDK API first. If it fails, the airsdk.dev announcement archive, then the catalog AIR SDK Manager saved on disk.
  3. downloadThe official archives first, the shockpkg mirror if they fail. Bytes land in .asm-partial, named after the expected SHA-256. Four attempts with 1, 2 and 4 second pauses, and a stalled transfer is cut after 30 seconds.
  4. verifySize and SHA-256 must match before anything is unpacked. A file that fails is deleted, not retried as-is.
  5. extractEvery path is checked to stay inside the SDK folder. Executable bits and safe symbolic links are kept on macOS and Linux.
  6. configureLinux runs configure_linux.sh. macOS loses the quarantine flag, without asking for an administrator password.
  7. moveThe finished SDK was built in a hidden staging folder. One rename makes it AIRSDK_51.4.1.1, so a half-written SDK never looks installed.

Manual

asm(1)AIR SDK Managerasm(1)

NAME

asm, a command-line version manager for AIR SDK

SYNOPSIS

asm <command> [VERSION] [options]

Square brackets mark a value you supply; type it without the brackets. install and uninstall need a version, the other commands take one optionally.

COMMANDS

list, ls
List installed SDKs and their paths, newest first.
search [VERSION]
List stable releases. 51.4 narrows to a branch.
install [VERSION]
Install a branch such as 51.4, an exact build, or latest.
update [VERSION]
Show newer builds of installed SDKs. With a version or --all, install them. --check only previews.
uninstall [VERSION]
Remove one installed SDK. Alias: remove.
clean
Remove what an interrupted run left behind. --check only reports.
help [COMMAND]
Show help for asm or one command. asm install --help works too.

OPTIONS

--accept-license
Accept the AIR SDK license for this install or update only, without the question. Nothing is written to disk.
--version, -v
Print the asm version.

FILES

~/.airsdk/airsdkmanager.cfg, the settings asm shares with AIR SDK Manager. %USERPROFILE% stands for ~ on Windows. The first run creates it with AIR_SDKS=~/sdks/air unless the manager has set a folder, and a yes to the license question adds the second line.

AIR_SDKS=C:\AIRSDK              # where SDKs are installed
HAS_ACCEPTED_LICENSE=true       # saved when you accept

ENVIRONMENT

NO_COLOR turns colors off. TERM=dumb or redirected output also drops the animation, and search results become one version per line.

EXIT STATUS

0 on success, including "nothing to update". 1 on any error, with the reason on stderr.

EXAMPLES

# the newest stable 51.4 build
asm install 51.4
# see what would change, then apply it
asm update --all --check
asm update --all

asm 1.0.1MITasm(1)

questions

Do I need AIR SDK Manager installed?

No. On the first run asm creates ~/.airsdk/airsdkmanager.cfg and puts SDKs in ~/sdks/air, the folder the AIR SDK guides recommend. If AIR SDK Manager is already set up, asm uses its folder, and both tools keep seeing the same SDKs.

Does asm switch the SDK my project uses?

No. It installs, updates and removes SDKs, and leaves PATH, AIR_HOME and your IDE alone. Point them at the path asm prints. An update keeps that path, so they stay valid.

What happens if the download breaks?

asm retries with growing pauses and continues from the bytes it already has. If it still fails, the partial file waits in .asm-partial inside your SDK folder, and the next asm install picks it up. Leftovers older than seven days are removed.

Does it work on Windows on ARM?

No. There is no native Windows ARM64 AIR SDK, so the installer stops with that message. Windows x64, macOS on Intel and Apple Silicon, and Linux x64 and ARM64 are supported.

Is this an official AIR SDK tool?

No. asm is an independent, MIT-licensed project. The AIR SDK is a separate product under its own license, and asm downloads it only after you accept that license.

Has it been tested against the real download service?

The commands, the settings handling and SDK assembly are covered by tests on all five builds. Downloading a real SDK from the live service has not been verified on every host yet. If something breaks, open an issue with the command and its output.