Ollama dans le Cloud Mac AI Stack : couche d'inférence privée, pas un jouet local

Quand Claude Code modifie déjà le code et le Runner build déjà — pourquoi garder Ollama en permanence sur le Cloud Mac ?

Cloud Mac AI Stack · L2  ·  2026.06.04  ·  ~14 min  ·  architecture, sans tutoriel d'installation Ollama

Inférence privée Ollama sur Apple Silicon — charge Cloud Mac AI

Dans l'article précédent, nous avons posé L1 (GitHub Runner) : après un git push, il faut un Fact auditable (définition dans Runner · langage Stack). Ensuite, beaucoup d'équipes installent Claude Code sur le même Cloud Mac, font un brew install ollama — et constatent que le codage principal reste à 100 % sur l'API Claude, tandis qu'Ollama tourne à vide et occupe 6–8 Go de mémoire unifiée.

Ce n'est pas « Ollama est inutile », mais la question structurante n'est pas encore tranchée : pourquoi Inference doit être une couche à part, et non un sous-ensemble de Claude Code. Ce texte n'est pas une encyclopédie d'installation Ollama, ni un doublon des mesures 16 Go vs 24 Go ou du comparatif M4 vs GPU cloud ; il fixe seulement la raison d'être, les limites de L2 et le lien avec L3 (Diff) (L3 : poste Claude Code).

Si GitHub Runner répond à « le code passe-t-il vraiment la vérification ? », Ollama répond à « quels Token doivent être inférés sur votre propre Cloud Mac ? » Retenez la paire : Fact vs Inference.

L2
Inference Service
Opt.
pas avant Claude Code
0
étape d'installation

Cloud Mac AI Stack · L2 en une phrase

Runner = execution engine ; Ollama = inference service ; Claude Code = agent de codage.

Livrables : Fact, Inference, Diff. L'essentiel de L2 n'est pas le modèle, mais transformer l'inférence en Inference Service appelable sur la durée (optionnel).

Rôle de L2 dans le Stack

L3 répond « comment modifier le dépôt ? » ; L1 « le changement build-t-il, se signe-t-il, se livre-t-il ? » ; L2 « quels tokens d'inférence ne doivent pas quitter ce nœud macOS ? » Ce n'est pas un remplaçant de Claude, mais une deuxième conduite d'inférence empilable sur Cloud Mac.

Livrable L2 : qu'est-ce qu'Inference

Dans le Cloud Mac AI Stack, nous découpons par livrable, pas par marque d'outil (chaîne complète : Runner · langage Stack) :

Chaîne mnémotechnique · cinq livrables (≠ ordre d'appel)

  Context  →  Inference  →  Diff  →  Fact  →  Workflow
  (MCP)      (Ollama, etc.)  (Claude Code)  (Runner)  (OpenHands)

Le schéma L0–L5 montre les composants ; la chaîne de livrables place Inference à côté de Context/Diff/Fact/Workflow — pas comme « patch transversal »

Inference désigne ici : une passe modèle dans un processus macOS que vous contrôlez — prompt / embedding en entrée, completion / vecteur en sortie, sans API d'inférence tierce (ou l'API ne sert que la voie L3, tandis que L2 traite les tokens qui doivent rester sur machine). Ollama est l'implémentation L2 la plus courante, pas la seule ; Core ML et MLX couvrent une partie d'Inference, mais l'écosystème et l'exploitation Ollama sont plus homogènes — d'où Ollama comme récit par défaut de L2.

Forme L2 : Inference Service, pas un ollama run occasionnel

Parler seulement d'Inference laisse penser à « encore un outil de modèle local ». Dans le Stack, nous insistons sur la forme système — chaque niveau = un rôle durable :

Niveau Composant Forme Livrable
L1 GitHub Runner Execution Engine Fact
L2 Ollama (etc.) Inference Service Inference
L3 Claude Code Agent de codage Diff

L'écart entre ollama run qwen3:8b et ollama serve + health checks + cron, c'est comme « lancer un test à la main en SSH » vs « Runner qui écoute les push » :

ollama run          →  inférence ponctuelle au terminal (essai)
Inference Service   →  port 11434 permanent, modèle épinglé, appels Runner / scripts / agents

