diff --git a/src/content/sections/en/15-ia.mdx b/src/content/sections/en/15-ia.mdx
index 81e690b..a932629 100644
--- a/src/content/sections/en/15-ia.mdx
+++ b/src/content/sections/en/15-ia.mdx
@@ -60,6 +60,34 @@ What you type into a cloud AI is a **written, timestamped, stored confession**.
+
+
+ 🟡🔴
+ Replaces ChatGPT on mobile
+ 📱 · 100% local
+
+ An app that runs AI models directly on your phone, fully offline.
+
+ Your prompts never leave the phone: no account, no cloud, no telemetry, and it works in airplane
+ mode. Open source (MIT), it downloads GGUF models (Gemma, Qwen, Phi, Llama) from Hugging
+ Face and runs them on your device's CPU, GPU or NPU. The mobile counterpart to Ollama and LM
+ Studio.
+
+
+ Anyone who reaches for ChatGPT on their phone for personal questions and doesn't want to hand
+ them to a US server.
+
+
+ -
+ Install PocketPal from the App Store or Google Play (or build it from source).
+
+ -
+ Open Models, pick one that fits your phone, and download it.
+
+ - Load it and chat: everything runs offline, on the device.
+
+
+
🟢🟡
diff --git a/src/content/sections/fr/15-ia.mdx b/src/content/sections/fr/15-ia.mdx
index 63c987e..9ba4f9f 100644
--- a/src/content/sections/fr/15-ia.mdx
+++ b/src/content/sections/fr/15-ia.mdx
@@ -65,6 +65,37 @@ Ce que vous tapez dans une IA cloud est une **confession écrite, horodatée et
+
+
+ 🟡🔴
+ Remplace ChatGPT sur mobile
+ 📱 · 100% local
+
+
+ Une application pour faire tourner des modèles d'IA directement sur votre téléphone, entièrement
+ hors ligne.
+
+
+ Vos requêtes ne quittent jamais le téléphone : aucun compte, aucun cloud, aucune télémétrie, et
+ ça marche en mode avion. Open source (MIT), l'appli télécharge des modèles GGUF (Gemma,
+ Qwen, Phi, Llama) depuis Hugging Face et les exécute sur le CPU, le GPU ou le NPU de l'appareil.
+ Le pendant mobile d'Ollama et LM Studio.
+
+
+ Tous ceux qui dégainent ChatGPT sur leur téléphone pour des questions personnelles et ne veulent
+ pas les confier à un serveur américain.
+
+
+ -
+ Installez PocketPal depuis l'App Store ou Google Play (ou compilez les sources).
+
+ -
+ Ouvrez Models, choisissez un modèle adapté à votre téléphone et téléchargez-le.
+
+ - Chargez-le et discutez : tout tourne hors ligne, sur l'appareil.
+
+
+
🟢🟡
diff --git a/src/content/sections/nl/15-ia.mdx b/src/content/sections/nl/15-ia.mdx
index 3e6a804..053b499 100644
--- a/src/content/sections/nl/15-ia.mdx
+++ b/src/content/sections/nl/15-ia.mdx
@@ -62,6 +62,36 @@ Wat u in een cloud-AI typt, is een **geschreven, van een tijdstempel voorziene,
+
+
+ 🟡🔴
+ Vervangt ChatGPT op mobiel
+ 📱 · 100% lokaal
+
+
+ Een app om AI-modellen rechtstreeks op uw telefoon te draaien, volledig offline.
+
+
+ Uw prompts verlaten de telefoon nooit: geen account, geen cloud, geen telemetrie, en het werkt
+ in vliegtuigmodus. Open source (MIT): de app downloadt GGUF-modellen (Gemma, Qwen, Phi,
+ Llama) van Hugging Face en draait ze op de CPU, GPU of NPU van het toestel. De mobiele
+ tegenhanger van Ollama en LM Studio.
+
+
+ Iedereen die op de telefoon naar ChatGPT grijpt voor persoonlijke vragen en ze niet aan een
+ Amerikaanse server wil toevertrouwen.
+
+
+ -
+ Installeer PocketPal uit de App Store of Google Play (of bouw vanaf de broncode).
+
+ -
+ Open Models, kies een model dat bij uw telefoon past en download het.
+
+ - Laad het en chat: alles draait offline, op het toestel.
+
+
+
🟢🟡
diff --git a/src/data/directory.json b/src/data/directory.json
index 06b6b4d..c9a8e2d 100644
--- a/src/data/directory.json
+++ b/src/data/directory.json
@@ -397,6 +397,13 @@
"url": "https://gpt4all.io",
"license": "MIT"
},
+ {
+ "id": "pocketpal",
+ "category": "ia-locale-agentique",
+ "name": "PocketPal AI",
+ "url": "https://pocketpal.dev",
+ "license": "MIT"
+ },
{
"id": "grapheneos",
"category": "os-mobile",
diff --git a/src/data/domains-allowlist.json b/src/data/domains-allowlist.json
index 015e6af..f06d9a2 100644
--- a/src/data/domains-allowlist.json
+++ b/src/data/domains-allowlist.json
@@ -78,6 +78,7 @@
"osmand.net",
"pi-hole.net",
"pixelfed.org",
+ "pocketpal.dev",
"posteo.de",
"postmarketos.org",
"proton.me",
diff --git a/src/data/tools.json b/src/data/tools.json
index f618795..90582a2 100644
--- a/src/data/tools.json
+++ b/src/data/tools.json
@@ -619,6 +619,25 @@
"level": null,
"profiles": ["🟡", "🔴"]
},
+ {
+ "id": "t-pocketpal",
+ "name": "PocketPal AI",
+ "url": "https://pocketpal.dev",
+ "links": [
+ {
+ "label": "pocketpal.dev",
+ "href": "https://pocketpal.dev"
+ },
+ {
+ "label": "github",
+ "href": "https://github.com/a-ghorbani/pocketpal-ai"
+ }
+ ],
+ "monogram": "Pp",
+ "color": "#6b4eff",
+ "level": null,
+ "profiles": ["🟡", "🔴"]
+ },
{
"id": "t-cloudai",
"name": "Duck.ai · Lumo (Proton)",
diff --git a/src/i18n/content/en/directory.json b/src/i18n/content/en/directory.json
index b4e5ee5..70153ec 100644
--- a/src/i18n/content/en/directory.json
+++ b/src/i18n/content/en/directory.json
@@ -50,6 +50,7 @@
"llama-cpp": { "body": "The local inference engine that made it all possible." },
"jan": { "body": "100% local ChatGPT-like, simple UI." },
"gpt4all": { "body": "Privacy-minded local LLMs, CPU-friendly." },
+ "pocketpal": { "body": "Run LLMs offline on your phone (iOS/Android), no account." },
"grapheneos": { "body": "De-Googled, hardened Android (Pixel)." },
"tails": { "body": "Amnesic USB OS, everything through Tor." },
"qubes-os": { "body": "Compartmentalisation via sealed VMs." },
diff --git a/src/i18n/content/fr/directory.json b/src/i18n/content/fr/directory.json
index 03d7247..85b69a8 100644
--- a/src/i18n/content/fr/directory.json
+++ b/src/i18n/content/fr/directory.json
@@ -52,6 +52,7 @@
"llama-cpp": { "body": "Le moteur d’inférence local qui a tout rendu possible." },
"jan": { "body": "ChatGPT-like 100 % local, interface simple." },
"gpt4all": { "body": "LLM locaux orientés vie privée, sur CPU." },
+ "pocketpal": { "body": "Des LLM hors ligne sur votre téléphone (iOS/Android), sans compte." },
"grapheneos": { "body": "Android dégooglisé et durci (Pixel)." },
"tails": { "body": "OS amnésique sur clé USB, tout via Tor." },
"qubes-os": { "body": "Cloisonnement par machines virtuelles étanches." },
diff --git a/src/i18n/content/nl/directory.json b/src/i18n/content/nl/directory.json
index 295c8a6..15ec1e2 100644
--- a/src/i18n/content/nl/directory.json
+++ b/src/i18n/content/nl/directory.json
@@ -153,6 +153,9 @@
"gpt4all": {
"body": "Privacygerichte lokale LLM's, CPU-vriendelijk."
},
+ "pocketpal": {
+ "body": "Draai LLM's offline op je telefoon (iOS/Android), zonder account."
+ },
"grapheneos": {
"body": "Ontgoogeld, gehard Android (Pixel)."
},
diff --git a/src/styles/brands.generated.css b/src/styles/brands.generated.css
index f59db8c..6c9bcab 100644
--- a/src/styles/brands.generated.css
+++ b/src/styles/brands.generated.css
@@ -146,6 +146,10 @@
background: #111111;
color: #faf7ee;
}
+#t-pocketpal .tool-logo {
+ background: #6b4eff;
+ color: #faf7ee;
+}
#t-cloudai .tool-logo {
background: #de5833;
color: #14161a;
diff --git a/tests/unit/content.test.ts b/tests/unit/content.test.ts
index e965c1e..a491e54 100644
--- a/tests/unit/content.test.ts
+++ b/tests/unit/content.test.ts
@@ -133,8 +133,8 @@ describe('open-source directory', () => {
])
const directory = loadDataset('directory', 'en')
- it('has 66 entries: free-software license allowlist, https links', () => {
- expect(directory).toHaveLength(66)
+ it('has 67 entries: free-software license allowlist, https links', () => {
+ expect(directory).toHaveLength(67)
for (const e of directory) {
expect(SPDX_ALLOWED.has(e.license), `${e.name}: license ${e.license}`).toBe(true)
expect(e.url.startsWith('https://'), e.name).toBe(true)