MacBook-Setup für AI Engineering: macOS-Tools und Workflow

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

Dieses Setup richte ich auf einem neuen MacBook ein, bevor ich mit AI Engineering beginne. Es richtet sich an Ingenieure, die einen Mac mit Apple Silicon für Python- und AI-Arbeit einrichten. Es behandelt die Command-Line-Tools, die macOS nicht mitbringt, Homebrew, Python mit uv, die Shell, die Wahl von Terminal und Editor, Coding Agents, Docker und Tools für lokale Models.

Manche Schritte sind notwendig, andere sind meine Vorlieben. Xcode Command Line Tools, Homebrew, Git und ein Python-Workflow sind die Grundlage. Warp, iTerm2, Powerlevel10k, Cursor und lokale Model Runner sind Entscheidungen. Die Befehle unten installieren die Grundlage; die späteren Abschnitte halten die Entscheidungen fest, die ich darauf aufbaue.

Die Schritte laufen in dieser Reihenfolge:

  1. Xcode Command Line Tools.
  2. Homebrew.
  3. uv und Python.
  4. Oh My Zsh.
  5. Plugins und Powerlevel10k.

Terminal, Editor, Container und lokale Models sind unabhängige Entscheidungen. Lässt du eine davon aus, funktionieren die Schritte oben trotzdem.

Command-Line-Tools und Homebrew

Beginne mit Apples Command-Line-Tools:

xcode-select --install

macOS öffnet einen Dialog, der durch die Installation führt.

Homebrew ist der Paketmanager, den ich für den Rest dieses Setups verwende. Sein offizielles Installationsprogramm ist ein einziger Befehl:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Das Installationsprogramm erklärt, was es ändern wird, und fragt nach einer Bestätigung. Der Homebrew-Installationsleitfaden listet die Änderungen und die Standard-Präfixe auf.

Um eine geprüfte Revision des Installationsskripts auszuführen, lade das Skript herunter, prüfe seinen SHA-256-Hash und führe die lokale Kopie aus. Dieser Block verwendet Commit 150c69d:

(
    set -e
    homebrew_installer="$(mktemp)"
    trap 'rm -f "$homebrew_installer"' EXIT
    curl --proto '=https' --tlsv1.2 --fail --location --show-error https://raw.githubusercontent.com/Homebrew/install/150c69df1e54b0b74c9fcca5a201410a2300816a/install.sh -o "$homebrew_installer"
    printf '%s  %s\n' 12479a24be3f5307eecac7cde670fad7118640f031229e964f544b1367b52a41 "$homebrew_installer" | shasum -a 256 --check
    less "$homebrew_installer"
    /bin/bash "$homebrew_installer"
)

Der Commit und der SHA-256-Hash legen das Installationsskript fest, das du ausführst. Dieses Skript installiert weiterhin die neueste Homebrew-Version, und spätere Paketbefehle installieren aktuelle Versionen. Das Festlegen des Commits beweist nicht, wer ihn geschrieben hat.

Auf Apple Silicon installiert Homebrew nach /opt/homebrew, und dieses Verzeichnis ist nicht im Standard-PATH. Das Installationsprogramm gibt die Befehle aus, die das beheben, führt sie aber nicht aus. Führe sie selbst aus:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Die erste Zeile macht brew in jeder neuen Login-Shell verfügbar. Die zweite macht es in der aktuellen Shell verfügbar. .zprofile vs .zshrc erklärt, warum die Zeile in .zprofile gehört.

Installiere die Command-Line-Tools, die ich regelmäßig verwende:

brew install uv htop gitmoji pandoc ncdu tmux
  • uv verwaltet Python-Versionen, Umgebungen, Abhängigkeiten, Befehle und Lockfiles. Der nächste Abschnitt richtet es ein.
  • htop ist ein visueller System- und Prozessmonitor.
  • tmux hält mehrere Terminal-Sessions in einem Fenster am Laufen.
  • ncdu zeigt die Festplattenbelegung pro Verzeichnis.
  • gitmoji fügt Commit-Nachrichten Emojis hinzu.
  • pandoc konvertiert Dokumente zwischen Formaten.

