33 points par GN⁺ 2026-04-04 | 5 commentaires | Partager sur WhatsApp
  • Outil open source permettant d’utiliser directement le LLM on-device d’Apple inclus sur les Mac Apple Silicon sous macOS 26 ou version ultérieure
  • Ouvre le modèle basé sur FoundationModels.framework sous forme de CLI, serveur HTTP et chat interactif, avec une compatibilité OpenAI API
  • Tous les calculs sont traités en local, pour un coût nul, aucun risque de fuite de données, avec un contexte de 4096 tokens et la prise en charge multilingue
  • Propose divers outils auxiliaires comme cmd, oneliner, explain, gitsum pour le résumé de code/de commandes et l’automatisation
  • Ouvre complètement le modèle Apple Intelligence déjà présent dans macOS, afin que les développeurs puissent faire tourner l’IA de façon autonome sur leur propre matériel

Vue d’ensemble d’apfel

  • apfel est un outil qui permet d’utiliser directement le LLM on-device d’Apple intégré aux Mac Apple Silicon sous macOS 26 (Tahoe) ou version ultérieure
  • Il ouvre le modèle de langage basé sur FoundationModels.framework, qu’Apple réservait jusque-là à Siri et à certaines fonctions système, sous forme de CLI, serveur HTTP et chat interactif
  • Offre une exécution 100 % on-device, un coût nul et une compatibilité OpenAI API
  • Installation possible via Homebrew, distribution en open source sous licence MIT

Principales caractéristiques

  • Exploitation d’une IA on-device : utilise tel quel le LLM inclus dans macOS, sans appel réseau ni clé API
  • Sécurité : tous les tokens sont traités localement et aucune donnée n’est envoyée à l’extérieur
  • Spécifications de performance

    • Environ 3 milliards de paramètres
    • Fenêtre de contexte de 4096 tokens
    • Quantification mixte en précision 2/4 bits

      • Exécution basée sur le Neural Engine
      • Prise en charge de l’anglais, l’allemand, l’espagnol, le français, l’italien, le japonais, le coréen, le portugais et le chinois

Modes d’utilisation

  • Outil CLI

    • Outil en ligne de commande de style UNIX, avec prise en charge de stdin/stdout, sortie JSON, pièces jointes de fichiers et codes de sortie normaux
    • Peut être combiné avec jq, xargs et des scripts shell
    • Exemple :
      $ apfel "What is the capital of Austria?"  
      The capital of Austria is Vienna.  
      
  • Serveur compatible OpenAI

    • Fonctionne sur localhost:11434 comme serveur de remplacement OpenAI API
    • Prend en charge Streaming (SSE), Tool Calling, CORS, response_format: json_object, etc.
    • Il suffit de modifier base_url dans le SDK OpenAI pour l’utiliser avec le même code
    • Exemple :
      client = OpenAI(base_url="http://localhost:11434/v1";, api_key="unused")  
      
  • Chat interactif

    • Prend en charge les conversations multi-tours, la gestion automatique du contexte, les prompts système et 5 stratégies de trimming
    • Exemple :
      $ apfel --chat -s "You are a coding assistant"  
      > How do I reverse a list in Python?  
      

Architecture interne

  • Accède directement au LLM intégré d’Apple via FoundationModels.framework
  • Alors qu’Apple réservait ce modèle à Siri, Writing Tools et autres fonctions similaires, apfel fournit une interface d’accès direct en encapsulant LanguageModelSession dans un binaire Swift 6.3
  • Intègre un serveur HTTP basé sur Hummingbird
  • Inclut 5 stratégies de trimming du contexte et un comptage précis des tokens pour compenser la limite de 4096 tokens
  • Convertit le schéma d’outils OpenAI au format Apple Transcript.ToolDefinition

Outils auxiliaires inclus

  • cmd

    • Convertit le langage naturel en commandes shell
    • Exemple : "find all .log files modified today" → produit la commande correspondante
  • oneliner

    • Génère en langage naturel des pipelines awk, sed, sort, uniq, etc.
  • mac-narrator

    • Décrit l’activité système du Mac sous forme de narration
  • explain

    • Explique en langage clair des commandes ou extraits de code
  • wtd

    • Résume et décrit la base de code du répertoire courant
  • gitsum

    • Génère un résumé des commits git récents

