AppImage Manager

ID

am

Home page

https://github.com/ivan-hc/AM

Version requirement

>= 10.4

Platforms

🐧 Linux

Operations

installed · upgrade · upgrade_all · remove · cleanup

purl types

pkg:am

CLI name

am

Forced environment

NO_COLOR=1

Issues and PRs

📦 manager: am

Source

meta_package_manager/managers/am.py

AppImage manager, covering the applications of its own catalog.

Note

am and appman are the same script under two names, and only this one is wrapped. AppMan’s repository holds no implementation at all, just a stub that replaces itself with this script, which then reads its own path to decide whether to run system-wide or under the user’s home. Wrapping both would double-count: am -fi renders AppMan’s applications in a second table of its own whenever AppMan is configured, so they are already reported here. See Unsupported managers for the recorded decision.

Caution

The listing’s column count depends on its contents: a fifth column appears between the name and the version whenever an application resolves to a third-party catalog. The version is therefore located by reading the header rather than by counting from the left, which is also what lets a listing carrying two tables be parsed in one pass.

Note

No install. am refuses to be run under sudo and escalates on its own instead, priming the credential cache before it installs anything, so an install blocks on a password prompt that no flag of its own can answer. Removal is unaffected, -R needing no confirmation and no escalation mpm has to arrange.

No outdated either: nothing reports a remote version without installing it, and the catalog carries no versions at all. Its maintainer declined to publish a machine-readable feed, so this is settled rather than pending, and upgrade --all is unaffected.

No search: results are folded to the terminal width before they are printed, so a record wraps across lines with no marker to rejoin it, and its description is unrecoverable once wrapped.

Documentation: AM.

What mpm adds to am

mpm reaches across every manager at once, not am alone: mpm installed and mpm outdated cover am alongside every other manager you run in one table, mpm upgrade --all updates them together, and mpm sbom exports the whole machine as one bill of materials.

Every mpm command also gains --dry-run and --plan previews, cross-scheme version comparison and purl identifiers. See manager augmentations for how each one is built.

Your am commands, in mpm

You already know am: each operation maps one-to-one onto mpm, in an interface shared by every manager.

To…

With am

With mpm

List what’s installed

am -fi --byname

mpm --am installed

Upgrade one package

am -y -u firefox

mpm --am upgrade firefox

Upgrade everything

am -y -u --apps

mpm --am upgrade --all

Remove a package

am -R firefox

mpm remove pkg:am/firefox

Clear caches

am -c

mpm --am cleanup --cache

Prefix any command above with --dry-run to simulate the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Operations

Operation

Supported

installed

outdated

orphans

search

install

upgrade

upgrade_all

remove

sync

cleanup

doctor

Selecting and configuring am

Deselect am for a single run with --no-am, or persist the choice in your configuration:

[mpm]
am = false

The arguments and environment variables listed in the box atop this page are forced on every am call, so runs stay quiet, non-interactive and reproducible: the defaults you would set in CI anyway.

Keep it enabled but tune how mpm drives it with a per-manager override:

[mpm.managers.am]
timeout = 900

mpm config-template am prints every overridable attribute as a ready-to-paste block.

Recipes

A few jobs you would otherwise script around am, one mpm command each:

  • Snapshot and clone a machine: mpm --am dump am.toml, then mpm restore am.toml on the next one.

  • Export a compliance SBOM: mpm --am sbom (CycloneDX by default, --spdx for SPDX).

Privilege escalation

AppImage Manager runs sudo from inside its own commands: mpm never wraps it, keeps an already-warm credential cache alive for those internal escalations, and warns when a mutating call goes silent on a terminal with a cold cache, since a password prompt may be hiding in the stream.

See privilege escalation for the full policy.

Cooldown

State of AppImage Manager’s release-age gating, from the cooldown support table:

Status: ❌ None

A cooldown only pays off where a compromised release can be withdrawn while the clock runs, and can only be emulated where the registry dates its releases. From the retraction table:

  • Registry: Git-manifest indexes

  • Retraction: Index revert: reverting the manifest, Portfile or derivation commit withdraws the version

  • Publish date: ❌ only the commit date, which is client-set and trivially backdated

With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.

Version probe

The version is probed by running:

$ am --version
10.4

and extracted with:

r"(?m)^(?P<version>\d+(?:\.\d+)+)$"

Reference traces

Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know AppImage Manager well and a transcript below looks wrong, or a newer release changed its output format, report it.

$ am -fi --byname

 YOU HAVE INSTALLED 3 PROGRAMS MANAGED BY "AM"

 - APPNAME              | VERSION             | TYPE           | SIZE
 - -------              | -------             | ----           | ----
 ◆ code                 | 1.107.1             | dynamic-binary | 450 MiB
 ◆ krita                | 5.2.14              | appimage       | 322 MiB
 ◆ zoom                 | 6.4.3.827.glibc2.27 | appimage*      | 288 MiB

Feed any of these through mpm and the raw output becomes one uniform table, the same shape for every manager: filter it, project columns, or export it (mpm --am installed --output json, or csv, toml, yaml), each package carrying a purl and a version comparable across managers.

Changelog

  • 8.0.0.dev0 (unreleased)

    • Declare support for the Linux compatibility layers, WSL included, in place of the Linux distributions alone. Their platform set matched none of the groups the documentation classifies against, so the readme’s operation matrix reported no platform at all for am, nala, pamac and pkcon, and Windows alone for miktex.

    • Add the AM AppImage manager with installed, upgrade, remove and cleanup support. Its listing locates the version by reading the table header, the column count depending on the applications installed. It declares no install, which blocks on an escalation prompt, no outdated, which the catalog cannot answer, and no search, whose records are folded to the terminal width.