MacPackMate

Package-Manager-Hub für macOS

Alle deine Pakete.
Ein Ort.

Homebrew, MacPorts, npm, pip, Cargo, Go, App Store, von Hand installierte Apps, SDKs und Docker-Images – in einer Liste, parallel gescannt, mit einem Klick aktuell. Als native SwiftUI-App und als vollwertiges Terminal-Tool.

macOS 14 Sonoma oder neuer · Apple Silicon & Intel · signiert & von Apple notarisiert

  • brew
  • cask
  • MacPorts
  • npm
  • pip
  • pipx
  • uv
  • gem
  • + 9
macpackmate — zsh · Beispielausgabe

Animierte Beispielausgabe des Terminal-Tools macpackmate: Scan veralteter Pakete, Update aller Pakete, Konflikte im PATH, Rollback und Sicherheitsprüfung.

01 · Quellen

17 Quellen. Eine Liste.

Alles, was auf deinem Mac per Paketmanager, Installer oder von Hand gelandet ist. Fehlt ein Manager, wird er blass dargestellt – nichts muss vorinstalliert sein, MacPackMate kann ihn auf Wunsch sogar installieren.

Hauptfenster von MacPackMate: Liste aller 412 Pakete mit Manager, installierter und neuester Version, Status wie veraltet, aktuell, gepinnt oder Sicherheitslücke; links die Seitenleiste mit Bibliothek und Paketmanagern.
Das Hauptfenster: Bibliothek links, alles Installierte rechts – mit Status, Pins und Sicherheitshinweisen. (Beispieldaten, englische Oberfläche; die App folgt macOS und spricht Deutsch.)
  • brewHomebrew Formulae$ brew info --json=v2
  • caskHomebrew Casks$ brew info --cask
  • portMacPorts$ port installed
  • npmnpm (global)$ npm ls -g
  • pippip$ pip3 list
  • pipxpipx$ pipx list --json
  • uvuv tools$ uv tool list
  • gemRubyGems$ gem list
  • cargoCargo$ cargo install --list
  • goGo (go install)$ go version -mUpdate, Versionswechsel, Export/Import und Sicherheitsprüfung.
  • composerComposer$ composer global show
  • masMac App Store$ mas list
  • appApps$ /Applications + Sparkle · SetappSetapp-Apps werden erkannt und Setapp überlassen.
  • pkgInstaller pkgs$ pkgutil
  • binLoose binaries$ ~/.local/bin, /usr/local/bin
  • sdkSDKs & runtimes$ nvm pyenv rbenv asdf mise SDKMAN! JDKAuch SDKMAN!-Versionen (Java, Gradle, Maven, Kotlin …) mit Standardversion.
  • dockerDocker images$ docker images

02 · Tempo

Tempo ist ein Feature.

Alle Manager werden gleichzeitig befragt (Swift Concurrency). Die Gesamtdauer ist ungefähr die des langsamsten – nicht die Summe aller. Probier's aus:

  • brew–
  • cask–
  • npm–
  • pip–
  • pipx–
  • gem–
  • go–
  • mas–
  • app–

Bereit. Zeiten sind eine Simulation.

03 · Ablauf

Ein Update-Tag. Fünf Befehle.