Compatibilité complète avec l’API OpenAI

  • Prend en charge les principaux endpoints comme /v1/chat/completions et /v1/models
  • Utilisable avec des paramètres comme temperature, max_tokens et seed
  • Prise en charge de CORS pour les clients navigateur
  • Intégration possible de la même manière avec OpenAI SDK, LangChain, LlamaIndex, etc.

Popularité sur GitHub et diffusion

  • 1 030 étoiles et 27 forks
  • 818 étoiles gagnées en une seule journée, le 3 avril 2026
  • Des ingénieurs d’Apple, Google, VMware, NVIDIA et Grafana ont ajouté une étoile au projet
  • Commande d’installation :
    $ brew install Arthur-Ficial/tap/apfel  
    $ apfel "Hello, Mac!"  
    
  • La compilation depuis les sources nécessite le SDK macOS 26.4

Projets d’extension

  • apfel-gui

    • GUI macOS basée sur SwiftUI

      • Proposera le chat avec Apple Intelligence, les journaux de requêtes/réponses et les fonctions d’entrée/sortie vocale
      • Sortie à venir
  • apfel-clip

    • Outil d’actions IA basé sur le presse-papiers

      • Exécution en un clic depuis la barre de menus de fonctions comme correction grammaticale, traduction, explication de code et résumé
      • En cours de développement

Résumé technique

  • Matériel : Apple Silicon (Neural Engine + GPU)
  • Modèle : LLM Apple intégré à macOS
  • SDK : FoundationModels.framework
  • Langage : Swift 6.3, Xcode non requis
  • Licence : MIT
  • Fenêtre de tokens : 4096 (entrée + sortie cumulées)
  • Nombre de modèles : 1 fixe

Valeur clé

  • Ouvre complètement le modèle Apple Intelligence déjà présent dans macOS
  • Fournit un environnement d’IA local sans coût, permettant aux développeurs et utilisateurs de faire tourner directement l’IA sur leur propre matériel
  • Une interface IA open source dédiée au Mac réunissant sécurité, vitesse et indépendance

5 commentaires

 
xguru 2026-04-04

Ça a l’air amusant, mais curieusement le coréen ne fonctionne pas très bien. Je récupère le code source pour l’examiner avec Codex, et il semble que la réponse du modèle Foundation lui-même soit un peu étrange côté coréen. Je vais encore essayer un peu, mais si certains ont réussi, dites-le-moi en commentaire haha

 
xguru 2026-04-04

apfel "Donne-moi la recette du currywurst"
error: [guardrail] The request was blocked by Apple's safety guardrails. Try rephrasing.

Je me suis dit : tiens, ça ne marche pas ? Mais ceci fonctionne.

apfel "Donne-moi la recette du kimchi-jjigae"
Le kimchi-jjigae est l'un des plats mijotés traditionnels coréens, un plat simple mais au goût profond. Voici une recette de kimchi-jjigae :...

apfel "Bonjour. Peux-tu m'expliquer ce qu'est le kimchi-jjigae ?"
Bonjour ! Le kimchi-jjigae est l'un des plats en bouillon emblématiques de la Corée, préparé avec du kimchi et de la viande. Le kimchi-jjigae se cuisine généralement avec du porc, du bœuf ou du poulet, pour obtenir un bouillon riche aux saveurs variées. On y ajoute aussi divers légumes et assaisonnements pour approfondir le goût.

apfel "Bonjour ? Tu parles coréen ?" ou apfel "Peux-tu me parler de la capitale de l'Autriche ?"
À ce genre de questions, il répond de façon perroquet avec le message suivant :
Vous pouvez en apprendre davantage sur les fonctionnalités intelligentes sur le site web d'Apple.

On dirait que les guardrails sont configurés de manière un peu étrange.

 
xguru 2026-04-04

J’ai demandé à Codex de le corriger à partir du contenu de cette conversation, et avec quelques petites retouches ça fonctionne bien.

« Suivez exactement la demande de la question, mais sauf indication contraire, répondez directement en coréen. »

