Headless install

Install the provider CLI from the terminal, including SSH-only Mac fleets.
Most providers should use the Malibu app. This page covers the terminal installer. It suits power users, remote Macs, and SSH-only Mac minis. A fresh provider still needs an invite code.

Install

Run this on an Apple Silicon Mac (M1 or newer) with macOS 14 or later:
The installer does the following, in order:
  1. Resolves the current stable release from GitHub (Augustas11/macprovider, the Latest release). It verifies the release assets against the signed checksums.txt manifest and the signed compatibility set before installing anything.
  2. Asks for your invite code on a fresh install. Without one it stops. If a preserved provider identity is found from an earlier install, it reuses that identity instead.
  3. Installs the CLI under ~/macprovider/, links ~/.local/bin/macprovider-cli, and adds the ~/.local/bin/malibu-cli alias.
  4. Runs autotune --recommend --apply. This benchmarks the Mac and picks the best paid model that fits, using the signed catalog and rate card. It then downloads the model and verifies its SHA-256 artifact hash. If no paid model clears after a few attempts, you are offered donor mode (unpaid). In donor mode the service is not started automatically.
  5. Writes ~/.config/macprovider/config.yaml (0600).
  6. Installs two launchd user agents: the provider (live.malibu.provider) and a companion watchdog (live.malibu.provider-watchdog).
  7. Starts the provider and waits until the network admits the exact model artifact for buyer traffic. If admission fails, the install rolls back instead of leaving a half-working provider.
The first model download and benchmark can take a while on a slow connection. The CLI binary and the Malibu app are Developer ID signed, and the app is notarized. The installer clears the macOS quarantine attribute on the files it installed.

Inspect before running

curl | bash hands your user account to the downloaded script. If you want to read it first:

Options

install.sh takes only --dry-run and --help. Everything else is set through environment variables:
bash install.sh --help lists most of these; it does not list MACPROVIDER_DONOR_MODE.

SSH-only Mac fleets

Use MACPROVIDER_HEADLESS=1 for a Mac mini or Studio that you manage only over SSH and that should serve without anyone logged in to the desktop:
Run it as the non-root account that should own the provider. Do not run it as root. In headless mode the installer:
  • installs the provider and watchdog as launchd system daemons in /Library/LaunchDaemons. They survive a reboot without a GUI login. This step needs sudo.
  • stores the provider credential in an owner-only protected file instead of the login Keychain.
  • sets auto_update_enabled: false, because headless nodes are upgraded by the operator, not by autoupdate.
  • records install_profile=headless_fleet in the install manifest.
Check it after install:

Upgrade

Headless installs do not self-update. malibu-cli update skips with headless_operator_update_required. Upgrades are operator-driven: run the signed installer again in headless mode (MACPROVIDER_HEADLESS=1, same user). Malibu support can tell you which installer bundle to use.

Check the install

Uninstall

For a standard install, from the CLI:
Or with the standalone uninstaller. --dry-run shows what it would remove:
The Malibu app has Quit and Uninstall… in its menu bar. All three paths remove the launchd services, installed binaries, logs, and install support files. They preserve your provider identity (provider_id in ~/.config/macprovider/ plus its credential), so a later reinstall can reuse it without a new invite. Model weights differ by path. The app’s Quit and Uninstall… runs malibu-cli uninstall --yes, which deletes ~/Library/Application Support/macprovider/models; only the Hugging Face cache survives. The standalone uninstall.sh keeps that models/ directory.
On current stable (v1.8.123), malibu-cli uninstall refuses headless (system-domain) installs rather than leave system daemons half-removed. The live standalone uninstall.sh does not cover headless installs either: it stops only per-user (GUI) LaunchAgents, not headless daemons, and it can leave a dangling ~/.local/bin/malibu-cli symlink. Support for headless uninstall is merged and ships in a later release.

Agent-readable onboarding

To hand this to a coding agent, point it at https://get.malibu.tech/skill.md. It covers the same installer plus status, recovery, update, and uninstall. See Agent-readable onboarding.