apfel - l’outil qui permet d’exploiter l’IA gratuite déjà intégrée au Mac
(apfel.franzai.com)- 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,xargset des scripts shell - Exemple :
$ apfel "What is the capital of Austria?" The capital of Austria is Vienna.
-
Serveur compatible OpenAI
- Fonctionne sur
localhost:11434comme serveur de remplacement OpenAI API - Prend en charge Streaming (SSE), Tool Calling, CORS, response_format: json_object, etc.
- Il suffit de modifier
base_urldans le SDK OpenAI pour l’utiliser avec le même code - Exemple :
client = OpenAI(base_url="http://localhost:11434/v1", api_key="unused")
- Fonctionne sur
-
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
LanguageModelSessiondans 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
Ç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
Je me suis dit : tiens, ça ne marche pas ? Mais ceci fonctionne.
On dirait que les guardrails sont configurés de manière un peu étrange.
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.
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é.
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
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
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
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
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
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
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
Du coup, je me demande quel est exactement le modèle de menace réel
Même des ingénieurs expérimentés passent à côté de ce vecteur d’attaque
À 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
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
Si quelqu’un le crée, j’aimerais vraiment l’utiliser