L'essentiel de L2 n'est pas le modèle, mais un Service d'inférence appelable sur la durée. Le modèle peut changer ; interface, appelants, créneaux et observabilité sont ce que le Stack doit figer.

Pourquoi Inference est une couche L2 à part, pas un sous-ensemble de Claude Code

Question fréquente : « l'API Claude, ce n'est pas de l'inférence ? » Oui — mais le Cloud Mac AI Stack découpe par livrable, pas par « présence d'un réseau de neurones ».

Claude Code produit le Diff — quels fichiers, quel patch dans la PR. Inference produit des Token — toute sortie texte ou vecteur d'une passe modèle. Le Diff n'est qu'un usage des Token.

D'autres tâches Inference, hors voie principale « agent de codage » :

  • résumé, classification, revue, routage de logs
  • embedding, RAG, rerank
  • mémoire agent, nettoyage de base de connaissances
  • traitements nocturnes, rapports planifiés

Donc :

Claude Code  ⊂  un des scénarios Inference

et non :

Inference  ⊂  Claude Code

Isoler L2 n'est pas dire qu'Ollama est « plus bas » que Claude — c'est reconnaître plusieurs conduites d'inférence sur le même Cloud Mac : L3 via API pour le Diff ; L2 sur machine pour les Token qui doivent rester privés ; en parallèle. Fusionner Inference dans Claude Code fait croire que « Claude installé = couche inférence complète » — source typique d'Ollama à vide.

Ollama vs Claude Code : pourquoi ce n'est pas un choix binaire

On lit « Ollama ou Claude Code » — dans le Stack, la question est mal posée. Livrables différents, pas substitution.

Dimension Claude Code (L3) Ollama (L2)
Livrable Diff Inference
Forme Agent (codage à la demande) Inference Service (peut tourner 24/7)
Compute souvent API Claude local (localhost:11434, etc.)
Tâches typiques codage, patch, dépôt résumés, embedding, classification, batch nocturne, sous-tâches conformité
Rythme à la demande : vous ouvrez l'agent résident : cron / sidecar en continu
Dans le Stack voie principale (code) sous-tâches et pipeline privé (pas avant L3 au boot)

Règle pratique : codage → Claude Code ; « quels tokens ne sortent pas de la machine, quoi lancer à heure fixe » → Ollama. Le scheduling mémoire sur une même machine est dans la suite L2-Q03 ; ici : pas binaire.

« Jouer avec un modèle » vs couche d'inférence privée

Même commande ollama run qwen3:8b, deux intentions, deux architectures :

Dimension Essai perso L2 · Inference Service
Objectif prompts, tok/s, capture d'écran charges fixes : résumé conformité, logs, embedding, batch nocturne
CI aucun lien décalage avec L1 Runner (CI jour, inférence nuit), budget L0 partagé
L3 « local OU Claude » parallèle : code via API, sous-tâches via localhost:11434
Succès le modèle répond SLA : latence, version pin, alerte, tokens sur machine
Machine portable fermé → stop Cloud Mac 24/7 : service observable avec Runner / Agent

En bref : l'essai demande « ça tourne ? » ; L2 demande « quoi, quand, qui consomme la sortie ? » Sans charge qui exige une Inference privée, sautez L2 — pas besoin d'Ollama pour « compléter » le Stack.

L2 face à L1 / L3

Frontières souvent confondues :

Niveau Composant Sortie Question
L1 GitHub Runner Fact Ce commit build-t-il, teste-t-il, s'archive-t-il ?
L2 Ollama (etc.) Inference (via Inference Service) Quelle inférence doit rester sur ce nœud, rappelable par Runner / agents ?
L3 Claude Code Diff (forme Agent) Comment modifier le dépôt ? (souvent API Claude)

L2 ne produit ni Diff ni Fact. Pas de PR verte magique, pas de remplacement de xcodebuild. Schéma courant : Claude Code modifie → Runner vérifie → step ou sidecar appelle Ollama pour résumé de logs, motifs de faille, embedding privé vers un index — sortie vers Context (L4) ou revue humaine, pas « build OK ».

L2 sur le schéma cinq niveaux : niveau ≠ ordre d'appel

Schéma commun : Runner · cinq niveaux. Ollama sous Claude Code = Inference porte la charge « compute privé », pas « démarrer Ollama avant Claude Code ».

