Billedkilde: We❤️Apple · AI-genereret redaktionel konceptillustration; billedet viser ikke en officiel Apple-brugerflade eller den konkrete Pi-opsætning.

Du kan køre Pi-kodeagenten i Apples container-værktøj uden at installere Node eller npm direkte på din Mac. Opsætningen kræver en Apple Silicon-Mac med macOS 26, en lokal modelserver på værten og et afgrænset projekt, som du bevidst monterer i containeren. Her er den reproducerbare arbejdsgang – inklusive den test, der viser, om grænsen faktisk virker.

Forudsætninger: det skal være på plads først

  • En Mac med Apple Silicon og macOS 26. Apples container-projekt understøtter ikke ældre macOS-versioner.
  • En lokal, OpenAI-kompatibel modelserver med tool calling. Kildeopsætningen bruger port 8080; modellen kører på macOS, mens agentens værktøjer kører i Linux-containeren.
  • Git på værten og et enkelt projekt, agenten må se. Du behøver ikke installere Node eller npm på macOS.
  • En backup eller ren Git-status, før agenten får skriveadgang til projektet.

Containeren er en stærkere grænse end at køre agenten direkte i Terminal, men den er ikke magisk. Det projekt, du monterer med skriveadgang, kan agenten stadig ændre. Montér derfor aldrig hele hjemmemappen, iCloud Drive, ~/.ssh eller mapper med credentials.

Trin 1: Installér Apples container-værktøj

Hent den seneste signerede .pkg fra Apples officielle GitHub-releases, installér den, og start derefter systemtjenesten:

container system start
container --version

En versionslinje bekræfter, at CLI og tjeneste svarer. Hvis starten fejler, skal du først kontrollere Apple Silicon og macOS 26. Tillad også lokal netværksadgang under Systemindstillinger → Anonymitet & sikkerhed → Lokalt netværk, når macOS spørger.

Trin 2: Kontrollér den lokale modelserver

Start din lokale modelserver på værten med en OpenAI-kompatibel endpoint og tool calling. Den skal lytte på 0.0.0.0:8080, ikke kun 127.0.0.1, fordi containeren er en separat virtuel maskine. Kontrollér først fra din Mac:

curl -s http://127.0.0.1:8080/v1/models

Du skal få en model-liste tilbage. Et tomt svar eller timeout betyder, at du skal løse modelserveren, porten eller macOS' netværkstilladelse, før du går videre.

Trin 3: Hent eksempelprojektet og byg agentbilledet

Kildeprojektet indeholder en Containerfile, Pi-konfiguration og små build-/run-scripts. Hent det, gennemgå filerne, og byg derefter billedet:

git clone https://github.com/michaelhannecke/pi-container.git
cd pi-container
./scripts/build.sh

Buildet installerer Node 22 og @mariozechner/pi-coding-agent inde i containerbilledet. Det er derfor “ingen npm på værten” – ikke “ingen npm overhovedet”. Et vellykket build ender med et lokalt image som pi-coding-agent:local.

Trin 4: Find værtsadressen set fra containeren

Containeren kan ikke bruge værtsmaskinens 127.0.0.1. Find i stedet bridge-adressen dynamisk:

container run --rm --entrypoint sh pi-coding-agent:local   -c "ip route | awk '/default/ {print $3}'"

Sæt den viste adresse ind som baseUrl i pi-config/models.json, efterfulgt af :8080/v1. Brug ikke blindt 192.168.64.1; adressen kan ændre sig mellem versioner og netværksopsætninger.

Trin 5: Giv kun adgang til ét projekt

Kør agenten med en eksplicit projektmappe:

PROJECT_DIR="$HOME/Developer/mit-projekt"   ./scripts/run.sh --model mlx-local/gemma4-instruct

run.sh monterer Pi-konfigurationen i agentens hjemmemappe og kun den valgte projektmappe som /workspace. Flaget --rm fjerner containerens skrivbare lag, når sessionen slutter. Ændringer i den monterede projektmappe består naturligvis.

Trin 6: Bevis at grænsen virker

  1. Bed agenten læse en ufarlig fil i projektet. Det bekræfter mount og modelkontakt.
  2. Bed den oprette en midlertidig fil i projektet, og kontrollér ændringen med Git.
  3. Bed den læse en sti uden for /workspace. Den skal ikke have adgang.
  4. Stop sessionen, kør container list --all, og kontrollér, at den midlertidige agentcontainer er væk.

Hvis agenten kan chatte, men ikke bruge værktøjer, skal du kontrollere toolCalling: true og modellens reelle tool-calling-understøttelse. Hvis den ikke kan nå modellen, er de hyppigste årsager manglende lokal netværkstilladelse, binding til loopback eller en forkert bridge-adresse.

Konklusion: den konkrete sikkerhedsregel

Opsætningen er relevant, når du vil have lokal inferens og en disponibel agentruntime uden Node/npm på din daglige Mac. Den vigtigste handling er ikke selve build-kommandoen, men mountet: vælg ét projekt, kontrollér Git-status, og bevis med en test, at agenten ikke kan læse uden for /workspace. Hvis den test ikke består, skal du stoppe – ikke give agenten flere rettigheder.

Kilder

We❤️Apple appen

Apple-alerts, der passer til dig

Vælg dine nyhedsalerts, og få besked når prisen på Apple-produkter falder. Kun det, der er relevant for dig.