--cli-firstDas 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 → CorePackage-Manager-Hub für macOS
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
Animierte Beispielausgabe des Terminal-Tools macpackmate: Scan veralteter Pakete, Update aller Pakete, Konflikte im PATH, Rollback und Sicherheitsprüfung.
01 · Quellen
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.

02 · Tempo
Alle Manager werden gleichzeitig befragt (Swift Concurrency). Die Gesamtdauer ist ungefähr die des langsamsten – nicht die Summe aller. Probier's aus:
Bereit. Zeiten sind eine Simulation.
03 · Ablauf
Scrolle durch einen typischen Durchlauf – vom Scan bis zur Gegenprobe. Das Terminal läuft mit.
Schritt 1
Ein Befehl fragt alle 17 Quellen gleichzeitig: Was ist veraltet, was gepinnt? Die Liste steht in Sekunden.
❯ 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
Schritt 2
„Alle aktualisieren“ überspringt gepinnte und admin-pflichtige Pakete. Nichts passiert hinter deinem Rücken.
❯ 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
Schritt 3
Doppelte PATH-Einträge und verdeckte Programme findest du sofort – samt Lösung, erst als --dry-run.
❯ 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
Schritt 4
Der Verlauf kennt jede Version vorher und nachher. rollback stellt die vorige wieder her.
❯ 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
Schritt 5
Auf Knopfdruck gegen OSV.dev prüfen – nur Namen und Versionen verlassen deinen Mac. Mit Exit-Code für CI.
❯ 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
Was MacPackMate im Innersten ausmacht – und warum du ihm den Zugriff auf deinen Mac anvertrauen kannst.
--cli-firstDie 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--parallel17 Quellen scannen gleichzeitig, nicht nacheinander. Live-Log per NDJSON zeigt jeden Schritt, sobald er passiert.
scan: 17 sources · 1.4 s--explicitNur 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)--undoDer 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--privateMacPackMate 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--inclusiveVoiceOver 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 ✓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.
05 · CLI
Jede Funktion der App ist auch ein Befehl. Eine Auswahl – alles Beispielausgaben:
search · installDurchsucht 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 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 · rollbackJede 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 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
adoptVon Hand installierte Apps werden zu Homebrew-Casks – inklusive Vorhersage, ob Homebrew sie annimmt. pip-Tools ziehen nach pipx oder uv um.
❯ 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
servicesHomebrew-Hintergrunddienste mit Status-Ampel, Ein/Aus, Neustart und Log-Ansicht – PostgreSQL, MySQL, Redis und Co.
❯ macpackmate services ❯ macpackmate services restart postgresql@17 ● postgresql@17 started ● redis started ○ mysql stopped
backup · restoreDein Setup in einer Datei – und auf einem neuen Mac in sinnvoller Reihenfolge wieder aufgebaut, auf Wunsch mit exakten Versionen und Pins.
❯ macpackmate export -o MacPackMate.json ❯ macpackmate import MacPackMate.json --dry-run ✓ 412 packages → MacPackMate.json ⏺ brew → cask → npm → pipx … (right order, pins included)
managers · doctorDie 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 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
unusedFindet Apps und Tools ohne Nutzung seit N Tagen – per Spotlight, Zugriffszeiten und Shell-Verlauf – die größten zuerst.
❯ 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.

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
doctor: brew doctor, fehlende Abhängigkeiten, abgeschaltete Formeln, MacPorts nach macOS-Upgrade – nur lesend06 · Preis
Lade die App und probier sie zwei Wochen lang aus. Wenn sie bleibt, kaufst du sie über Polar.
MacPackMate für macOS
34 €
Bezahlung, Rechnung und Umsatzsteuer wickelt Polar (polar.sh) ab.
FAQ
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.
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.
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.
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.
Du kannst die App 14 Tage gratis testen, danach kostet sie 34 €. Verkauft wird über Polar (polar.sh).
macOS 14 Sonoma oder neuer, auf Apple Silicon und Intel. Die App ist mit Developer ID signiert und von Apple notarisiert.
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.
Nein. Administratorrechte gibt es nur über sudo im Terminal oder den nativen macOS-Dialog in der App.
Ja. Der Verlauf merkt sich Versionen vorher und nachher; macpackmate rollback oder die Rollback-Funktion der App stellt die vorige Version wieder her.
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.
VoiceOver, volle Tastaturbedienung und „Bewegung reduzieren“ werden unterstützt. Details zur Website stehen in der Erklärung zur Barrierefreiheit.