Scrolle durch einen typischen Durchlauf – vom Scan bis zur Gegenprobe. Das Terminal läuft mit.

  1. Schritt 1

    Erst mal sehen.

    Ein Befehl fragt alle 17 Quellen gleichzeitig: Was ist veraltet, was gepinnt? Die Liste steht in Sekunden.

    macpackmate — zsh
    ❯ macpackmate scan --outdated-only
    MANAGER  NAME         VERSION   LATEST
    brew     node         24.10.0   24.11.1  ↑
    npm      typescript   5.8.3     5.9.3   ↑
    uv       ruff         0.13.2    0.14.4  ↑
    mas      Xcode        26.0      26.1    ↑
    412 Pakete · 4 veraltet · 2 gepinnt · 17 Quellen parallel in 1,4 s
  2. Schritt 2

    Alles aktuell. Mit einem Befehl.

    „Alle aktualisieren“ überspringt gepinnte und admin-pflichtige Pakete. Nichts passiert hinter deinem Rücken.

    macpackmate — zsh
    ❯ macpackmate update --all
    ⏺ node aktualisieren (Homebrew)
      ⎿ $ brew upgrade node
    ⏺ typescript aktualisieren (npm)
      ⎿ $ npm install --global typescript@latest
    ⏺ 3 aktualisiert · 1 übersprungen
      ⎿ ✓ brew:node  24.10.0 → 24.11.1
        – mas:Xcode: braucht Administratorrechte
  3. Schritt 3

    Wer verdeckt wen?

    Doppelte PATH-Einträge und verdeckte Programme findest du sofort – samt Lösung, erst als --dry-run.

    macpackmate — zsh
    ❯ macpackmate conflicts
    python3 → /opt/homebrew/bin/python3 ✓
      verdeckt: /usr/local/bin/python3 (python.org 3.8)
    ⚠ PATH: /usr/local/bin doppelt (~/.zshrc, Zeile 12)
    ⎿ Lösung: macpackmate conflicts fix path-dup-1 --dry-run
  4. Schritt 4

    Etwas kaputt? Zurück.

    Der Verlauf kennt jede Version vorher und nachher. rollback stellt die vorige wieder her.

    macpackmate — zsh
    ❯ macpackmate rollback npm:typescript
    ⏺ Verlauf: update 5.8.3 → 5.9.3
      ⎿ $ npm install --global typescript@5.8.3
    ✓ typescript 5.9.3 → 5.8.3 · im Verlauf gespeichert
  5. Schritt 5

    Sicher? Gegenprobe.

    Auf Knopfdruck gegen OSV.dev prüfen – nur Namen und Versionen verlassen deinen Mac. Mit Exit-Code für CI.

    macpackmate — zsh
    ❯ macpackmate audit --fail-on high
    ⏺ 287 Pakete gegen OSV.dev geprüft – nur Namen und Versionen
      ⎿ ✗ HIGH rubygems:rails 8.0.2 → 8.0.3
    exit code 5

04 · Kernprinzipien

Sechs Prinzipien, kein Schnickschnack.

Was MacPackMate im Innersten ausmacht – und warum du ihm den Zugriff auf deinen Mac anvertrauen kannst.

--cli-first

Das Terminal ist die Wahrheit.

Die App ist nur Anzeige. Jede Aktion läuft über das eingebettete Tool macpackmate, die App liest dessen JSON. Was du anklickst, kannst du skripten.

App → macpackmate --json → Core
--parallel

Gesamtdauer ≈ langsamster Manager.

17 Quellen scannen gleichzeitig, nicht nacheinander. Live-Log per NDJSON zeigt jeden Schritt, sobald er passiert.

scan: 17 sources · 1.4 s
--explicit

Nichts passiert ohne dich.

Nur Aktionen, die du startest. Vor dem Deinstallieren fragt MacPackMate nach Abhängigen. --dry-run zeigt jeden Plan vorab; gepinnte und admin-pflichtige Pakete überspringt „Alle aktualisieren“.

uninstall brew:openssl@3 → blocked (3 dependents)
--undo

Alles hinterlässt Spuren.

Der Verlauf hält jede Aktion aus App und Terminal fest: Versionen vorher → nachher, Befehl, vollständiges Log. Darauf baut rollback auf; PATH-Korrekturen kommen mit Sicherung und Rückgängig.

history show 42 · rollback npm:typescript
--private

Kein Tracking. Keine Passwörter.

MacPackMate erhebt keine personenbezogenen Daten und sendet nichts an den Autor. Admin-Rechte nur über sudo oder den nativen macOS-Dialog. Die Sicherheitsprüfung läuft nur auf Knopfdruck – es gehen nur Paketnamen und Versionen an OSV.dev.

telemetry: none
--inclusive

Für alle Hände und Sinne.

VoiceOver liest Symbole, Ampeln und Warnungen als Worte und sagt das Ergebnis jeder Aktion an. Volle Tastaturbedienung, „Bewegung reduzieren“ wird beachtet. Deutsch und Englisch in App, Terminal und Handbuch.

VoiceOver ✓ · Keyboard ✓ · DE/EN ✓

So ist es gebaut

Die App linkt die Logik bewusst nicht ein. Sie startet das eingebettete CLI und dekodiert dessen Ausgabe – alle JSON-Ausgaben haben ein JSON-Schema (2020-12) und stabile Exit-Codes. Perfekt für CI, Dotfiles und Skripte, zum Beispiel macpackmate audit --fail-on high.

MacPackMate.appSwiftUI · nur Anzeige
--json / NDJSON
Ereignisse live
macpackmateCLI · gesamte Logik
exec
Adapterbrew · npm · pip · …

05 · CLI

Eine Tour durchs Terminal.

Jede Funktion der App ist auch ein Befehl. Eine Auswahl – alles Beispielausgaben:

search · install

Durchsucht Homebrew, MacPorts, npm, PyPI, RubyGems, crates.io, Packagist, Go-Module (mit exaktem Paketpfad) und den App Store auf einmal – exakte Treffer zuerst, Installiertes markiert.