Extrait · schéma complet dans l'article Runner

  Claude Code  L3 · Diff
       ↑  parallèle, pas dépendance
  Ollama       L2 · Inference Service (optionnel)
       ↑
  GitHub Runner L1 · Fact
       ↑
  Cloud Mac    L0 · infrastructure

API Claude et Ollama coexistent — l'une pour le Diff, l'autre pour l'Inference locale. Ce n'est pas « le modèle local remplace Claude » ; c'est la frontière entre Cloud Mac AI Stack et un produit « tout-en-un chat » sur une seule machine.

Au-delà de la conformité : valeur du calcul continu L2

L2 est souvent réduit à la finance / santé / grand compte — la conformité compte, mais beaucoup d'utilisateurs Cloud Mac sont indés, fondateurs AI, petites équipes sans ticket compliance, avec pourtant besoin de L2.

La différence est la forme de travail :

Claude Code (L3) · à la demande
  vous l'ouvrez → inférence
  vous quittez → voie principale en pause

Ollama (L2) · peut être 24/7
  processus résident → cron / sidecar
  indépendant du terminal ouvert

Ce ne sont ni dialogue agent, ni CI, ni coding quotidien, mais de vrais services d'inférence longue durée :

  • résumé horaire des logs Runner / applicatifs
  • rebuild embedding et nettoyage de nuit
  • rapport automatique, tri d'anomalies, brouillons de routage
  • mise à jour Context (L4) quand Claude Code est offline

Portable fermé = difficile à traiter en infra ; avec L1 en décalage, Fact le jour et Inference la nuit, souvent plus réaliste qu'une GPU cloud à l'heure — si L2 est un Service, pas un terminal ouvert de temps en temps.

Mac local exécute, Cloud Mac opère

« Mon Mac mini fait aussi brew install ollama — pourquoi Cloud Mac ? » Exact : Mac local = peut exécuter ; cet article parle de opérer comme infrastructure.

Dimension Mac local / portable Cloud Mac (L0)
Disponibilité capot fermé, veille, déplacement → arrêt 24/7, sortie réseau stable
Stack Ollama souvent isolé même nœud que Runner, Claude Code — observabilité, décalage horaire
Forme L2 souvent ollama run en essai Inference Service : health check, pin de modèle, sidecar / cron
Dépendants souvent vous seul CI, agents, tâches planifiées, scripts d'équipe

Ollama n'existe pas grâce à Cloud Mac ; la valeur Cloud Mac, c'est de passer d'une commande terminal à un Inference Service 24/7 observable, planifiable, partagé par Runner et agents. Sinon on lit « encore un article Ollama », pas pourquoi empiler l'inférence privée dans le Cloud Mac AI Stack.

Choix L0 : Cloud Mac vs poste Mac local AI ; pas de fiche location ici — seulement : dans le récit Stack, L2 vit sur un nœud « opérable ».

Charges de travail à brancher sur L2

