apm is a macOS-first command-line package manager for audio producers. It
browses, installs, updates, removes, repairs, and tracks AU/VST3 plugins from
Git-backed registries.
The repository contains the Rust CLI and its reusable package-manager core. The registry catalog includes 8,000+ entries covering installable plugins, product bundles, DAWs, utilities, upgrades, expansions, preset packs, sample libraries, and vendor-managed products.
See Architecture for the CLI/core boundary.
- Available: CLI management for AU/VST3 plugins, including registry sync, search, install/remove, scan, diagnostics, pinning, upgrades, and portable setup export/import.
- Experimental: audio-AI model manifests, lockfiles, the
~/.apmmodel store, verified weight pulls, and runtime adapter preparation. - Planned: privileged PKG installation hardening and executable local audio-AI runtimes.
apm should be understood as an audio package manager, not only an audio plugin
installer. Plugins are the first useful package type; utilities, sample/preset
packs, and local audio-AI model packages belong in the same long-term product
model.
brew tap andreanjos/apm https://github.com/andreanjos/apm
brew install apmOr build from source with the current stable Rust toolchain:
cargo install --path crates/apm-clicp -r .claude/skills/apm ~/.claude/skills/Then use /apm search reverb or /apm install surge-xt directly in Claude Code.
apm sync # Pull latest catalog definitions
apm search reverb # Find plugins by keyword
apm info valhalla-supermassive # View plugin details
apm install tal-noisemaker # Install a plugin
apm list # See what's installed
apm uninstalled # Browse installable products not yet installed
apm outdated # Check for updates
apm upgrade # Upgrade everythingapm sync # Pull latest registry
apm search reverb # Search by keyword
apm search --category instruments # Filter by category
apm search --vendor "Valhalla DSP" # Filter by vendor
apm info surge-xt # Plugin detailsapm info shows the product type and access mode so it is clear whether a
record is a standalone plugin, bundle, upgrade, or vendor-managed product.
apm install tal-noisemaker # Install (AU + VST3)
apm install tal-noisemaker --format vst3 # VST3 only (also supports au/app)
apm install tal-noisemaker --version 4.3.2 # Specific version
sudo apm install tal-noisemaker --system # System-wide (/Library/)
printf "vital\nsurge-xt\n" | apm install --stdin
apm install --dry-run surge-xt # Preview without installing
apm --json install surge-xt --dry-run # Machine-readable install plan
apm install massive-x # Opens Native Access when required
apm remove tal-noisemaker # Remove a pluginAudio plugins install to ~/Library/Audio/Plug-Ins/ by default. App-format
entries install to ~/Applications/ unless --system is used.
apm supports three install modes:
- Direct: apm downloads the archive and installs it itself.
- Managed: apm opens the required vendor installer app, such as Native Access,
Arturia Software Center, Waves Central, iLok License Manager, or UA Connect.
After installing there, run
apm scan. - Manual: apm opens the product or download page. Install outside apm, then run
apm scanso apm can detect the plugin on disk.
apm outdated # List plugins with newer versions
apm upgrade # Upgrade all
apm upgrade surge-xt # Upgrade one
apm pin vital # Pin to current version (skip upgrades)
apm pin vital --unpin # Unpin
apm pin --list # List pinned pluginsExport your entire setup as a shareable string - paste it in Slack, a README, or a terminal on another machine:
apm export # Outputs apm1://... string to stdout
apm export -o setup.apmsetup # Save to file instead
apm import apm1://dGFsLW5v... # Import from string (preview + confirm)
apm import setup.apmsetup # Import from file
apm import --dry-run apm1://... # Preview what would change
apm import --yes apm1://... # Skip confirmation (for scripts)The string encodes installed plugins, versions, pins, registry sources, and
preferences. Use apm export --format toml or --format json when you want an
editable file instead of the portable apm1://... string.
apm list # apm-managed plugins
apm scan # All AU/VST3 on the system; tracks matched external installs
apm doctor # Run diagnostic checks
apm cleanup # Clear download cache
apm rollback <slug> # Restore from pre-upgrade backupapm scan is the bridge for manual and vendor-managed installs: it records what
is already on disk without asking you to re-enter file paths.
apm supports multiple Git-backed registries.
apm sources list
apm sources add https://github.com/your-org/apm-registry --name my-registry
apm sources remove my-registryThe audio-AI runtime is incomplete, but the CLI already supports model package manifests that declare metadata, runtime mode, weights, typed IO, parameters, license, and hardware requirements. It can validate and cache manifests, manage the local model store, pull verified weights, prepare runtime metadata, and produce explicit blocked results while executable adapters remain unavailable.
apm model validate examples/models/demucs.toml
apm model info examples/models/demucs.toml
apm model lock examples/models/demucs.toml -o apm.lock
apm model store --init
apm model list
apm model search stems
apm model search --available stems
apm model pull path/to/model-with-direct-weights.toml
apm model pull name@version
apm model install demucs@4.0.1
apm model run demucs@4.0.1 --input mix.wav --output stems/ --param stems=4
apm model rm demucs@4.0.1This is the start of the "Ollama for audio" layer: native Apple Silicon where
possible, managed Python fallback where necessary, one content-addressed model
store, and reproducible apm.lock files.
# Bash
apm completions bash > ~/.local/share/bash-completion/completions/apm
# Zsh
apm completions zsh > ~/.zsh/completions/_apm
# Fish
apm completions fish > ~/.config/fish/completions/apm.fishThe published registry is a Git repo with:
registry/index.tomlregistry/installers.tomlregistry/bundles/*.tomlregistry/plugins/<vendor>/<slug>.toml
registry/installers.toml defines vendor manager apps that plugin records can
reference with installer = "<key>". Example:
[native-access]
name = "Native Access 2"
vendor = "Native Instruments"
app_paths = [
"/Applications/Native Access 2.app",
"/Applications/Native Access.app",
]
download_url = "https://www.native-instruments.com/en/specials/native-access/"
homepage = "https://www.native-instruments.com/"Curated install bundles live separately in registry/bundles/*.toml; product
bundle SKUs still live in registry/plugins/<vendor>/<slug>.toml with
product_type = "bundle".
slug = "valhalla-supermassive"
aliases = ["supermassive"]
name = "Valhalla Supermassive"
vendor = "Valhalla DSP"
version = "5.0.0"
product_type = "plugin"
description = "Massive reverb and delay with lush modulation."
category = "effects"
subcategory = "reverb"
license = "freeware"
tags = ["reverb", "delay", "free"]
homepage = "https://valhalladsp.com/shop/reverb/valhalla-supermassive/"
[formats.vst3]
url = "https://example.com/ValhallaSupermassiveOSX_5_0_0.dmg"
sha256 = "eaac6d0a24ffed0a02afd1dd06124d12f94716d32a8ac376606aa2d701a70c3e"
install_type = "dmg"
download_type = "direct"
bundle_path = "ValhallaSupermassive.vst3"
[formats.au]
url = "https://example.com/ValhallaSupermassiveOSX_5_0_0.dmg"
sha256 = "eaac6d0a24ffed0a02afd1dd06124d12f94716d32a8ac376606aa2d701a70c3e"
install_type = "dmg"
download_type = "direct"
bundle_path = "ValhallaSupermassive.component"| Field | Required | Description |
|---|---|---|
slug |
yes | Unique identifier used in CLI commands |
aliases |
no | Alternate slugs that resolve to this record |
name |
yes | Display name |
vendor |
yes | Developer or company |
version |
yes | Semver or freeform version string |
product_type |
yes | plugin, bundle, expansion, preset_pack, sample_library, daw, utility, upgrade, subscription, template, or ebook |
description |
yes | One or two sentence description |
category |
yes | Registry category such as "effects", "instruments", or "daws" |
subcategory |
no | e.g. "reverb", "synthesizer", "eq" |
license |
yes | SPDX identifier or "freeware" |
tags |
yes | Search keywords |
installer |
no | Vendor manager key from registry/installers.toml |
homepage |
no | Official product page URL |
purchase_url |
no | Product purchase page |
releases |
no | Historical versions for explicit installs |
bundle_ids |
no | Known CFBundleIdentifier prefixes for scanner matching |
formats.* |
at least one | Format-specific download info such as au, vst3, or app |
url |
yes | Direct archive URL for direct downloads, or the official product/download page for manual and managed entries |
sha256 |
for direct downloads | SHA256 hex digest of the direct archive; manual and vendor-managed entries may leave this blank |
install_type |
yes | "dmg", "pkg", "zip", or "mas" |
download_type |
yes | "direct", "manual", or "managed" |
bundle_path |
for dmg/zip | Path inside the archive to the plugin bundle |
- Fork this repo.
- Add or update the relevant registry records:
registry/plugins/<vendor>/<slug>.tomlregistry/installers.tomlwhen a vendor manager is neededregistry/bundles/*.tomlwhen bundle membership changes
- Compute the SHA256 of the macOS installer:
shasum -a 256 /path/to/installer.dmg
- Open a pull request.
Guidelines:
- Only include products that are genuinely installable and not temporary trials.
- Use the official developer download URL, not a mirror.
- If a download requires account signup, note it with a comment in the TOML.
- Mark non-standalone catalog entries with
product_typeso search results stay honest.
apm is released under the MIT License. See LICENSE for details.