Python mit uv und pyenv

Bevor ich auf uv umgestiegen bin, habe ich Python-Umgebungen mit pyenv verwaltet. Heute deckt uv meinen Alltags-Workflow ab. Installiere die neueste von uv verwaltete Python-Version:

uv python install

Das installiert die neueste Version, die uv zum Zeitpunkt des Setups zur Verfügung steht. Starte sie mit uv run python oder beginne ein Projekt mit uv init. Für eine projektspezifische Version nutze den Pinning-Workflow aus meinem kurzen Leitfaden zur Python-Verwaltung auf macOS mit uv.

pyenv verwende ich, wenn ich einen aus dem Quellcode gebauten Interpreter oder eigene CPython-Build-Optionen brauche, die die vorgefertigten Distributionen von uv nicht bieten. pyenv kompiliert Python aus dem Quellcode und braucht deshalb zuerst diese Bibliotheken. Die Liste folgt der empfohlenen Build-Umgebung von pyenv:

brew install pyenv openssl@3 readline sqlite3 xz tcl-tk@8 libb2 zstd zlib pkgconfig
  • openssl stellt SSL/TLS-Unterstützung für Pythons ssl-Modul bereit.
  • readline ergänzt den interaktiven Interpreter um Zeilenbearbeitung und Verlauf.
  • sqlite3 ist die eingebettete Datenbank hinter Pythons sqlite3-Modul.
  • xz, zlib und zstd stellen Datenkompression bereit.
  • tcl-tk@8 baut das GUI-Modul tkinter, libb2 stellt BLAKE2-Hashing bereit und pkgconfig hilft dem Build, die anderen Bibliotheken zu finden.

uv braucht keines dieser Pakete. Überspringe diesen Block, wenn du pyenv nicht verwendest.

Terminal

Das Standard-Terminal von macOS reicht aus. Ich habe jahrelang iTerm2 verwendet und bin vor Kurzem zu Warp gewechselt, einem in Rust geschriebenen Terminal mit eingebauten AI-Funktionen. Das Prompt-Theme weiter unten in diesem Artikel, Powerlevel10k, braucht pro Terminal eine Änderung: Stelle die Schrift auf MesloLGS NF. In Warp öffne außerdem Settings → Appearance und setze unter Input den Input type auf Shell (PS1). Warp zeichnet standardmäßig einen eigenen Prompt, ohne diese Änderung siehst du den Powerlevel10k-Prompt also nicht (Warp-Dokumentation zum Prompt).

Wenn du bei iTerm2 bleibst, sind das die zwei Einstellungen, die ich ändere:

Natürliches Bearbeiten von Text aktivieren

  1. Öffne Preferences → Profiles → Keys → Key Mappings.
  2. Öffne das Dropdown Presets….
  3. Wähle “Natural Text Editing”.

Ein Farbschema wählen

  1. Durchsuche die Themes unter iTerm2-Color-Schemes.
  2. Öffne Preferences → Profiles → Colors → Color Presets…
  3. Wähle Import und dann das heruntergeladene Theme.

Zsh und Oh My Zsh

macOS verwendet Zsh als Standard-Login-Shell. Ich nutze das mitgelieferte /bin/zsh; installiere das Zsh von Homebrew nur, wenn du eine bestimmte neuere Upstream-Version brauchst.

Prüfe das installierte Zsh und die aktuelle Login-Shell:

echo "$SHELL"
command -v zsh
zsh --version

Wenn Zsh installiert, aber nicht als Login-Shell ausgewählt ist, wechsle zur mitgelieferten Version:

chsh -s /bin/zsh

Öffne nach dem Wechsel der Login-Shell ein neues Terminal.

Oh My Zsh bringt die Standardeinstellungen und das Plugin-System mit, die ich verwende. Das offizielle Installationsprogramm ist:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Das Installationsprogramm benennt eine vorhandene ~/.zshrc in ~/.zshrc.pre-oh-my-zsh um und schreibt eine neue aus seiner Vorlage. Übernimm die Einstellungen, die du behalten willst, aus der alten Datei in die neue. Führe omz update aus, wenn du eine neuere Version von Oh My Zsh willst. Standardmäßig fragt es dich außerdem alle 13 Tage, ob es aktualisieren soll.