Signaux pour traiter Ollama comme infra L2 (pas démo) :

  • Conformité / air gap — code et logs sur Cloud Mac, mais requêtes d'inférence hors API publique ; L2 pour sous-tâches déjà dé-sensibilisées (classification, résumé, PII).
  • Embedding / rerank — pipeline CodeGraph ou RAG avec modèle local version pin stable, sans embedding API ni chemin de données flou.
  • Haute fréquence, petit modèle, batch — ex. classement des logs CI chaque nuit ; 7B–14B quantifiés sur Apple Silicon, coût prévisible (cf. nœud fixe vs GPU à l'heure).
  • Décalage avec L3 — Claude Code + Runner le jour ; batch Ollama la nuit sur 24 Go sans tout charger en même temps.
  • Voie rapide multi-agents — gros changements via Claude ; routage, classification, brouillon en 8B local (même logique que certains agents desktop — note OpenHuman).

À l'inverse, iOS seulement, codage 100 % API Claude, aucune inférence locale planifiée : priorité L2 sous L1 Runner — d'abord un Fact sur chaque push, puis Inference privée.

Ordre de lecture : Runner → Ollama → Claude Code

Si vous suivez la série Stack par livrable :

  1. L1 · FactGitHub Runner execution engine : après push, build, tests, livraison réels.
  2. L2 · Inference Service — cet article : quels Token restent sur Cloud Mac, en forme de service.
  3. L3 · Diffposte Claude Code : comment modifier le dépôt (souvent API).

Base et choix : Cloud Mac vs Mac local AI. Context (L4) et CodeGraph relieront plus tard les sorties Inference.

Erreur classique : Ollama installé, Stack = API seulement

  1. brew install ollama sur Cloud Mac, deux modèles — « la stack AI est complète ».
  2. Le quotidien reste Claude Code + API Anthropic ; Ollama sans appel script ou agent une semaine.
  3. Mémoire occupée par des modèles dormants ; Claude Code et Runner se disputent le reste, swap en hausse (cf. 16 Go vs 24 Go).
  4. « Pourquoi Cloud Mac ? » — L0 = machine sans charge L2 définie.

Correction : pas une GUI de plus, mais 1–2 pipelines obligatoirement L2 (ex. résumé d'échec CI uniquement via Ollama ; embedding uniquement via nomic-embed-text), version pin, health check sur 11434. Le « planning parallèle » = L2-Q03 · scheduling mémoire.

Qui peut sauter L2

Bon candidat pour L2 (Ollama sur Cloud Mac) Peut reporter L2
inférence qui ne quitte pas la machine, sous-tâches air gap codage et revue 100 % API Claude
RAG / CodeGraph avec embedding local pas d'index vectoriel, pas de batch local
7B–14B pour petites tâches fréquentes, moins de tokens API chat occasionnel pour essayer un modèle
mémoire planifiée avec L1 (CI jour / inférence nuit) machine = Claude Code seul, sans Runner ni pipeline
indé / petite équipe : logs, embedding, rapports 24/7 aucun cron ou sidecar n'appelle le modèle local

Plusieurs longs formats « Ollama » coexistent — répartition pour éviter le doublon perçu :

Déploiement : Fact, puis Inference

Aligné sur Runner · ordre de déploiement :

  1. L0 — Cloud Mac macOS permanent.
  2. L1 — Runner, push → vert/rouge reproductible.
  3. L2 — Ollama uniquement sur pipelines Inference privés déjà définis (cet article).
  4. L3–L5 — Claude Code, MCP, OpenHands après Fact + (optionnel) Inference stable.

L2 avant L1 : beaux résumés locaux, xcodebuild qui échoue encore sur Linux — Inference ne remplace pas Fact.

Série thématique L2

Cet article = fondation L2 (rôle et limites). Suite :

Volet Sujet Statut
· cet article Ollama comme couche d'inférence privée (Inference) publié
· Publié Sur Mac mini, planifier les workloads IA : éviter le swap avec Ollama, Claude Code et GitHub Runner Publié
pin de modèle, health checks, appels Ollama côté CI prévu

Schéma global : Cloud Mac AI Stack · cinq niveaux.

FAQ

L'API Claude fait aussi de l'inférence — pourquoi une couche Inference ?
Claude Code produit le Diff ; L2 produit des Token (résumés, embedding, batch, etc.). Claude Code ⊂ scénarios Inference, pas l'inverse.

Ollama et Claude Code — choix exclusif ?
Non. Codage L3 via API ; inférence locale ou planifiée → L2. Voir tableau comparatif.

Installer Ollama avant Claude Code ?
Non. L2 optionnel, parallèle à L3.

Sans conformité, L2 utile ?
Oui pour inférence 24/7 (logs, embedding, rapports) — indés et petites équipes inclus ; essai occasionnel → sautez L2.

Mac mini local fait tourner Ollama — pourquoi Cloud Mac ?
Local = exécuter ; Cloud Mac = opérer un Inference Service — 24/7, même stack Runner/Agent, planifiable. Voir Mac local vs Cloud Mac.

Ollama ou GitHub Runner en premier ?
Conseil : L1 puis L2. Le schéma vertical = responsabilités, pas ordre de boot.

Différence avec 16 Go vs 24 Go ?
Ici = position Stack ; mémoire → 16 Go vs 24 Go ; coût → M4 vs GPU cloud.

Série L2 · suite

Sur Mac mini, planifier les workloads IA : éviter le swap avec Ollama, Claude Code et GitHub Runner

L2-Q03 · Couche de scheduling mémoire : scheduling pour swap et CI lente — runbook 30 s inclus.

Lire L2-Q03 · AI Workload Scheduling
Inférence privée Tarifs Cloud Mac