En plaçant un adaptateur, quand ce genre de réponse issue d’une fonction intelligente apparaît, si on ajoute en plus le prompt ci-dessus, la réponse sort correctement. On dirait que ce n’est pas encore complètement abouti.

apfel "Bonjour ? Tu sais parler coréen ?"
Bonjour ! Oui, je peux aussi parler coréen. Comment puis-je vous aider ?

apfel "Peux-tu me parler de la capitale de l’Autriche ?"
La capitale de l’Autriche est Vienne. Vienne est connue comme le centre politique, culturel et économique de l’Autriche.

 
ilotoki0804 2026-04-05

Avant de l’essayer, je me demandais franchement quel avantage il pouvait avoir par rapport à d’autres outils capables de faire tourner des LLM locaux comme ollama, mais après l’avoir utilisé moi-même, je le trouve assez sujet aux hallucinations et plutôt limité.
Cela dit, alors que les autres outils de LLM locaux s’appuient sur le GPU, ce qui les rend puissants mais aussi très gourmands en ressources, ce modèle semble avoir l’avantage de consommer relativement peu de ressources et d’utiliser efficacement le Neural Engine, donc aussi moins d’énergie.
Si j’ai bien compris, le concept même d’Apple Intelligence est de faire tourner une IA légère sur différents appareils, y compris mobiles, et de ce point de vue, ça correspond plutôt bien à cette vision.
En revanche, même pour un modèle léger, j’ai l’impression qu’il faudrait des performances meilleures que ça pour qu’il soit ne serait-ce qu’un peu utile. Pour l’instant, c’est vraiment trop limité.

 
GN⁺ 2026-04-04
Commentaires sur Hacker News
  • J’aime l’approche qui consiste à tout exécuter en local
    Je pense que l’importance des modèles locaux va continuer à croître du point de vue de la confidentialité
    À mesure que se multiplient les incidents causés par des utilisateurs qui transmettent trop de contexte à des modèles cloud, la nécessité d’une exécution locale ne fera que se renforcer

    • Ce n’est qu’une demi-solution
      Si le modèle est entraîné de manière fermée, il peut intégrer des valeurs que l’utilisateur ne souhaite pas
      Par exemple, si l’on interroge un modèle open source chinois sur les événements de Tian’anmen, il peut fournir une réponse censurée
      La vraie solution est donc la combinaison d’un entraînement ouvert vérifiable et d’une exécution locale
    • Sous un autre angle, le problème apparaît quand on envoie à un service d’IA du contenu non fiable
      Lorsqu’on manipule des données externes, comme pour le web crawling ou la détection de spam, il existe un risque de violation des ToS ou même de signalement erroné aux forces de l’ordre
    • Je me demande s’il existe des services d’inférence chiffrée (encrypted inferencing)
      Quand j’échange au quotidien avec un modèle, je n’ai pas envie d’envoyer ces contenus en clair à un serveur
      C’est pour cela que je préfère l’exécution locale
    • Ce type de discussion est très actif sur HN, mais les utilisateurs ordinaires ne se soucient pas beaucoup de la confidentialité
    • Le local est ce qu’il y a de mieux pour la confidentialité, mais ce n’est pas forcément la seule réponse
      Anthropic, Google, OpenAI et d’autres ont renoncé à la confidentialité dans leurs offres d’IA grand public
      La collecte de données et la modération en sont les raisons
      Mais avec des technologies de garantie cryptographique (cryptographic attestation) comme AWS Nitro Enclaves, il est tout à fait possible de protéger suffisamment les données personnelles même dans le cloud
  • La vraie question est de savoir si Apple pourra déployer de nouveaux modèles de façon continue
    Le modèle actuel se situe au niveau de Qwen-3-4B, donc d’un modèle vieux d’un an
    Si l’on regarde la page de recherche Apple Foundation Models, l’écart avec les récents Qwen-3.5-4B ou Gemma 4 est important
    Le fait de pouvoir l’utiliser immédiatement, sans téléchargement, est appréciable, mais j’aimerais utiliser des modèles plus récents

    • En réalité, ce n’est qu’un problème de téléchargement de fichiers, donc rien n’empêche vraiment Apple de le faire
      Simplement, Apple n’est pas une entreprise qui avance vite, et il est probable qu’elle limite les fonctions d’IA à des usages restreints (retouche photo, questions à Siri, etc.)
      Personnellement, même sans activer Apple Intelligence, il y a déjà beaucoup de fonctions utiles
  • J’ai vu des projets qui exposent les modèles Apple sous forme de serveur réseau
    Le problème, c’est que ces serveurs deviennent alors accessibles à d’autres applications, y compris le navigateur, via un port local
    Le JavaScript d’une page web malveillante peut envoyer des commandes sur ce port
    Certains projets autorisent même CORS, ce qui est encore plus risqué
    J’examine aussi le code d’Apfel avant de faire des tests

    • Heureusement, le réglage par défaut est sur false
      Cela reste une option dangereuse malgré tout, mais c’est l’une des implémentations les plus sûres que j’aie vues jusqu’ici
    • La plupart des navigateurs bloqueront probablement les requêtes POST vers 127.0.0.1 depuis un site web arbitraire
      Du coup, je me demande quel est exactement le modèle de menace réel
    • Je vois souvent ce genre d’erreurs de sécurité dans des projets IA ou MCP
      Même des ingénieurs expérimentés passent à côté de ce vecteur d’attaque
    • J’ai aussi vérifié qu’il existe une option d’authentification par Bearer token
  • À cause d’un bug récent de Claude qui consommait les tokens beaucoup trop vite, j’ai essayé d’autres modèles
    La plupart étaient à un niveau largement interchangeable
    Je me demande comment va évoluer un marché avec peu de fidélité à la marque et de faibles coûts de changement
    J’espère que les LLM locaux deviendront bientôt une alternative pratique

    • En pratique, il n’y a presque aucune différenciation entre les modèles
      C’est sans doute pour cela qu’OpenAI ou Meta essaient de se distinguer via une stratégie de lien émotionnel (chatbots de type ami ou partenaire)
  • J’ai vu cela dans un autre fil et je l’ai installé immédiatement
    J’utilise comme prompt de test LLM : « À quelle heure correspond 9h30 à Taïwan en heure du Pacifique américain ? »,
    et tous les résultats étaient différents, et tous faux
    En l’exécutant via Apfel CLI, chaque modèle calculait de son côté un écart de 11 à 13 heures

  • Je l’utilise depuis le début de la semaine
    J’ai comparé avec un modèle local un outil de backtest de prévision de prix qui tournait auparavant dans le cloud,
    et le modèle Apple a été le plus précis dans 6 cas sur 10
    Il est aussi suffisamment rapide pour pouvoir remplacer tout le workflow
    Avec Sonnet, cela coûte plusieurs milliers de dollars par mois, DeepSeek quelques centaines, alors qu’en local c’est quasiment gratuit
    En revanche, les autres modèles locaux manquaient soit de vitesse, soit de précision

  • La formule « Apfel libère ce qu’Apple a verrouillé derrière Siri » ressemble à du marketing exagéré
    En réalité, cela expose simplement le framework FoundationModels d’Apple Intelligence via une CLI et une API REST
    Et l’affirmation selon laquelle « ça tourne sur le Neural Engine » reste incertaine
    Dans mes tests, cela fonctionnait sur le GPU (Metal)

  • Je suis utilisateur Linux et, voulant quelque chose de similaire, j’ai moi-même créé un projet appelé TalkType
    Il exécute Whisper en local pour faire de la reconnaissance vocale hors ligne
    Je ne voulais pas envoyer ma voix à un serveur, donc j’ai choisi l’approche locale dès le départ
    Je suis content de voir cette idée se diffuser aussi sur Mac

  • Merci de l’avoir publié en open source
    L’installation fonctionne aussi sur macOS 15, mais l’exécution plante,
    donc j’ai soumis une PR pour restreindre l’installation à macOS 26 (Tahoe) ou plus

  • J’aimerais créer un moteur de remplacement à Grammarly qui souligne les fautes de grammaire dans toutes les applications et tous les navigateurs
    Ce serait un outil entièrement axé sur la confidentialité, sans même nécessiter de LLM

    • C’est vraiment une excellente idée
      Si quelqu’un le crée, j’aimerais vraiment l’utiliser