macpackmate — zsh
❯ macpackmate search ripgrep
❯ macpackmate install brew:ripgrep --dry-run
brew   ripgrep   14.1.1  ★ exact
cargo  ripgrep   14.1.1  (installed)
port   ripgrep   14.1.1
⏺ dry-run: brew install ripgrep

versions · rollback

Jede Version sehen, wechseln – auch zurück. Nach einem misslungenen Update genügt rollback; bei Homebrew schaltest du Hauptversionen wie node@22 per link in den PATH.

macpackmate — zsh
❯ macpackmate versions npm:typescript
❯ macpackmate install npm:typescript --version 5.8.3
5.9.3  latest
5.8.3  installed
5.8.2
…
⏺ npm install -g typescript@5.8.3

adopt

Von Hand installierte Apps werden zu Homebrew-Casks – inklusive Vorhersage, ob Homebrew sie annimmt. pip-Tools ziehen nach pipx oder uv um.

macpackmate — zsh
❯ macpackmate adoptable
❯ macpackmate adopt "app:/Applications/Cyberduck.app" --dry-run
app:Cyberduck  →  cask:cyberduck  ✓ Homebrew takes it
pip:black       →  pipx / uv
⏺ brew install --cask --adopt cyberduck

services

Homebrew-Hintergrunddienste mit Status-Ampel, Ein/Aus, Neustart und Log-Ansicht – PostgreSQL, MySQL, Redis und Co.

macpackmate — zsh
❯ macpackmate services
❯ macpackmate services restart postgresql@17
● postgresql@17  started
● redis          started
○ mysql          stopped

backup · restore

Dein Setup in einer Datei – und auf einem neuen Mac in sinnvoller Reihenfolge wieder aufgebaut, auf Wunsch mit exakten Versionen und Pins.

macpackmate — zsh
❯ macpackmate export -o MacPackMate.json
❯ macpackmate import MacPackMate.json --dry-run
✓ 412 packages → MacPackMate.json
⏺ brew → cask → npm → pipx …
(right order, pins included)

managers · doctor

Die Paketmanager selbst bleiben aktuell: Versionsprüfung mit Hinweis in Seitenleiste und Menüleiste, update-managers (⌥⌘U), und brew update läuft vor jeder Update-Suche. doctor prüft den Zustand (nur lesend); fehlende Manager installiert managers install aus signierten Installern bzw. über Homebrew.

macpackmate — zsh
❯ macpackmate update-managers
❯ macpackmate doctor
❯ macpackmate managers install go --dry-run
npm   11.20.0 → 12.2.2   ✓
brew update (before every update check)
⚠ brew doctor: 1 warning · pip check: ok
⏺ dry-run: brew install go

unused

Findet Apps und Tools ohne Nutzung seit N Tagen – per Spotlight, Zugriffszeiten und Shell-Verlauf – die größten zuerst.

macpackmate — zsh
❯ macpackmate unused --days 180
1.4 GB  Xcode Simulator Runtime  last used 412 d ago
612 MB  Docker Desktop         last used 231 d ago
… 14 candidates

Alle Ausgaben sind Beispiele.

Terminalfenster mit den Befehlen macpackmate scan --outdated-only, update --all und audit --fail-on high samt Ausgabe.

Gleiche Kraft im Terminal.

Das Tool steckt in der App (Contents/Helpers/macpackmate) und lässt sich mit einem Symlink in den PATH holen. Farbig im Stil von Claude Code, 24-Bit-Farben wo möglich, NO_COLOR wird respektiert.

❯ ln -sf /Applications/MacPackMate.app/Contents/Helpers/macpackmate ~/.local/bin/macpackmate

Und noch mehr Kleinkram, den du später vermissen würdest

  • Hintergrundprüfung – tägliche Update-Suche, Mitteilung nur bei Neuem, Menüleisten-Symbol
  • Was ist neu – Release Notes vor dem Update
  • Sicherheitsprüfung – OSV.dev, auch für Go-Module, mit behebender Version
  • Manager aktuell halten – Versionen prüfen, Hinweis in Seitenleiste und Menüleiste, ⌥⌘U
  • Zustand prüfen – doctor: brew doctor, fehlende Abhängigkeiten, abgeschaltete Formeln, MacPorts nach macOS-Upgrade – nur lesend
  • Manager installieren – Homebrew & MacPorts aus signierten Installern, auf einem neuen Mac schon beim Import
  • Go & SDKMAN! – Go-Programme und SDKMAN!-Versionen mit Standardversion
  • Klare Fenster – übersichtliche Bestätigungs- und Fehlerfenster mit „Details kopieren“
  • Farbige Würfel – jeder Paketmanager mit eigenem Symbol
  • Notizen & Profile – warum ist das installiert?
  • Info-Panel – Signatur, Speicherort, Größe, Nutzung, Rohdaten
  • Aufräumen – mit Probelauf
  • Pins – Version festhalten
  • Selbst-Updates – über Sparkle, signiert
  • Konflikte & PATH – wer verdeckt wen
  • Handbuch – 28 Kapitel, ⌘?

