Konfiguracja MacBooka do pracy z AI: narzędzia i workflow w macOS

Tłumaczenie automatyczne

Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.

To konfiguracja, którą stosuję na nowym MacBooku, zanim zacznę pracę inżynierską z AI. Jest przeznaczona dla inżynierów, którzy przygotowują Maca z Apple Silicon do pracy z Pythonem i AI. Obejmuje narzędzia wiersza poleceń, których macOS nie ma, Homebrew, Pythona z uv, powłokę, wybór terminala i edytora, agentów do kodowania, Dockera oraz narzędzia do lokalnych modeli.

Część kroków jest obowiązkowa, a część to moje preferencje. Xcode Command Line Tools, Homebrew, Git i workflow dla Pythona to podstawy. Warp, iTerm2, Powerlevel10k, Cursor i narzędzia do uruchamiania lokalnych modeli to kwestia wyboru. Poniższe polecenia instalują podstawy, a dalsze sekcje opisują wybory, których dokonuję na ich bazie.

Kroki wykonuję w tej kolejności:

  1. Narzędzia wiersza poleceń Xcode.
  2. Homebrew.
  3. uv i Python.
  4. Oh My Zsh.
  5. Pluginy i Powerlevel10k.

Terminal, edytor, kontenery i lokalne modele to niezależne wybory. Możesz pominąć każdy z nich, a powyższe kroki nadal będą działać.

Narzędzia wiersza poleceń i Homebrew

Zacznij od narzędzi wiersza poleceń Apple:

xcode-select --install

macOS otworzy okno dialogowe, które przeprowadzi cię przez instalację.

Homebrew to menedżer pakietów, którego używam w dalszej części tej konfiguracji. Jego oficjalny instalator to jedno polecenie:

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

Instalator wyjaśnia, co zmieni, i prosi o potwierdzenie. Przewodnik instalacji Homebrew wymienia te zmiany i domyślne prefiksy.

Aby uruchomić sprawdzoną rewizję instalatora, pobierz skrypt, sprawdź jego SHA-256 i uruchom lokalną kopię. Ten blok używa commita 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"
)

Commit i SHA-256 ustalają skrypt instalacyjny, który uruchamiasz. Ten skrypt nadal instaluje najnowszą wersję Homebrew, a późniejsze polecenia instalują aktualne wersje pakietów. Przypięcie commita nie dowodzi, kto go napisał.

Na Apple Silicon Homebrew instaluje się w /opt/homebrew, którego nie ma w domyślnym PATH. Instalator wypisuje polecenia, które to naprawiają, ale ich nie uruchamia. Uruchom je samodzielnie:

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

Pierwsza linia udostępnia brew w każdej nowej powłoce logowania. Druga udostępnia go w bieżącej. Artykuł .zprofile a .zshrc wyjaśnia, dlaczego ta linia trafia do .zprofile.

Zainstaluj narzędzia wiersza poleceń, których regularnie używam:

brew install uv htop gitmoji pandoc ncdu tmux
  • uv zarządza wersjami Pythona, środowiskami, zależnościami, poleceniami i plikami lock. Konfiguruje go następna sekcja.
  • htop to graficzny monitor systemu i procesów.
  • tmux utrzymuje kilka sesji terminala w jednym oknie.
  • ncdu pokazuje zajętość dysku według katalogów.
  • gitmoji dodaje emoji do komunikatów commitów.
  • pandoc konwertuje dokumenty między formatami.

Python z uv i pyenv

Zanim przeszedłem na uv, zarządzałem środowiskami Pythona za pomocą pyenv. Dziś uv obsługuje mój codzienny workflow. Zainstaluj najnowszą wersję Pythona zarządzaną przez uv:

uv python install

To polecenie instaluje najnowszą wersję dostępną w uv w chwili konfiguracji. Uruchamiaj ją przez uv run python albo zacznij projekt od uv init. Jeśli projekt potrzebuje konkretnej wersji, użyj sposobu przypinania z mojego krótkiego przewodnika po zarządzaniu Pythonem w macOS za pomocą uv.

Po pyenv sięgam, gdy potrzebuję interpretera zbudowanego ze źródeł albo własnych opcji kompilacji CPythona, których nie dają gotowe dystrybucje uv. pyenv kompiluje Pythona ze źródeł, więc najpierw potrzebuje tych bibliotek. Lista opiera się na zalecanym środowisku kompilacji pyenv:

brew install pyenv openssl@3 readline sqlite3 xz tcl-tk@8 libb2 zstd zlib pkgconfig
  • openssl zapewnia obsługę SSL/TLS dla modułu ssl Pythona.
  • readline dodaje edycję linii i historię do interaktywnego interpretera.
  • sqlite3 to wbudowana baza danych, na której opiera się moduł sqlite3 Pythona.
  • xz, zlib i zstd zapewniają kompresję danych.
  • tcl-tk@8 buduje moduł GUI tkinter, libb2 zapewnia haszowanie BLAKE2, a pkgconfig pomaga kompilacji znaleźć pozostałe biblioteki.