Die nächsten zwei Abschnitte fügen Plugins und ein Theme hinzu, und beide bearbeiten ~/.zshrc. Die Abbildung zeigt, welche Datei welche Zeile enthält, welche Zeilen du änderst und wohin jede Zeile auf der Platte zeigt.

Die zwei Startdateien mit ihren Zeilen: ~/.zprofile enthält die Zeile brew shellenv, die /opt/homebrew/bin auf den PATH setzt; ~/.zshrc enthält die Zeile ZSH_THEME, die auf das nach ZSH_CUSTOM/themes geklonte Theme verweist, die plugins-Liste mit den mitgelieferten Plugins und den zwei nach ZSH_CUSTOM/plugins geklonten, zsh-syntax-highlighting zuletzt, die source-Zeile, die Oh My Zsh lädt, und die Zeile, die ~/.p10k.zsh liest, von p10k configure geschriebenDie zwei Startdateien mit ihren Zeilen: ~/.zprofile enthält die Zeile brew shellenv, die /opt/homebrew/bin auf den PATH setzt; ~/.zshrc enthält die Zeile ZSH_THEME, die auf das nach ZSH_CUSTOM/themes geklonte Theme verweist, die plugins-Liste mit den mitgelieferten Plugins und den zwei nach ZSH_CUSTOM/plugins geklonten, zsh-syntax-highlighting zuletzt, die source-Zeile, die Oh My Zsh lädt, und die Zeile, die ~/.p10k.zsh liest, von p10k configure geschrieben

Plugins hinzufügen

Installiere zsh-autosuggestions und zsh-syntax-highlighting im Verzeichnis für eigene Plugins von Oh My Zsh:

git clone https://github.com/zsh-users/zsh-autosuggestions "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"

zsh-autosuggestions schlägt während der Eingabe Befehle aus deinem Verlauf vor. zsh-syntax-highlighting färbt jeden Befehl während der Eingabe ein, sodass Tippfehler sichtbar werden, bevor du Enter drückst.

Ersetze in ~/.zshrc die Zeile plugins=(git) aus der Vorlage durch die Plugins für die Tools in diesem Artikel:

plugins=(
    git brew docker docker-compose macos python tmux vscode
    zsh-autosuggestions zsh-syntax-highlighting
)

Füge pyenv zur Liste hinzu, wenn du es installiert hast. Lass zsh-syntax-highlighting an letzter Stelle im Array. Meine eigene Liste enthält außerdem aws, gcloud, kubectl und pre-commit. Füge solche Plugins nur hinzu, wenn du das jeweilige Tool verwendest, denn jedes Plugin verlängert den Start der Shell. Das Wiki zu den Oh-My-Zsh-Plugins beschreibt die mitgelieferten Plugins.

Powerlevel10k und seine Schrift

Powerlevel10k ist das Zsh-Theme, das ich verwende. Es zeigt im Prompt das Arbeitsverzeichnis, den Git-Status und die aktive Python-Umgebung an und bietet einen interaktiven Konfigurationsassistenten. Installiere es für Oh My Zsh:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

Ersetze in ~/.zshrc die Zeile ZSH_THEME="robbyrussell" durch:

ZSH_THEME="powerlevel10k/powerlevel10k"

Öffne eine neue Shell und führe p10k configure aus. Der Assistent schreibt deine Auswahl nach ~/.p10k.zsh.

Die Icons von Powerlevel10k brauchen die Schrift MesloLGS NF. In iTerm2 kann p10k configure die Schrift automatisch installieren. Für andere Terminals und Editoren lade die vier TTF-Dateien aus dem Schrift-Leitfaden von Powerlevel10k herunter, installiere sie und wähle dann die Schrift aus. In Warp öffne Settings → Appearance → Text und setze Terminal font auf MesloLGS NF. In VS Code oder Cursor stelle die Schrift des integrierten Terminals ein:

  1. Öffne die Einstellungen deines Editors.
  2. Suche nach terminal.integrated.fontFamily.
  3. Setze den Wert auf MesloLGS NF.

