﻿﻿{"id":2675,"date":"2026-04-05T09:24:06","date_gmt":"2026-04-05T07:24:06","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/apfel-le-llm-cache-de-votre-mac-enfin-libere\/"},"modified":"2026-04-05T09:24:06","modified_gmt":"2026-04-05T07:24:06","slug":"apfel-le-llm-cache-de-votre-mac-enfin-libere","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/apfel-le-llm-cache-de-votre-mac-enfin-libere\/","title":{"rendered":"Apfel &#8211; Le LLM cach\u00e9 de votre Mac enfin lib\u00e9r\u00e9"},"content":{"rendered":"<p>J&#8217;sais pas si vous saviez mais Apple a planqu\u00e9 un LLM dans votre Mac et ne veut pas que vous y touchiez&#8230; enfin, pas directement. En effet, leur mod\u00e8le est l\u00e0, int\u00e9gr\u00e9 au syst\u00e8me via le framework <strong>FoundationModels<\/strong>, il tourne sur le Neural Engine sans connexion internet mais Apple l&#8217;a verrouill\u00e9 derri\u00e8re Siri. Du coup, impossible de l&#8217;appeler depuis un script ou un pipe shell et c&#8217;est l\u00e0 qu&#8217;<br \/>\n<a href=\"https:\/\/github.com\/Arthur-Ficial\/apfel\">apfel<\/a><br \/>\nintervient !<\/p>\n<p>L&#8217;outil s&#8217;installe en une commande :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">brew install Arthur-Ficial\/tap\/apfel\n<\/span><\/span><\/code><\/pre>\n<p>Et hop, vous avez acc\u00e8s au mod\u00e8le directement depuis votre terminal. Faut Apple Intelligence actif \u00e9galement, sinon, \u00e7a ne fonctionnera pas.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/apfel-ia-mac-apple-silicon\/apfel-ia-mac-apple-silicon-2.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Ensuite, vous lui posez une question, et il vous r\u00e9pond. Vous lui &#8220;pipez&#8221; un fichier, et il le traite. Et le tout sans rien t\u00e9l\u00e9charger puisque le mod\u00e8le est d\u00e9j\u00e0 sur votre machine !<\/p>\n<p>C&#8217;est un LLM de 3 milliards de param\u00e8tres, quantifi\u00e9 en 2 et 4 bits, qui tourne nativement sur la puce Apple Silicon (M1 et au-del\u00e0) et il se d\u00e9fend plut\u00f4t bien face \u00e0 Qwen-2.5-3B, si on en croit les benchmarks. La fen\u00eatre de contexte est limit\u00e9e \u00e0 4096 tokens (entr\u00e9e + sortie combin\u00e9es), soit environ 3000 mots, donc faut pas esp\u00e9rer lui faire dig\u00e9rer un roman mais pour transformer du texte, classifier des donn\u00e9es ou r\u00e9sumer un paragraphe&#8230; \u00e7a fait bien le taf.<\/p>\n<p>Apfel expose donc ce mod\u00e8le de trois fa\u00e7ons diff\u00e9rentes. En CLI pure (compatible stdin\/stdout, sortie JSON, codes d&#8217;erreur propres), en serveur HTTP compatible OpenAI sur localhost:11434 (avec streaming SSE, tool calling et CORS activ\u00e9), et en chat interactif multi-turn.<\/p>\n<p>Le serveur OpenAI c&#8217;est malin parce que d&#8217;un coup, tous vos outils savent causer \u00e0 l&#8217;API OpenAI (Cursor, Continue.dev, n&#8217;importe quel SDK) et peuvent utiliser l&#8217;IA locale de votre Mac sans rien changer \u00e0 leur code. Et le support MCP (Model Context Protocol) natif c&#8217;est tr\u00e8s chouette aussi puisqu&#8217;il suffit de lancer apfel avec le flag <code>--mcp<\/code>, pour qu&#8217;il d\u00e9couvre automatiquement les outils disponibles, ex\u00e9cute les appels et renvoie les r\u00e9sultats.<\/p>\n<p>D&#8217;ailleurs c\u00f4t\u00e9 vie priv\u00e9e, c&#8217;est du b\u00e9ton arm\u00e9 car le framework FoundationModels d&#8217;Apple n&#8217;a pas acc\u00e8s \u00e0 vos contacts, emails, calendrier ou photos et tout tourne sur le Neural Engine et le GPU, sans connexion internet.<\/p>\n<p>Si vous avez d\u00e9j\u00e0 bidouill\u00e9 avec<br \/>\n<a href=\"https:\/\/korben.info\/mocolamma-ollama-gestion-iphone-ia-locale.html\">Ollama et les mod\u00e8les locaux<\/a><br \/>\n, apfel c&#8217;est un peu la m\u00eame philosophie&#8230; sauf que l\u00e0 vous n&#8217;avez rien \u00e0 t\u00e9l\u00e9charger et contrairement \u00e0<br \/>\n<a href=\"https:\/\/korben.info\/perspective-intelligence-web-community.html\">Perspective Intelligence<\/a><br \/>\nqui transforme votre Mac en serveur web avec PostgreSQL et tout le tralala, apfel reste hyper minimaliste.<\/p>\n<p>\n<img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/apfel-ia-mac-apple-silicon\/apfel-ia-mac-apple-silicon-3.png\" alt=\"\" loading=\"lazy\">\n<\/p>\n<p>Attention quand m\u00eame, faut \u00eatre sous macOS 26 Tahoe minimum donc si vous \u00eates encore sous Sequoia 15.x ou Ventura 13.x, c&#8217;est mort, le framework FoundationModels n&#8217;existe pas sur ces versions. Et si vous avez un Mac Intel&#8230; ben non plus, le Neural Engine c&#8217;est Apple Silicon only.<\/p>\n<p>Le projet inclut aussi des scripts d\u00e9mo sympas dans le dossier <code>demo\/<\/code>.<\/p>\n<p>Y&#8217;a par exemple <code>cmd<\/code> qui convertit du langage naturel en commandes shell, <code>explain<\/code> qui d\u00e9cortique les messages d&#8217;erreur, <code>gitsum<\/code> qui r\u00e9sume vos commits r\u00e9cents, ou encore <code>mac-narrator<\/code> qui commente l&#8217;activit\u00e9 de votre syst\u00e8me en temps r\u00e9el (c&#8217;est votre Mac qui se raconte \u00e0 lui-m\u00eame).<\/p>\n<p>Perso, <code>cmd<\/code> c&#8217;est celui qui m&#8217;a le plus plu, m\u00eame si bon, avec 4096 tokens de contexte, faut pas lui demander des commandes <code>ffmpeg<\/code> de 200 caract\u00e8res.<\/p>\n<p>Mais au-del\u00e0 des d\u00e9mos, c&#8217;est en vrai que \u00e7a devient fun. Je vous montre quelques usages classiques d&#8217;abord :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">apfel -f README.md \"R\u00e9sume ce projet en 3 phrases\"\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apfel -f code.py -s \"Tu es un d\u00e9veloppeur exp\u00e9riment\u00e9\" \"Trouve les bugs\"\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">echo \"Traduis \u00e7a en allemand : Salut\" | apfel\n<\/span><\/span><\/code><\/pre>\n<p>Et les trucs un peu plus funs :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">git diff HEAD~1 | apfel -f CONVENTIONS.md \"Review ce diff par rapport \u00e0 mes conventions\"\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apfel -f old.swift -f new.swift \"Qu'est-ce qui a chang\u00e9 entre ces deux fichiers ?\"\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">demo\/oneliner \"compte les IPs uniques dans access.log\"\n<\/span><\/span><\/code><\/pre>\n<p>Vous pouvez m\u00eame piper la sortie en JSON pour cha\u00eener avec <code>jq<\/code>, ou lancer le mode <code>--serve<\/code> et brancher Cursor dessus pour avoir de l&#8217;autocompl\u00e9tion locale gratuite. Et si vous \u00eates du genre parano, le mode <code>--chat<\/code> avec <code>--context-strategy summarize<\/code> g\u00e8re automatiquement le contexte quand la conversation d\u00e9passe les 4096 tokens.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/apfel-ia-mac-apple-silicon\/apfel-ia-mac-apple-silicon-4.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Et c\u00f4t\u00e9 \u00e9cosyst\u00e8me, y&#8217;a aussi<br \/>\n<a href=\"https:\/\/github.com\/Arthur-Ficial\/apfel-gui\">apfel-gui<\/a><br \/>\n(une interface SwiftUI native pour chatter avec le mod\u00e8le, avec speech-to-text et text-to-speech on-device) et<br \/>\n<a href=\"https:\/\/github.com\/Arthur-Ficial\/apfel-clip\">apfel-clip<\/a><br \/>\nqui est en d\u00e9veloppement (ce sont des actions IA qui s&#8217;ajoutent dans la barre de menus pour corriger la grammaire, traduire, r\u00e9sumer) et le tout sous licence MIT, \u00e9videmment.<\/p>\n<p>Bref, c&#8217;est un super mod\u00e8le mais avec 3 milliards de param\u00e8tres et 4096 tokens de contexte, faut pas s&#8217;attendre non plus \u00e0 remplacer Claude ou GPT. Les maths complexes, la g\u00e9n\u00e9ration de code avanc\u00e9e et les longues conversations, c&#8217;est pas son truc mais pour du scripting, de la classification ou transformer du texte \u00e0 la vol\u00e9e&#8230; \u00e7a d\u00e9panne carr\u00e9ment !<\/p>\n<p>Et ce mod\u00e8le pr\u00e9f\u00e8re refuser plut\u00f4t qu&#8217;halluciner, ce qui est plut\u00f4t une bonne surprise je trouve. Voil\u00e0, si vous avez un Mac Apple Silicon sous macOS Tahoe,<br \/>\n<a href=\"https:\/\/apfel.franzai.com\/\">apfel<\/a><br \/>\net ses outils valent le coup d&#8217;\u0153il pour vos petites t\u00e2ches IA basiques \/ rapides de tous les jours.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>J&#8217;sais pas si vous saviez mais Apple a planqu\u00e9 un LLM dans votre Mac et ne veut pas que vous y touchiez&#8230; enfin, pas directement. En effet, leur mod\u00e8le est l\u00e0, int\u00e9gr\u00e9 au syst\u00e8me via le framework FoundationModels, il tourne sur le Neural Engine sans connexion internet mais Apple l&#8217;a verrouill\u00e9 derri\u00e8re Siri. Du coup, impossible de l&#8217;appeler depuis un script ou un pipe shell et c&#8217;est l\u00e0 qu&#8217; apfel intervient ! L&#8217;outil s&#8217;installe en une commande : brew install Arthur-Ficial\/tap\/apfel Et hop, vous avez acc\u00e8s au mod\u00e8le directement depuis votre terminal. Faut Apple Intelligence actif \u00e9galement, sinon, \u00e7a ne fonctionnera pas. Ensuite, vous lui posez une question, et il vous r\u00e9pond. Vous lui &#8220;pipez&#8221; un fichier, et il le traite. Et le tout sans rien t\u00e9l\u00e9charger puisque le mod\u00e8le est d\u00e9j\u00e0 sur votre machine ! C&#8217;est un LLM de 3 milliards de param\u00e8tres, quantifi\u00e9 en 2 et 4 bits, qui tourne nativement sur la puce Apple Silicon (M1 et au-del\u00e0) et il se d\u00e9fend plut\u00f4t bien face \u00e0 Qwen-2.5-3B, si on en croit les benchmarks. La fen\u00eatre de contexte est limit\u00e9e \u00e0 4096 tokens (entr\u00e9e + sortie combin\u00e9es), soit environ 3000 mots, donc faut pas esp\u00e9rer lui faire dig\u00e9rer un roman mais pour transformer du texte, classifier des donn\u00e9es ou r\u00e9sumer un paragraphe&#8230; \u00e7a fait bien le taf. Apfel expose donc ce mod\u00e8le de trois fa\u00e7ons diff\u00e9rentes. En CLI pure (compatible stdin\/stdout, sortie JSON, codes d&#8217;erreur propres), en serveur HTTP compatible OpenAI sur localhost:11434 (avec streaming SSE, tool calling et CORS activ\u00e9), et en chat interactif multi-turn. Le serveur OpenAI c&#8217;est malin parce que d&#8217;un coup, tous vos outils savent causer \u00e0 l&#8217;API OpenAI (Cursor, Continue.dev, n&#8217;importe quel SDK) et peuvent utiliser l&#8217;IA locale de votre Mac sans rien changer \u00e0 leur code. Et le support MCP (Model Context Protocol) natif c&#8217;est tr\u00e8s chouette aussi puisqu&#8217;il suffit de lancer apfel avec le flag &#8211;mcp, pour qu&#8217;il d\u00e9couvre automatiquement les outils disponibles, ex\u00e9cute les appels et renvoie les r\u00e9sultats. D&#8217;ailleurs c\u00f4t\u00e9 vie priv\u00e9e, c&#8217;est du b\u00e9ton arm\u00e9 car le framework FoundationModels d&#8217;Apple n&#8217;a pas acc\u00e8s \u00e0 vos contacts, emails, calendrier ou photos et tout tourne sur le Neural Engine et le GPU, sans connexion internet. Si vous avez d\u00e9j\u00e0 bidouill\u00e9 avec Ollama et les mod\u00e8les locaux , apfel c&#8217;est un peu la m\u00eame philosophie&#8230; sauf que l\u00e0 vous n&#8217;avez rien \u00e0 t\u00e9l\u00e9charger et contrairement \u00e0 Perspective Intelligence qui transforme votre Mac en serveur web avec PostgreSQL et tout le tralala, apfel reste hyper minimaliste. Attention quand m\u00eame, faut \u00eatre sous macOS 26 Tahoe minimum donc si vous \u00eates encore sous Sequoia 15.x ou Ventura 13.x, c&#8217;est mort, le framework FoundationModels n&#8217;existe pas sur ces versions. Et si vous avez un Mac Intel&#8230; ben non plus, le Neural Engine c&#8217;est Apple Silicon only. Le projet inclut aussi des scripts d\u00e9mo sympas dans le dossier demo\/. Y&#8217;a par exemple cmd qui convertit du langage naturel en commandes shell, explain qui d\u00e9cortique les messages d&#8217;erreur, gitsum qui r\u00e9sume vos commits r\u00e9cents, ou encore mac-narrator qui commente l&#8217;activit\u00e9 de votre syst\u00e8me en temps r\u00e9el (c&#8217;est votre Mac qui se raconte \u00e0 lui-m\u00eame). Perso, cmd c&#8217;est celui qui m&#8217;a le plus plu, m\u00eame si bon, avec 4096 tokens de contexte, faut pas lui demander des commandes ffmpeg de 200 caract\u00e8res. Mais au-del\u00e0 des d\u00e9mos, c&#8217;est en vrai que \u00e7a devient fun. Je vous montre quelques usages classiques d&#8217;abord : apfel -f README.md &#8220;R\u00e9sume ce projet en 3 phrases&#8221; apfel -f code.py -s &#8220;Tu es un d\u00e9veloppeur exp\u00e9riment\u00e9&#8221; &#8220;Trouve les bugs&#8221; echo &#8220;Traduis \u00e7a en allemand : Salut&#8221; | apfel Et les trucs un peu plus funs : git diff HEAD~1 | apfel -f CONVENTIONS.md &#8220;Review ce diff par rapport \u00e0 mes conventions&#8221; apfel -f old.swift -f new.swift &#8220;Qu&#8217;est-ce qui a chang\u00e9 entre ces deux fichiers ?&#8221; demo\/oneliner &#8220;compte les IPs uniques dans access.log&#8221; Vous pouvez m\u00eame piper la sortie en JSON pour cha\u00eener avec jq, ou lancer le mode &#8211;serve et brancher Cursor dessus pour avoir de l&#8217;autocompl\u00e9tion locale gratuite. Et si vous \u00eates du genre parano, le mode &#8211;chat avec &#8211;context-strategy summarize g\u00e8re automatiquement le contexte quand la conversation d\u00e9passe les 4096 tokens. Et c\u00f4t\u00e9 \u00e9cosyst\u00e8me, y&#8217;a aussi apfel-gui (une interface SwiftUI native pour chatter avec le mod\u00e8le, avec speech-to-text et text-to-speech on-device) et apfel-clip qui est en d\u00e9veloppement (ce sont des actions IA qui s&#8217;ajoutent dans la barre de menus pour corriger la grammaire, traduire, r\u00e9sumer) et le tout sous licence MIT, \u00e9videmment. Bref, c&#8217;est un super mod\u00e8le mais avec 3 milliards de param\u00e8tres et 4096 tokens de contexte, faut pas s&#8217;attendre non plus \u00e0 remplacer Claude ou GPT. Les maths complexes, la g\u00e9n\u00e9ration de code avanc\u00e9e et les longues conversations, c&#8217;est pas son truc mais pour du scripting, de la classification ou transformer du texte \u00e0 la vol\u00e9e&#8230; \u00e7a d\u00e9panne carr\u00e9ment ! Et ce mod\u00e8le pr\u00e9f\u00e8re refuser plut\u00f4t qu&#8217;halluciner, ce qui est plut\u00f4t une bonne surprise je trouve. Voil\u00e0, si vous avez un Mac Apple Silicon sous macOS Tahoe, apfel et ses outils valent le coup d&#8217;\u0153il pour vos petites t\u00e2ches IA basiques \/ rapides de tous les jours.<\/p>\n","protected":false},"author":1,"featured_media":2676,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2675","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2675"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2675\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2676"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}