uv nie potrzebuje żadnego z tych pakietów. Pomiń ten blok, jeśli nie używasz pyenv.

Terminal

Domyślny Terminal w macOS w zupełności wystarcza. Przez lata używałem iTerm2, a niedawno przeszedłem na Warp, terminal napisany w Rust z wbudowanymi funkcjami AI. Opisany dalej motyw Powerlevel10k zmienia prompt. W każdym terminalu wymaga jednej zmiany: ustaw czcionkę MesloLGS NF. W Warp otwórz też Settings → Appearance i w sekcji Input ustaw Input type na Shell (PS1). Warp domyślnie rysuje własny prompt, więc bez tej zmiany nie zobaczysz, jak wygląda prompt Powerlevel10k (dokumentacja Warp: prompt).

Jeśli zostajesz przy iTerm2, oto dwa ustawienia, które w nim zmieniam:

Włącz naturalną edycję tekstu

  1. Otwórz Preferences → Profiles → Keys → Key Mappings.
  2. Rozwiń listę Presets…
  3. Wybierz „Natural Text Editing”.

Wybierz motyw kolorystyczny

  1. Przejrzyj motywy w iTerm2-Color-Schemes.
  2. Otwórz Preferences → Profiles → Colors → Color Presets…
  3. Wybierz Import i wskaż pobrany motyw.

Zsh i Oh My Zsh

macOS używa Zsh jako domyślnej powłoki logowania. Korzystam z dołączonego /bin/zsh; Zsh z Homebrew instaluj tylko wtedy, gdy potrzebujesz konkretnej, nowszej wersji upstream.

Sprawdź zainstalowany Zsh i bieżącą powłokę logowania:

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

Jeśli Zsh jest zainstalowany, ale nie jest ustawiony jako powłoka logowania, przełącz się na dołączoną kopię:

chsh -s /bin/zsh

Po zmianie powłoki logowania otwórz nowy terminal.

Oh My Zsh dodaje ustawienia domyślne i system pluginów, których używam. Jego oficjalny instalator to:

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

Instalator zmienia nazwę istniejącego ~/.zshrc na ~/.zshrc.pre-oh-my-zsh i tworzy nowy plik z własnego szablonu. Przenieś ze starego pliku do nowego ustawienia, które chcesz zachować. Uruchom omz update, gdy chcesz nowszą wersję Oh My Zsh. Domyślnie co 13 dni pyta też, czy przeprowadzić aktualizację.

Dwie kolejne sekcje dodają pluginy i motyw, i obie edytują ~/.zshrc. Rysunek pokazuje, który plik zawiera którą linię, które linie zmieniasz i dokąd każda linia prowadzi na dysku.

Dwa pliki startowe z ich liniami: ~/.zprofile zawiera linię brew shellenv, która dodaje /opt/homebrew/bin do PATH; ~/.zshrc zawiera linię ZSH_THEME wskazującą motyw sklonowany do ZSH_CUSTOM/themes, listę plugins z pluginami dołączonymi oraz dwoma sklonowanymi do ZSH_CUSTOM/plugins, z zsh-syntax-highlighting na końcu, linię source ładującą Oh My Zsh oraz linię czytającą ~/.p10k.zsh zapisany przez p10k configureDwa pliki startowe z ich liniami: ~/.zprofile zawiera linię brew shellenv, która dodaje /opt/homebrew/bin do PATH; ~/.zshrc zawiera linię ZSH_THEME wskazującą motyw sklonowany do ZSH_CUSTOM/themes, listę plugins z pluginami dołączonymi oraz dwoma sklonowanymi do ZSH_CUSTOM/plugins, z zsh-syntax-highlighting na końcu, linię source ładującą Oh My Zsh oraz linię czytającą ~/.p10k.zsh zapisany przez p10k configure

Dodaj pluginy

Zainstaluj zsh-autosuggestions i zsh-syntax-highlighting w katalogu własnych pluginów 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 podpowiada polecenia z historii w trakcie pisania. zsh-syntax-highlighting koloruje każde polecenie w trakcie pisania, więc literówki widać, zanim naciśniesz Enter.

W ~/.zshrc zastąp linię plugins=(git) z szablonu pluginami dla narzędzi z tego artykułu:

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

Jeśli zainstalowałeś pyenv, dodaj do listy pyenv. zsh-syntax-highlighting musi pozostać ostatnim elementem tablicy. Moja lista zawiera też aws, gcloud, kubectl i pre-commit. Dodawaj takie pluginy tylko wtedy, gdy używasz danego narzędzia, bo każdy plugin wydłuża start powłoki. Wiki pluginów Oh My Zsh opisuje dołączone pluginy.