Editoren und Coding Agents

Ich habe einen Editor offen und lasse daneben einen oder zwei Coding Agents laufen. Derzeit nutze ich Cursor und lasse Codex und Claude Code parallel laufen.

  • Cursor ist ein Fork von VS Code mit eingebautem AI Pair Programming. Nutze es, wenn das Model den Code direkt im Editor bearbeiten soll.
  • VS Code hat den größeren Katalog an Erweiterungen. Nutze es, wenn du eine Erweiterung brauchst, die Cursor nicht unterstützt.
  • Claude Code und Codex CLI sind Coding Agents, die im Terminal laufen. Sie lesen das Repository, bearbeiten Dateien und führen Befehle aus. Nutze sie für Änderungen über viele Dateien oder für Aufgaben, bei denen Tests laufen müssen.
  • GitHub Desktop ist ein Git-Client für die Fälle, in denen ich nicht auf die CLI wechseln will.

Alle lassen sich als Homebrew-Casks installieren:

brew install --cask cursor visual-studio-code claude-code codex github

Homebrew aktualisiert Claude Code nicht von selbst; führe brew upgrade claude-code aus. Wenn du automatische Updates willst, verwende stattdessen das native Installationsprogramm von Anthropic: curl -fsSL https://claude.ai/install.sh | bash.

Container und lokale Models

Die übrigen Tools hängen davon ab, welche Arbeit ich auf dem Rechner vorhabe. Das Setup von Shell und Python hängt nicht von Containern oder lokalen Models ab.

  • Docker Desktop ist die Container-Runtime, die ich verwende. Die Lizenz ist kostenlos für die private Nutzung und für kleine Unternehmen mit weniger als 250 Beschäftigten und weniger als $10 Millionen Jahresumsatz. Größere Unternehmen brauchen einen kostenpflichtigen Plan (Docker-Desktop-Lizenz).
  • Podman Desktop ist Open Source und hat keine solche Lizenzbedingung. Nutze es, wenn dein Unternehmen über diesen Grenzen liegt und nicht für Docker bezahlt.
  • Ollama läuft als Hintergrunddienst mit einer lokalen API. Nutze es, wenn Skripte oder eine Anwendung das Model aufrufen.
  • LM Studio ist eine Desktop-App, um Models zu finden, zu laden und zu vergleichen. Nutze es, wenn du Models von Hand ausprobieren willst. Es kann auch eine lokale API bereitstellen.

Auch diese lassen sich als Casks installieren:

brew install --cask docker-desktop   # or podman-desktop
brew install --cask ollama-app       # or lm-studio

Lokale LLMs auf macOS vergleicht Ollama, LM Studio, llama.cpp und MLX-LM im Detail.

Das Setup auf dem nächsten Mac wiederholen

Homebrew kann die Formeln und Casks aus diesem Setup in einem Brewfile festhalten und auf einem neuen Rechner installieren:

brew bundle dump --file ~/Brewfile
brew bundle --file ~/Brewfile

Führe den ersten Befehl auf dem alten Mac aus; füge --force hinzu, um ein vorhandenes Brewfile zu überschreiben. Installiere auf dem neuen Mac Xcode Command Line Tools und Homebrew, führe den Schritt brew shellenv aus und dann den zweiten Befehl.

Bewahre das Brewfile und Kopien von .zprofile, .zshrc und .p10k.zsh ohne Zugangsdaten in einem Dotfiles-Repository auf. Wiederhole die Python-Installation mit uv und die manuellen Schritte für Oh My Zsh, Plugins, Powerlevel10k und die Schrift. Stelle deine Shell-Konfigurationsdateien nach der Installation von Oh My Zsh wieder her, weil dessen Installationsprogramm .zshrc neu schreibt. Richte die Terminal- und Editoreinstellungen wieder ein.

Ein Brewfile speichert Paketnamen, ohne deren Versionen festzulegen. Die wieder installierten Pakete können neuer sein; die Homebrew-Bundle-Dokumentation erklärt diese Einschränkung.

Referenzen