06 · Preis

14 Tage gratis. Dann 34 €.

Lade die App und probier sie zwei Wochen lang aus. Wenn sie bleibt, kaufst du sie über Polar.

MacPackMate für macOS

34 €

  1. DMG laden, in Programme ziehen, öffnen.
  2. 14 Tage alles ausprobieren – gratis.
  3. Behalten? Für 34 € bei Polar kaufen.

Bezahlung, Rechnung und Umsatzsteuer wickelt Polar (polar.sh) ab.

Voraussetzungen

  • macOS 14 Sonoma oder neuer
  • Apple Silicon oder Intel (Universal)
  • Von Apple notarisiert, mit Developer ID signiert
  • Automatische App-Updates über Sparkle (abschaltbar)
  • Deutsch & Englisch
  • Die Paketmanager selbst sind optional

FAQ

Häufige Fragen

Was ist MacPackMate?

Eine native Mac-App mit eingebautem Terminal-Tool, die alle Paketmanager und Installationswege deines Macs in einer Liste vereint – Homebrew, MacPorts, npm, pip, pipx, uv, RubyGems, Cargo, Go, Composer, Mac App Store, manuelle Apps, Installer-Pakete, lose Programme, SDKs und Docker-Images.

Ersetzt es Homebrew & Co.?

Nein. MacPackMate führt die vorhandenen Paketmanager aus und fasst sie zusammen. Fehlende Manager erscheinen blass in der Seitenleiste – und du kannst sie von MacPackMate installieren lassen.

Kann MacPackMate fehlende Paketmanager installieren?

Ja. Homebrew und MacPorts kommen aus ihren signierten, von Apple notarisierten Installern (die Signatur wird vor der Installation geprüft), alle übrigen – npm, pip, pipx, uv, Cargo, Composer, mas und Go – über Homebrew. In der App per Rechtsklick auf den Manager, im Terminal mit macpackmate managers install. Auf einem neuen Mac kann der Import die nötigen Manager zuerst installieren.

Werden Go, SDKMAN! und Setapp unterstützt?

Go-Programme (go install) und SDKMAN!-Versionen (Java, Gradle, Maven, Kotlin …) stehen in der Liste; Go lässt sich aktualisieren, wechseln, exportieren und auf Sicherheitslücken prüfen. Setapp-Apps werden erkannt, aber Setapp aktualisiert sie selbst – MacPackMate fasst sie nicht an und nimmt sie nicht in die Packdatei auf, weil Setapp keine Befehlszeile hat.

Was kostet MacPackMate?

Du kannst die App 14 Tage gratis testen, danach kostet sie 34 €. Verkauft wird über Polar (polar.sh).

Welche Systemvoraussetzungen gibt es?

macOS 14 Sonoma oder neuer, auf Apple Silicon und Intel. Die App ist mit Developer ID signiert und von Apple notarisiert.

Sendet MacPackMate Daten an dich?

Nein. MacPackMate erhebt keine personenbezogenen Daten und sendet nichts an den Autor. Die Paketmanager sprechen mit ihren eigenen Servern. Die optionale Sicherheitsprüfung schickt nur Namen und Versionen an OSV.dev. Die tägliche Suche nach App-Updates lädt eine Feed-Datei von dynamo.at (abschaltbar) – dabei sieht der Server wie bei jedem Webzugriff deine IP-Adresse.

Speichert es mein Admin-Passwort?

Nein. Administratorrechte gibt es nur über sudo im Terminal oder den nativen macOS-Dialog in der App.

Kann ich ein Update rückgängig machen?

Ja. Der Verlauf merkt sich Versionen vorher und nachher; macpackmate rollback oder die Rollback-Funktion der App stellt die vorige Version wieder her.

Gibt es ein Kommandozeilen-Tool?

Ja, es steckt in der App. Jede Aktion der App ist auch ein Befehl, mit JSON-Ausgabe, Schemas und Exit-Codes für Skripte und CI.

Ist die App barrierefrei?

VoiceOver, volle Tastaturbedienung und „Bewegung reduzieren“ werden unterstützt. Details zur Website stehen in der Erklärung zur Barrierefreiheit.