Powerlevel10k i jego czcionka

Powerlevel10k to motyw Zsh, którego używam. Jego prompt pokazuje katalog roboczy, status Gita i aktywne środowisko Pythona. Motyw ma też interaktywny kreator konfiguracji. Zainstaluj go dla Oh My Zsh:

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

W ~/.zshrc zastąp linię ZSH_THEME="robbyrussell" tą:

ZSH_THEME="powerlevel10k/powerlevel10k"

Otwórz nową powłokę i uruchom p10k configure. Kreator zapisuje twoje wybory w ~/.p10k.zsh.

Ikony Powerlevel10k wymagają czcionki MesloLGS NF. W iTerm2 p10k configure może zainstalować ją automatycznie. W innych terminalach i edytorach pobierz i zainstaluj cztery pliki TTF z przewodnika po czcionkach Powerlevel10k, a potem wybierz tę czcionkę. W Warp otwórz Settings → Appearance → Text i ustaw Terminal font na MesloLGS NF. W VS Code lub Cursorze ustaw czcionkę zintegrowanego terminala:

  1. Otwórz ustawienia edytora.
  2. Wyszukaj terminal.integrated.fontFamily.
  3. Ustaw wartość MesloLGS NF.

Edytory i agenci do kodowania

Mam otwarty jeden edytor, a obok niego uruchamiam jednego lub dwóch agentów do kodowania. Obecnie używam Cursora, a równolegle działają Codex i Claude Code.

  • Cursor to fork VS Code z wbudowanym programowaniem w parze z AI. Wybierz go, gdy chcesz, żeby model edytował kod w edytorze.
  • VS Code ma większy katalog rozszerzeń. Wybierz go, gdy potrzebujesz rozszerzenia, którego Cursor nie obsługuje.
  • Claude Code i Codex CLI to agenci do kodowania działający w terminalu. Czytają repozytorium, edytują pliki i uruchamiają polecenia. Używaj ich do zmian w wielu plikach albo do zadań, które wymagają uruchomienia testów.
  • GitHub Desktop to klient Gita na sytuacje, w których nie chcę przechodzić do CLI.

Wszystkie można zainstalować jako pakiety cask w Homebrew:

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

Homebrew nie aktualizuje Claude Code samodzielnie; uruchom brew upgrade claude-code. Jeśli wolisz automatyczne aktualizacje, użyj zamiast tego natywnego instalatora Anthropic: curl -fsSL https://claude.ai/install.sh | bash.

Kontenery i lokalne modele

Pozostałe narzędzia zależą od pracy, którą planuję wykonywać na tej maszynie. Konfiguracja powłoki i Pythona nie zależy od kontenerów ani lokalnych modeli.

  • Docker Desktop to środowisko uruchomieniowe kontenerów, którego używam. Jego licencja jest bezpłatna do użytku osobistego i dla małych firm, które mają mniej niż 250 pracowników i mniej niż $10 mln rocznych przychodów. Większe firmy potrzebują płatnego planu (licencja Docker Desktop).
  • Podman Desktop jest open source i nie ma takiego warunku licencyjnego. Wybierz go, gdy twoja firma przekracza te progi i nie płaci za Dockera.
  • Ollama działa jako usługa w tle z lokalnym API. Wybierz ją, gdy model wywołują skrypty albo aplikacja.
  • LM Studio to aplikacja desktopowa do wyszukiwania, ładowania i porównywania modeli. Wybierz ją, gdy chcesz testować modele ręcznie. Może też udostępniać lokalne API.

Je również można zainstalować jako pakiety cask:

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

Lokalne LLMs w macOS szczegółowo porównuje Ollamę, LM Studio, llama.cpp i MLX-LM.

Powtórz konfigurację na kolejnym Macu

Homebrew potrafi zapisać formuły i pakiety cask z tej konfiguracji w pliku Brewfile i zainstalować je na nowej maszynie:

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

Pierwsze polecenie uruchom na starym Macu; dodaj --force, aby nadpisać istniejący Brewfile. Na nowym Macu zainstaluj Xcode Command Line Tools i Homebrew, wykonaj krok brew shellenv, a potem uruchom drugie polecenie.

Przechowuj Brewfile i kopie .zprofile, .zshrc oraz .p10k.zsh bez sekretów w repozytorium dotfiles. Powtórz instalację Pythona zarządzanego przez uv oraz ręczne kroki dla Oh My Zsh, pluginów, Powerlevel10k i czcionki. Przywróć pliki konfiguracji powłoki po instalacji Oh My Zsh, ponieważ jego instalator nadpisuje .zshrc. Ponownie zastosuj ustawienia terminala i edytora.

Brewfile zapisuje nazwy pakietów bez blokowania ich wersji. Przywrócone pakiety mogą być nowsze; dokumentacja Homebrew Bundle wyjaśnia to ograniczenie.

Materiały źródłowe