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.
why asm
- one binary
- No runtime, no package manager, no admin rights. Download one file and run it.
- no setup
- Shares
~/.airsdk/airsdkmanager.cfgwith 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.4picks the newest stable build of that branch. An exact build such as51.4.1.1orlatestworks 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.cfgandadt.lic. Paths in your tools stay valid. - recoverable
- Closed the terminal mid-install?
asm cleanfinds what was left behind and puts a half-replaced SDK back.
what asm install 51.4 does
- resolve
51.4becomes51.4.1.1, the newest stable build in that branch. Previews and betas are skipped. - catalogThe official AIR SDK API first. If it fails, the airsdk.dev announcement archive, then the catalog AIR SDK Manager saved on disk.
- 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. - verifySize and SHA-256 must match before anything is unpacked. A file that fails is deleted, not retried as-is.
- extractEvery path is checked to stay inside the SDK folder. Executable bits and safe symbolic links are kept on macOS and Linux.
- configureLinux runs
configure_linux.sh. macOS loses the quarantine flag, without asking for an administrator password. - 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.