fornews.ai Agence — la mémoire de votre équipe

Agence rassemble dans une seule archive tout ce que votre équipe a lu avec fornews.ai, sur ses Mac, iPhone et iPad. Et cette archive ne dort pas dans un tiroir : elle se regarde, elle se consulte, elle répond à vos questions.

Tout reste chez vous, sur vos machines, hors iCloud. Sauvegardé tout seul, vérifié, et ouvert à vos assistants IA.

Télécharger dans l'App Store

Sur le Mac App Store. Téléchargement gratuit : une machine verse sans licence.

Ce que vous allez aimer

🗂️ Une seule archive pour toute l'équipe

Chaque Mac, iPhone ou iPad verse ses articles dans une base unique. Un article versé deux fois reste un seul article, et chacun garde sa provenance.

🕸️ Votre archive d'un coup d'œil

Le tableau de bord, la toile des personnalités et des lieux qui reviennent ensemble, l'évolution du fonds au fil des mois, une fiche pour chaque entité.

💾 Des sauvegardes qui ne mentent pas

Elles partent toutes seules, gardent plusieurs copies, et chaque copie est vraiment rouverte pour être vérifiée. Un retard se voit tout de suite.

🤖 Ouvert à vos assistants IA

Demandez un rapport à Claude, ou à tout assistant compatible : il puise dans votre fonds par le serveur MCP intégré, en lecture seule.

🔒 Chez vous, et seulement chez vous

Ni iCloud ni serveur tiers : le fonds vit sur votre machine. Accès par invitation, archives scellées, journal de tout ce qui se passe.

🏷️ Un achat unique

Gratuit pour une machine. Les paliers ouvrent 5, 12, 25 ou 60 machines, ou un nombre illimité, sans abonnement. Lire, chercher et exporter ne dépendent d'aucun achat.

🎨 Bientôt : votre fonds en images 1.8

Un mur d'images avec les visuels de la presse, une mappemonde des lieux cités, les personnalités du moment en portraits, vos histoires en rubans qui s'épaississent au fil des jours, le pouls de vos sources — et une ambiance musicale propre à chaque écran. Voir la feuille de route.

Mettre en place Agence

Le guide complet, pas à pas : l'archive, la portée réseau, le raccordement des machines, les sauvegardes et le branchement d'un assistant.

Agence en images

Captures prises sur une archive réelle de 9 880 articles — aucun écran de démonstration. Les identifiants de machines et le chemin de sauvegarde y sont volontairement masqués.

Le tableau de bord d'Agence
Le tableau de bord — l'état du fonds d'un coup d'œil, et la dernière sauvegarde vérifiée.
La toile des entités les plus citées
La toile — les 48 entités les plus citées ; un trait relie celles qui apparaissent ensemble.
Les courbes d'évolution du fonds
Les chroniques — l'évolution du fonds, et la production comparée de chaque nœud.
La liste des nœuds raccordés
Les nœuds — les machines qui versent, ce qu'elles ont livré, et leurs jetons.
Le dossier d'une entité
Les entités — 17 230 fiches, avec la présence dans le temps et les articles liés.
Les réglages de licence et de sauvegarde
Licence et sauvegarde — le palier, la cadence, et la vérification qui ouvre vraiment le fichier.
Une demande de rapport de veille adressée à Claude, qui puise dans le corpus de l'agence par son serveur MCP
Le fonds depuis Claude — un rapport de veille demandé en une phrase : Claude analyse l'article, puis va chercher dans l'archive fornews-agence les compléments qui l'éclairent — textes et images déjà collectés par la rédaction.
Ouvrir dans md Viewer Télécharger le .md
Un exemple réel, en schéma. Une installation complète — treize appareils, sept nœuds Tailscale, quatre fournisseurs de données, un hôte d'agence — avec le sens des flux : qui écrit dans le fonds, qui le lit, et ce qui passe par iCloud plutôt que par le tailnet. Voir le schéma d'architecture.

Avant de commencer

À qui elle s'adresse

fornews.ai n'est pas une application, c'est une gamme — et chaque pièce y tient un rôle différent plutôt qu'une taille différente. L'iPhone, l'iPad et l'Apple TV donnent à lire. Le Mac collecte et travaille : il suit les flux, extrait les entités, corrige, monte des histoires. Agence garde — elle rassemble ce que plusieurs Macs produisent en un seul fonds, et le sert à toute une équipe. Prises ensemble, elles font une expérience complète de veille informationnelle, du coup d'œil du matin à l'archive de plusieurs années.

L'édition Agence s'adresse à ceux qui veulent aller plus loin dans la gestion de l'actualité : une rédaction, un service de veille ou de marketing — mais aussi le passionné qui suit un sujet depuis des années et refuse de le voir disparaître avec un site qui ferme. Ce n'est pas une question de volume, c'est une question d'exigence : vouloir que le corpus dure, qu'il soit partagé, et qu'on puisse dire d'où vient chaque article.

Vous n'avez pas besoin d'Agence pour bien vous servir de fornews.ai. Un Mac seul suffit longtemps, et c'est le bon point de départ. Agence répond à une limite précise — un appareil ne contiendra jamais des millions d'articles, et un corpus qui vit sur une seule machine s'éteint avec elle.

Ce qu'elle fait, et ce qu'elle ne fait pas

Agence ne collecte rien elle-même. Elle reçoit. La collecte reste le travail de l'app fornews.ai installée sur vos machines : c'est elle qui suit les flux, récupère les articles et en extrait les entités. Agence les rassemble et les garde.

Prérequis : l'app fornews.ai en 1.7 ou ultérieure, sur au moins une machine — le versement n'existe pas avant. Le Mac reste le collecteur de référence : il tourne en continu et sait servir. L'iPhone et l'iPad versent eux aussi. Seule l'Apple TV consulte sans verser : elle ne collecte pas, et n'a pas de clavier pour un jeton.

Vous aurez besoin de deux machines pour que l'exercice ait un sens : celle qui héberge l'agence, et au moins une qui collecte. Les deux peuvent être la même au départ, le temps de prendre le pli.

Une agence, un fonds. Deux archives sont deux fonds qui ne se parlent pas. En créer une « pour essayer » à côté d'une autre déjà nourrie, c'est se retrouver avec la moitié de ses articles ici et l'autre là. L'app vous avertit quand elle en détecte le cas, mais elle ne peut pas deviner votre intention.

L'archive

  1. Choisir où elle vit

    Au premier lancement, Réglages vous demande un dossier. Agence y crée un fichier archive.store. Un disque interne convient mieux qu'un volume réseau : l'archive est une base de données, elle est écrite en continu.

  2. Le garder debout

    Un serveur qui s'endort n'est pas un serveur : les collecteurs trouvent porte close, sans erreur, et vous ne le voyez qu'au manque d'articles. Deux réglages y répondent, et il faut les deux — ils traitent deux pannes différentes.

    Empêcher la veille est actif par défaut, et ne tient que tant qu'une porte écoute : Agence ne garde pas votre Mac éveillé pour rien.

    Toujours active → « Démarrer à l'ouverture de session » répond à l'autre panne, la plus sournoise : après une coupure de courant ou une mise à jour, le Mac redémarre et l'app, elle, ne revient pas. Rien n'a l'air cassé — l'application est simplement fermée, et les collecteurs poussent dans le vide.

    Et la fenêtre peut disparaître sans rien arrêter. Agence laisse une icône en forme de base de données dans la barre de menus : fermer la fenêtre l'y range, le service continue, et le menu dit d'un coup d'œil si l'archive est ouverte et si les portes écoutent. C'est le mode normal d'un Mac qui ne fait que servir.

  3. Reprendre un fonds existant

    Si vous avez déjà un corpus dans l'app Mac, exportez-le (fichier .fornewsarchive) et versez-le par Import d'archive. L'import se fait en deux temps : Agence inventorie et vous montre ce que le fichier contient avant d'écrire quoi que ce soit.

La portée réseau

Agence ouvre deux portes, et vous décidez jusqu'où elles portent. Le réglage vaut pour les deux — restreindre l'une en laissant l'autre ouverte donnerait l'illusion d'avoir restreint.

PortéeCe que ça veut direQuand la choisir
Cette machine uniquement
(par défaut)
Invisible depuis le réseau, y compris votre propre LAN. Agence et collecteur sur le même Mac.
Tailscale uniquement Joignable par votre tailnet, invisible sur tout autre réseau — y compris les Wi-Fi publics. Le cas courant dès qu'il y a deux machines.
Toutes les interfaces Toutes les interfaces sont liées, y compris les réseaux publics auxquels ce Mac se connecte. Réseau maîtrisé de bout en bout, et seulement là.
Une exposition réseau se demande, elle ne s'hérite pas d'un défaut. C'est pourquoi Agence démarre en local et vous laisse élargir en connaissance de cause. Les jetons protègent l'accès dans tous les cas ; la portée décide de qui peut seulement frapper à la porte.

Les deux ports, une fois pour toutes :

PortPorteSens
5274Ingestion Vos Macs écrivent — c'est par là qu'arrivent les articles.
5275MCP Vos outils lisent — la porte est en lecture seule.

Raccorder un nœud

Un nœud, c'est une machine qui collecte — un Mac, un iPhone ou un iPad. Le raccorder tient en deux gestes : l'agence lui délivre un jeton, le collecteur le présente.

Chaque nœud consomme un siège de votre palier, et seuls les nœuds actifs comptent : désactiver une machine qui ne sert plus libère sa place. Sans achat, l'agence accepte un nœud — assez pour tout éprouver en vrai.
PalierNœudsPrix
Sans licence1—
Atelier5Fr. 10.—
Studio12Fr. 50.—
Rédaction25Fr. 200.—
Agence60Fr. 500.—
RéseauillimitéFr. 900.—

Achat unique, pas un abonnement. ⚠️ Chaque machine collectrice a par ailleurs besoin de l'app fornews.ai : le palier n'est donc pas le coût complet d'un poste.

Lire ne dépend d'aucun achat. Chercher, exporter, sauvegarder et interroger le fonds par MCP restent entiers quel que soit le palier — seule l'arrivée d'un nœud nouveau y est soumise. Une archive de plusieurs années appartient à l'agence, pas à l'éditeur.
  1. Sur l'agence — délivrer le jeton

    Administration → émettre un jeton de versement pour le nœud. Le jeton n'est montré qu'une seule fois : l'archive n'en garde que l'empreinte, comme pour un mot de passe. Copiez-le tout de suite.

    Deux jetons, pas un. Verser des archives et interroger le fonds sont deux usages distincts, souvent portés par deux logiciels. Les séparer permet de couper l'accès en lecture de quelqu'un sans interrompre ses versements — et l'inverse. Un jeton unique rendrait toute révocation totale.
  2. Sur le collecteur — présenter le jeton

    Dans l'app fornews.ai du Mac, section Agence : l'adresse de l'agence, le jeton, et la cadence. Une fois par heure convient à la plupart des usages ; le versement n'envoie que ce qui est nouveau depuis la dernière fois.

    # L'adresse est celle de la porte d'INGESTION
    http://<adresse-de-l-agence>:5274
    Le premier versement est long, les suivants non. Il rattrape tout l'historique par lots ; ensuite il ne porte que le neuf. Un compteur de rattrapage vous dit ce qui reste.
    Vos corrections d'entités voyagent avec. Renommez une entité, changez son type ou rattachez-la à la bonne fiche Wikidata : le versement suivant porte la correction jusqu'à l'archive. Vous corrigez une fois, sur le poste où vous avez vu l'erreur ; la rédaction entière en profite. Deux entités qui deviennent identiques fusionnent, et leurs articles se rejoignent.
  3. Depuis un iPhone ou un iPad : scanner

    Un téléphone qui a collecté seul — en déplacement, sans Mac allumé — peut verser lui aussi. Mais un appareil neuf pose un problème d'amorçage : il n'a pas encore de nœud, et l'on ne peut donc pas lui émettre un jeton « pour son nœud ».

    D'où un geste à part, dans Nœuds : « Raccorder un appareil… » délivre un jeton lié à aucune machine, valable trente jours, avec son QR. L'appareil s'identifie lui-même au premier versement : son nœud naît à ce moment-là, dans la limite de votre palier, et le jeton lui est alors rattaché — il ne sert donc qu'une fois à enrôler.

    Sur l'appareil : Réglages → Archive d'agence, activez « Verser mes articles dans une archive d'agence », puis « Scanner le QR de l'agence ». L'adresse et le jeton se remplissent d'un geste. Reste « Verser maintenant ».

    Ne donnez JAMAIS à un téléphone le jeton d'un Mac déjà raccordé. L'identité d'un versement vient du jeton, jamais du contenu de la requête — c'est ce qui empêche une machine de se faire passer pour une autre. Le contournement produirait donc des articles d'iPhone attribués au Mac, silencieusement et sans erreur. C'est exactement ce que « Raccorder un appareil… » évite.
    Le bouton est gris sous « Cette machine uniquement ». Aucun autre appareil ne peut alors joindre l'agence : un QR serait un mensonge. Changez la portée réseau, et il s'active.
    ⚠️ Un QR ne crée pas le chemin réseau. Le téléphone doit encore pouvoir joindre l'agence. S'il appartient à quelqu'un d'autre — donc à un autre tailnet — le partage de machine lui ouvre cette seule machine, sans l'exposer à Internet.
    Ce carré EST le jeton. Qui le photographie obtient le droit de verser. Il s'affiche à la demande, et le jeton reste révocable à tout instant depuis Administration.

    Le scan n'est jamais le seul chemin : les champs de saisie restent en dessous, pour un appareil sans appareil photo ou si l'autorisation est refusée.

    Gardez l'écran ouvert le temps de la passe. iOS suspend une app mise en arrière-plan, et un premier versement de deux mille articles dure plus d'une minute. Rien n'est perdu si vous sortez — le curseur n'avance que sur un succès, donc la passe se refait — mais elle ne finira pas toute seule.
  4. Vérifier que ça tient

    Sur l'agence, Nœuds liste les machines raccordées et la date de leur dernière livraison. Chroniques montre leur production dans le temps et permet de les comparer — un Mac qui a décroché s'y voit à sa courbe qui tombe à plat, sans disparaître de la légende.

    Et le Journal écrit chaque livraison, à mesure :

    Mac mini du studio a livré 23 article(s) — 6 nouveaux, 17 déjà connus, 0 refusés

    Il se relit tout seul — l'intervalle se règle dans sa barre de filtres, de Manuel à 60 secondes, 10 par défaut. C'est assez rapide pour qu'un geste que vous venez de faire apparaisse pendant que vous regardez.

    Un même Mac ne compte qu'une fois. L'identité d'un nœud est un identifiant stable conservé dans son trousseau, pas son nom de machine — qui, lui, change au gré des réglages système et créerait des doublons.

Les sauvegardes

Le fonds d'une rédaction est ce qu'on ne peut pas recollecter : les articles disparaissent des sites, les flux s'arrêtent, les sources changent d'adresse. La sauvegarde n'est donc pas une précaution d'informaticien, c'est la seule chose qui rende l'archive durable.

  1. Une destination, hors de ce Mac

    Réglages › Sauvegarde › choisissez un dossier — un NAS, un disque de rotation, un dossier partagé. Le choix est retenu d'une session à l'autre.

    Sur le même disque que l'archive, ce n'est pas une sauvegarde : la panne qui emporte l'un emporte l'autre. Le seul but est qu'une copie survive à ce Mac.
  2. Une cadence, et combien on garde

    Trois choix : Manuelle uniquement, Une fois par jour, Une fois par semaine. Puis le nombre de sauvegardes conservées — les plus anciennes sont retirées à mesure, pour que la destination ne grossisse pas sans fin.

    Garder plus d'une copie a une raison précise : une corruption peut passer inaperçue quelques jours. Avec une seule sauvegarde, elle est déjà recopiée par-dessus la bonne quand vous vous en apercevez.
  3. La clé de secours — à ranger ailleurs, tout de suite

    Les sauvegardes sont chiffrées, parce qu'elles sortent du périmètre de FileVault dès qu'elles sont copiées ailleurs. La clé s'affiche une seule fois, à sa création.

    Une sauvegarde chiffrée par une clé qui ne vit que sur ce Mac n'est pas une sauvegarde. Si la machine est volée ou détruite — la raison même d'en avoir — la clé part avec elle, et il ne reste que des fichiers illisibles gardés par superstition. Mettez-la dans un gestionnaire de mots de passe, ou sur papier, avant de fermer la fenêtre. L'app vous le rappellera tant que vous n'aurez pas confirmé l'avoir mise à l'abri.
  4. Vérifier, c'est restaurer

    Le tableau de bord affiche la date de la dernière sauvegarde vérifiée. Vérifier ne veut pas dire comparer deux tailles de fichier : Agence ouvre la sauvegarde, contrôle l'intégrité SQLite, la version du schéma, et lit de vraies lignes avec de vraies requêtes.

    Une sauvegarde jamais restaurée n'est pas une sauvegarde, c'est une croyance. Un fichier tronqué au bon endroit a la bonne taille — c'est pourquoi la comparaison de tailles ne prouve rien.

Chiffrement & accès

Deux questions distinctes, et il vaut mieux les séparer : ce qui est chiffré, et qui a le droit d'entrer. Voici ce qu'Agence fait réellement — y compris ce qu'elle ne fait pas.

Ce qui est chiffré, et ce qui ne l'est pas
Ce dont on parleProtection
L'archive, au repos FileVault, et rien de plus — c'est un choix. La chiffrer une seconde fois avec une clé que l'app doit pouvoir lire toute seule pour ouvrir la base ne protégerait contre rien : la clé serait à côté de la serrure.
Les sauvegardes AES-GCM par tranches de 4 Mo. Là, le calcul s'inverse : la sauvegarde part sur un NAS ou un disque de rotation et sort du périmètre de FileVault à l'instant où elle est copiée.
⭐ Chaque tranche est authentifiée avec son index et le nombre total : réordonner ou tronquer le fichier ne passe pas inaperçu. Une restauration silencieusement incomplète serait pire qu'une restauration qui échoue.
Une archive transmise HPKE (RFC 9180) en mode authentifié, suite Curve25519 · SHA-256 · ChaCha20-Poly1305 — chiffrée pour l'agence, signée par celui qui l'a produite.
⚠️ Un fichier .fornewsarchive ordinaire voyage en clair : sa compression n'est pas un chiffrement, strings y lit les titres. C'est l'artefact le plus exposé de la chaîne, et c'est précisément ce que le scellement corrige.
Les clés privées Le Trousseau macOS. Elles ne sont jamais écrites dans l'archive.
Les deux portes ne font pas de TLS, et il faut le savoir plutôt que de le supposer. Leur confidentialité vient de la portée réseau : sous « Tailscale uniquement », c'est le tunnel chiffré du tailnet qui protège le trafic. C'est pourquoi « Toutes les interfaces » est un choix à ne prendre que sur un réseau maîtrisé de bout en bout — les jetons resteraient valides, mais ils circuleraient en clair.

Tailscale est un moyen, pas le seul. Ce qu'Agence exige, c'est un chemin privé entre le collecteur et l'archive — un réseau local maîtrisé, un autre VPN ou un tunnel font aussi l'affaire. Tailscale a notre préférence parce qu'il ne demande aucune ouverture de port et suit les machines qui changent de réseau.

⭐ Et il règle le cas qui revient le plus en rédaction : l'appareil appartient à quelqu'un d'autre, donc à un autre tailnet. Le partage de machine donne accès à cette seule machine, sans l'exposer à Internet ni faire entrer la personne dans votre réseau.

⚠️ Tailscale met une machine partagée en quarantaine : elle peut recevoir des connexions, pas en établir. C'est sans conséquence ici — dans Agence, c'est toujours le collecteur qui pousse, et l'agence ne fait que répondre. La fonction est en bêta chez Tailscale au moment où nous écrivons.

Qui a le droit d'entrer

L'accès repose sur des jetons : 256 bits tirés au hasard, préfixés fna_ pour qu'on les reconnaisse dans un fichier de configuration.

  • Jamais stockés en clair. L'archive n'en garde que l'empreinte SHA-256, comme pour un mot de passe. Un jeton s'affiche une seule fois ; personne, pas même vous, ne peut le relire ensuite.
  • Un jeton fait une seule chose. Les rôles sont séparés : ingestion (pousser des articles, et rien d'autre), téléversement (verser une archive entière), lecture (MCP), curation, administration.
  • Révocables et datés. Couper un accès est immédiat, et chaque jeton porte sa date de dernier usage — « jamais utilisé » est une information, pas un trou.
Deux jetons plutôt qu'un aux droits larges, et c'est délibéré. Verser des archives et interroger le fonds sont deux usages distincts, souvent portés par deux logiciels. Les séparer permet de couper l'accès en lecture de quelqu'un sans interrompre ses versements — et l'inverse. Un jeton unique rendrait toute révocation totale.

Au-dessus des jetons, deux garde-fous que le code garantit :

  • La porte MCP ne peut pas écrire. Elle ouvre l'archive par une seconde connexion, en lecture seule : c'est une garantie du moteur, pas une discipline qu'on demande aux outils.
  • Sign in with Apple prouve qui quelqu'un est ; c'est la liste des personnes autorisées qui dit s'il a le droit d'entrer. Les deux sont séparés à dessein.

Interroger le fonds

La porte MCP donne à Claude — ou à tout client compatible — une lecture du corpus complet : recherche plein texte, entités, tendances, chronologies, santé des sources. La référence des outils est ici.

Sur ce Mac, Administration affiche une configuration prête à coller : elle pointe vers un fichier de jeton que votre client relit à chaque fois. Rien à renouveler.

Pour une autre machine, le bouton « Émettre un jeton pour un poste distant… » délivre un jeton durable — valable un an, révocable, listé avec les autres. La configuration complète s'affiche alors une seule fois :

{
  "mcpServers": {
    "fornews-agence": {
      "type": "http",
      "url": "http://<adresse-de-l-agence>:5275/mcp",
      "headers": { "Authorization": "Bearer fna_…" }
    }
  }
}
Ce jeton est une clé. Rangez-le dans la configuration personnelle de votre client, jamais dans un fichier de projet suivi par git — un git add distrait le publierait avec le reste.

Brancher un client — ce qu'il faut savoir avant d'essayer

Trois choses qui ne se devinent pas, et qui expliquent la plupart des échecs de configuration :

  • Une conversation ordinaire et une session de code ne chargent pas la même chose. Les serveurs MCP locaux sont déclarés sur votre machine ; les connecteurs de compte, eux, sont des services distants. Un serveur privé n'apparaîtra jamais dans la liste des seconds.
  • Certains clients n'acceptent que des serveurs « stdio », c'est-à-dire une commande locale, et refusent une adresse HTTP distante. Un pont comme mcp-remote résout ce cas : il présente au client une commande locale et parle HTTP à l'agence derrière.
  • Le HTTP en clair est refusé vers une adresse distante, et c'est une protection légitime. Vers 127.0.0.1, il ne l'est pas.
D'où la règle simple : sur le Mac de l'agence, visez 127.0.0.1. Les deux portes écoutent la boucle locale en plus de la portée choisie, et cette adresse ne déclenche aucune des protections ci-dessus. Pour un autre poste, l'adresse du tailnet et un jeton durable — et s'il est hors de votre tailnet, le partage de machine.

Le plus simple : demandez-le à votre client

Vous n'êtes pas obligé d'écrire ce JSON vous-même. Les clients savent modifier leur propre configuration, et ils s'en tirent mieux qu'une copie manuelle : ils connaissent l'emplacement du fichier et sa syntaxe. Décrivez ce que vous voulez :

Ajoute ce serveur MCP à ma configuration. Utilise un proxy MCP local
via npx mcp-remote, afin de conserver l'URL localhost.

Nom : fornews-agence
URL : http://127.0.0.1:5275/mcp
En-tête Authorization : Bearer <votre-jeton>

Préserve les serveurs et préférences existants, puis valide la configuration.

Éprouvé avec GitHub Copilot, Codex et Claude : les trois se configurent ainsi.

« afin de conserver l'URL localhost » n'est pas une formule creuse. C'est ce qui retient le client de remplacer 127.0.0.1 par l'adresse réseau de la machine — une substitution d'apparence inoffensive, qui rallume aussitôt le refus du HTTP en clair décrit plus haut. Le pont reste local ; rien ne sort du Mac.
Ne collez pas votre jeton dans une conversation que vous ne maîtrisez pas. Cette demande le confie au client : elle a sa place dans un assistant qui tourne sur votre machine, pas dans un service tiers dont vous ignorez ce qu'il conserve.
Interroger le fonds depuis un iPhone ou un iPad

La règle du 127.0.0.1 semble vous clouer devant le Mac de l'agence. Elle ne le fait pas. Avec Claude et l'option Répartition (Dispatch), vous confiez une question depuis votre téléphone ou votre tablette à la session qui tourne sur ce Mac : c'est elle qui interroge le fonds, et vous lisez la réponse où que vous soyez.

Rien n'est exposé pour autant. L'appareil mobile ne joint jamais la porte MCP : il n'a pas le jeton, et n'a pas besoin d'un accès au réseau de l'agence. La porte continue de n'écouter que la boucle locale et la portée que vous avez choisie. C'est la règle de toujours — le client reste sur le Mac —, simplement pilotée de loin.
Avec un modèle local : rien ne sort de la machine

La porte MCP ne suppose aucun service en ligne. Branchée sur LM Studio Bionic — l'agent de LM Studio pour modèles ouverts, qui s'exécute nativement en local — elle donne de bons résultats, et l'ensemble de la chaîne reste chez vous : le corpus ne quitte pas l'agence, la question ne quitte pas le poste, la réponse non plus.

Ce que ça change pour une rédaction. Interroger son fonds revient à décrire ce qu'on cherche — donc ses sujets, ses pistes, parfois ses sources. Avec un service distant, ces questions sortent ; avec un modèle local, non. Pour de la veille sensible, c'est la différence entre un outil qu'on peut utiliser et un outil qu'on s'interdit.
Un modèle local n'est pas un modèle égal. Sur un fonds de plusieurs milliers d'articles, la qualité des synthèses dépend fortement du modèle choisi et de sa fenêtre de contexte. Éprouvez sur vos propres questions avant de conclure — le nôtre n'est pas forcément le vôtre.
Les deux serveurs MCP se complètent

Si vous mettez Agence en œuvre, son serveur MCP ne remplace pas celui de l'app Mac : il en couvre l'autre moitié. L'app Mac écrit dans votre corpus — créer une source, corriger une entité, monter une histoire. Agence lit à l'échelle de la rédaction, et répond à des questions qu'un seul Mac ne peut pas poser : d'où vient cet élément, quel nœud l'a livré, qui a un accès qui dort.

Ce qu'on veut fairefornews.ai (Mac)Agence
Chercher, lire, relier des articles✅✅ sur tout le fonds
Entités : lister, consulter le dossier✅✅
Analyse : chronologie, tendances, partage de voix✅✅
Sources : lister, santé✅✅
Histoires : lister, consulter✅✅
Volumétrie du corpus✅✅
Créer, corriger, supprimer une source✅⛔
Détecter les flux d'un site✅⛔
Centres d'intérêt : créer, modifier, supprimer✅⛔
Histoires : créer, ajouter, retirer, exporter✅⛔
Écarter, restaurer, mettre un article en favori✅⛔
Corriger les entités : fusionner, retyper, ignorer, lier un QID✅⛔
Provenance d'un élément — quel nœud, quel import⛔✅
Historique des imports⛔✅
Jetons : qui a un accès, lequel dort⛔✅
Sauvegardes : historique et vérifications⛔✅
Qualité du fonds⛔✅
Intégrité de la base⛔✅

38 outils fornews_* côté Mac, 21 outils agence_* côté Agence, dont six réservés à l'administration.

Gardez les deux configurés en même temps. Les préfixes diffèrent — fornews_* et agence_* — donc un assistant choisit tout seul le bon serveur : votre Mac pour agir sur vos sources, l'agence pour interroger des années de corpus.

Si ça ne marche pas

Ce que vous voyezCe que c'est
Le collecteur dit que l'agence n'a pas répondu La portée est restée sur Cette machine uniquement, ou l'agence est endormie. Les deux se règlent dans ses Réglages.
Une erreur d'autorisation d'accès au démarrage Le dossier de l'archive a bougé, ou son disque a été renommé. L'archive est intacte : rechoisissez le dossier, une fois.
La porte répond 401 C'est bon signe : elle écoute et refuse ce qu'il faut. Le jeton est absent, expiré ou révoqué — réémettez-le.
Le compteur d'articles n'avance pas Regardez-le à plus d'une minute d'intervalle : un lot de deux mille articles met plus longtemps que ça à passer. La date de dernier versement réussi est plus fiable que le compteur.
Deux nœuds pour une seule machine Signalez-le : l'identité est censée être stable. Une fusion se fait depuis Nœuds.

Une question qui n'est pas ici ? L'assistance est là.

fornews.ai Agency — your holdings come alive

Agency brings together, in a single archive, everything your team has read with fornews.ai on its Macs, iPhones and iPads. And that archive doesn't sit in a drawer: you can look at it, search it, and ask it questions.

Everything stays with you, on your machines, off iCloud. Backed up on its own, verified, and open to your AI assistants.

Download on the App Store

On the Mac App Store. Free download: one machine contributes without a licence.

What you'll love

🗂️ One archive for the whole team

Every Mac, iPhone or iPad sends its articles to a single database. An article sent twice stays one article, and each keeps its origin.

🕸️ Your holdings at a glance

The dashboard, the web of people and places that keep appearing together, how the holdings grow month after month, a file for every entity.

💾 Backups that don't lie

They run on their own, keep several copies, and every copy is actually reopened to be verified. A missed backup shows up right away.

🤖 Open to your AI assistants

Ask Claude, or any compatible assistant, for a report: it draws on your holdings through the built-in MCP server, read-only.

🔒 Yours, and only yours

No iCloud, no third-party server: the holdings live on your machine. Access by invitation, sealed archives, a log of everything that happens.

🏷️ A one-time purchase

Free for one machine. Tiers open 5, 12, 25 or 60 machines, or an unlimited number, with no subscription. Reading, searching and exporting never depend on a purchase.

🎨 Coming soon: your holdings in pictures 1.8

An image wall of press visuals, a world map of the places mentioned, today's newsmakers as portraits, your stories as ribbons that thicken day by day, the pulse of your sources — and a musical mood for every screen. See the roadmap.

Setting up Agency

The complete step-by-step guide: the archive, network reach, connecting machines, backups and plugging in an assistant.

Agency in pictures

Screenshots taken on a real archive of 9,880 articles — no demo screens. Machine identifiers and the backup path are deliberately masked.

Agency's dashboard
The dashboard — the state of the holdings at a glance, and the last verified backup.
The web of most-cited entities
The web — the 48 most-cited entities; a line joins those appearing together.
Growth curves of the holdings
Chronicles — how the holdings grow, and each node's production compared.
The list of connected nodes
Nodes — the machines that deliver, what they delivered, and their tokens.
An entity's file
Entities — 17,230 records, with presence over time and linked articles.
Licence and backup settings
Licence and backup — the tier, the cadence, and the verification that truly opens the file.
A real example, drawn. A complete setup — thirteen devices, seven Tailscale nodes, four data providers, one agency host — with the direction of every flow: who writes into the holdings, who reads them, and what travels over iCloud rather than the tailnet. See the architecture diagram.

Before you start

Who it is for

fornews.ai is not one application, it is a range — and each piece plays a different role rather than a different size. iPhone, iPad and Apple TV are there to read. The Mac collects and works: it follows the feeds, extracts entities, corrects, builds stories. Agency keeps — it gathers what several Macs produce into a single archive and serves it to a whole team. Taken together they make a complete news-monitoring experience, from the morning glance to a multi-year archive.

The Agency edition is for those who want to go further in managing the news: a newsroom, an intelligence or marketing team — but also the enthusiast who has followed a subject for years and refuses to watch it vanish along with a site that shuts down. It is not a question of volume but of demands: wanting the corpus to last, to be shared, and to be able to say where every article came from.

You do not need Agency to get good use out of fornews.ai. A single Mac goes a long way, and it is the right place to start. Agency answers one precise limit — a device will never hold millions of articles, and a corpus living on one machine dies with it.

What it does, and what it does not

Agency collects nothing itself. It receives. Collecting stays the job of the fornews.ai app on your machines: that app follows the feeds, fetches articles and extracts entities. Agency gathers them and keeps them.

Requirement: the fornews.ai app, version 1.7 or later, on at least one machine — delivery does not exist before it. The Mac remains the reference collector: it runs continuously and can serve. iPhone and iPad deliver too. Only the Apple TV reads without delivering: it does not collect, and has no keyboard for a token.

You'll want two machines for this to mean anything: the one hosting the agency, and at least one that collects. They can be the same machine at first, while you find your feet.

One agency, one archive. Two archives are two collections that never talk to each other. Creating one "just to try" alongside one you already feed leaves half your articles here and half there. The app warns you when it spots the case, but it cannot guess your intent.

The archive

  1. Choose where it lives

    On first launch, Settings asks for a folder. Agency creates an archive.store file inside it. An internal disk suits it better than a network volume: the archive is a database, written to continuously.

  2. Keep it standing

    A server that falls asleep is not a server: collectors find the door shut, with no error, and you only notice through missing articles. Two settings answer this, and you want both — they address two different failures.

    Prevent sleep is on by default, and holds only while a door is listening: Agency does not keep your Mac awake for nothing.

    Always on → "Start at login" answers the other, sneakier failure: after a power cut or an update, the Mac restarts and the app does not come back. Nothing looks broken — the application is simply closed, and collectors push into the void.

    And the window can disappear without stopping anything. Agency leaves a database-shaped icon in the menu bar: closing the window puts it away there, the service keeps running, and the menu tells you at a glance whether the archive is open and the doors are listening. That is the normal mode for a Mac whose only job is to serve.

  3. Bring an existing collection over

    If you already have a corpus in the Mac app, export it (a .fornewsarchive file) and bring it in through Import archive. The import happens in two stages: Agency takes inventory and shows you what the file holds before writing anything.

Network reach

Agency opens two doors, and you decide how far they carry. The setting covers both — restricting one while leaving the other open would only look like restricting.

ReachWhat it meansWhen to pick it
This machine only
(default)
Invisible from the network, including your own LAN. Agency and collector on the same Mac.
Tailscale only Reachable over your tailnet, invisible on every other network — public Wi-Fi included. The usual case as soon as there are two machines.
All interfaces Every interface is bound, including public networks this Mac joins. A network you control end to end, and only there.
Network exposure is asked for, never inherited from a default. That's why Agency starts local and lets you widen it knowingly. Tokens protect access either way; reach decides who may even knock.

The two ports, once and for all:

PortDoorDirection
5274Ingestion Your Macs write — articles arrive through here.
5275MCP Your tools read — this door is read-only.

Connecting a node

A node is a machine that collects — a Mac, an iPhone or an iPad. Connecting it takes two moves: the agency issues a token, the collector presents it.

Every node takes a seat in your tier, and only active nodes count: deactivating a machine that no longer serves frees its place. With no purchase, the agency accepts one node — enough to try everything for real.
TierNodesPrice
No licence1—
Atelier5CHF 10.—
Studio12CHF 50.—
Rédaction25CHF 200.—
Agence60CHF 500.—
RéseauunlimitedCHF 900.—

A one-off purchase, not a subscription. ⚠️ Each collecting machine also needs the fornews.ai app: a tier is not the full cost of a workstation.

Reading depends on no purchase. Searching, exporting, backing up and querying the holdings over MCP stay whole at every tier — only the arrival of a new node is gated. An archive spanning years belongs to the newsroom, not to the publisher.
  1. On the agency — issue the token

    Administration → issue a delivery token for the node. The token is shown once only: the archive keeps just its fingerprint, as it would for a password. Copy it straight away.

    Two tokens, not one. Delivering archives and querying the collection are distinct uses, often carried by different software. Separating them lets you cut someone's read access without interrupting their deliveries — and the other way round. A single token would make every revocation total.
  2. On the collector — present the token

    In the Mac's fornews.ai app, Agency section: the agency's address, the token, and the frequency. Once an hour suits most uses; a delivery only sends what is new since the last one.

    # The address is that of the INGESTION door
    http://<agency-address>:5274
    The first delivery is long, later ones are not. It catches up on the whole history in batches; after that it carries only what's new. A catch-up counter tells you what remains.
  3. From an iPhone or iPad: scan

    A phone that has collected on its own — travelling, with no Mac running — can deliver too. But a brand-new device raises a bootstrapping problem: it has no node yet, so there is nothing to issue a token "for".

    Hence a separate gesture, in Nodes: "Connect a device…" issues a token bound to no machine, valid for thirty days, with its QR code. The device identifies itself on its first delivery: its node is born at that moment, within your tier's ceiling, and the token is then attached to it — so it only ever enrols once.

    On the device: Settings → Agency archive, switch on "Deliver my articles to an agency archive", then "Scan the agency's QR". The address and the token fill themselves in one gesture. All that is left is "Deliver now".

    NEVER give a phone the token of a Mac that is already connected. A delivery's identity comes from the token, never from the body of the request — that is what stops one machine from posing as another. The workaround would therefore file the phone's articles under the Mac, silently and without error. That is precisely what "Connect a device…" avoids.
    The button is greyed out under "This machine only". No other device can reach the agency then: a QR code would be a lie. Change the network reach and it becomes available.
    ⚠️ A QR does not create the network path. The phone still has to reach the agency. If it belongs to somebody else — hence to another tailnet — machine sharing opens that one machine to them, without exposing it to the internet.
    That square IS the token. Anyone who photographs it gains the right to deliver. It is shown on request, and the token stays revocable at any moment from Administration.

    Scanning is never the only route: the entry fields remain below, for a device without a camera or if permission is refused.

    Keep the screen open during the pass. iOS suspends an app sent to the background, and a first delivery of two thousand articles takes more than a minute. Nothing is lost if you leave — the cursor only advances on success, so the pass is redone — but it will not finish on its own.
  4. Check that it holds

    On the agency, Nodes lists the connected machines and when each last delivered. Trends shows their output over time and lets you compare them — a Mac that has dropped off shows as a curve falling flat, without vanishing from the legend.

    And the Log records every delivery as it happens:

    Studio Mac mini delivered 23 article(s) — 6 new, 17 already known, 0 refused

    It refreshes itself — the interval is set in its filter bar, from Manual to 60 seconds, 10 by default. Fast enough that something you have just done shows up while you are still looking.

    One Mac counts once. A node's identity is a stable identifier kept in its keychain, not its machine name — which changes with system settings and would create duplicates.

Backups

A newsroom's archive is the thing you cannot collect again: articles vanish from sites, feeds stop, sources move. Backing it up is not an IT precaution — it is the only thing that makes the archive last.

  1. A destination, off this Mac

    Settings › Backup › choose a folder — a NAS, a rotation disk, a shared folder. The choice is remembered from one session to the next.

    On the same disk as the archive, it is not a backup: the failure that takes one takes the other. The whole point is that a copy outlives this Mac.
  2. A frequency, and how many to keep

    Three choices: Manual only, Once a day, Once a week. Then how many backups to keep — the oldest are removed as you go, so the destination does not grow without end.

    Keeping more than one copy has a precise reason: corruption can go unnoticed for a few days. With a single backup, it has already been copied over the good one by the time you notice.
  3. The recovery key — put it elsewhere, right away

    Backups are encrypted, because they leave FileVault's perimeter the moment they are copied somewhere else. The key is shown once only, when it is created.

    A backup encrypted with a key that only lives on this Mac is not a backup. If the machine is stolen or destroyed — the very reason for having backups — the key goes with it, and all that remains is unreadable files kept out of superstition. Put it in a password manager, or on paper, before closing the window. The app will keep reminding you until you confirm you have put it somewhere safe.
  4. Verifying means restoring

    The dashboard shows when a backup was last verified. Verifying does not mean comparing two file sizes: Agency opens the backup, checks SQLite integrity, the schema version, and reads real rows with real queries.

    A backup never restored is not a backup, it is a belief. A file truncated in the right place has the right size — which is why comparing sizes proves nothing.

Encryption & access

Two separate questions, better kept apart: what is encrypted, and who is allowed in. Here is what Agency actually does — including what it does not.

What is encrypted, and what is not
What we meanProtection
The archive, at rest FileVault, and nothing more — that is a choice. Encrypting it a second time with a key the app must be able to read on its own, in order to open the database, would protect against nothing: the key would sit next to the lock.
Backups AES-GCM in 4 MB chunks. Here the trade-off flips: a backup goes off to a NAS or a rotation disk and leaves FileVault's perimeter the moment it is copied.
⭐ Each chunk is authenticated with its index and the total count: reordering or truncating the file does not go unnoticed. A silently incomplete restore would be worse than one that fails.
An archive in transit HPKE (RFC 9180) in authenticated mode, suite Curve25519 · SHA-256 · ChaCha20-Poly1305 — encrypted for the agency, signed by whoever produced it.
⚠️ A plain .fornewsarchive file travels in the clear: its compression is not encryption, and strings reads the headlines straight out of it. It is the most exposed artefact in the chain, and sealing is exactly what fixes that.
Private keys The macOS Keychain. They are never written into the archive.
Neither door does TLS, and you should know that rather than assume otherwise. Their confidentiality comes from the network reach: under "Tailscale only", it is the tailnet's encrypted tunnel that protects the traffic. That is why "All interfaces" is a choice to make only on a network you control end to end — tokens would still be valid, but they would travel in the clear.

Tailscale is one means, not the only one. What Agency requires is a private path between collector and archive — a controlled local network, another VPN or a tunnel will do just as well. We prefer Tailscale because it needs no port opened and follows machines as they move between networks.

⭐ And it settles the case that comes up most in a newsroom: the device belongs to somebody else, hence to another tailnet. Machine sharing grants access to that one machine, without exposing it to the internet or bringing the person into your network.

⚠️ Tailscale quarantines a shared machine: it can receive connections, not open them. That costs nothing here — in Agency the collector always pushes, and the agency only answers. The feature is in beta at Tailscale as we write.

Who is allowed in

Access rests on tokens: 256 random bits, prefixed fna_ so you recognise them in a configuration file.

  • Never stored in the clear. The archive keeps only their SHA-256 fingerprint, as it would for a password. A token is shown once; nobody, not even you, can read it back afterwards.
  • A token does one thing. Roles are separate: ingestion (push articles, and nothing else), upload (deliver a whole archive), read (MCP), curation, administration.
  • Revocable and dated. Cutting an access is immediate, and each token carries its last-used date — "never used" is information, not a gap.
Two tokens rather than one with broad rights, and that is deliberate. Delivering archives and querying the collection are distinct uses, often carried by different software. Separating them lets you cut someone's read access without interrupting their deliveries — and the other way round. A single token would make every revocation total.

Above the tokens, two guarantees the code enforces:

  • The MCP door cannot write. It opens the archive through a second connection, read-only: a guarantee of the engine, not a discipline asked of the tools.
  • Sign in with Apple proves who someone is; it is the list of authorised people that says whether they may come in. The two are kept separate on purpose.

Querying the archive

The MCP door gives Claude — or any compatible client — a read of the whole corpus: full text search, entities, trends, timelines, source health. The tool reference is here.

On this Mac, Administration shows a ready-to-paste configuration: it points at a token file your client re-reads every time. Nothing to renew.

For another machine, the "Issue a token for a remote machine…" button delivers a durable token — valid for a year, revocable, listed with the others. The full configuration is then shown once only:

{
  "mcpServers": {
    "fornews-agence": {
      "type": "http",
      "url": "http://<agency-address>:5275/mcp",
      "headers": { "Authorization": "Bearer fna_…" }
    }
  }
}
That token is a key. Keep it in your client's personal configuration, never in a project file tracked by git — one distracted git add would publish it along with everything else.

Connecting a client — what to know before trying

Three things that cannot be guessed, and that explain most configuration failures:

  • An ordinary conversation and a code session do not load the same things. Local MCP servers are declared on your machine; account connectors are remote services. A private server will never appear in the list of the latter.
  • Some clients only accept "stdio" servers — a local command — and refuse a remote HTTP address. A bridge such as mcp-remote solves that case: it presents the client with a local command and speaks HTTP to the agency behind.
  • Plain HTTP is refused towards a remote address, and that is a legitimate protection. Towards 127.0.0.1, it is not.
Hence the simple rule: on the agency's Mac, aim at 127.0.0.1. Both doors listen on the loopback in addition to the chosen reach, and that address triggers none of the protections above. For another machine, the tailnet address and a durable token — and if it sits outside your tailnet, machine sharing.

The simplest route: ask your client

You do not have to write that JSON yourself. Clients can edit their own configuration, and they do it better than a manual copy: they know where the file lives and what its syntax is. Describe what you want:

Add this MCP server to my configuration. Use a local MCP proxy
via npx mcp-remote, so that the localhost URL is preserved.

Name: fornews-agence
URL: http://127.0.0.1:5275/mcp
Authorization header: Bearer <your-token>

Preserve existing servers and preferences, then validate the configuration.

Proven with GitHub Copilot, Codex and Claude: all three configure themselves this way.

"so that the localhost URL is preserved" is not filler. It is what stops the client from replacing 127.0.0.1 with the machine's network address — a harmless-looking substitution that immediately re-triggers the plain-HTTP refusal described above. The bridge stays local; nothing leaves the Mac.
Do not paste your token into a conversation you do not control. This request hands it to the client: it belongs in an assistant running on your own machine, not in a third-party service whose retention you know nothing about.
Querying the holdings from an iPhone or iPad

The 127.0.0.1 rule looks as though it pins you to the agency's Mac. It does not. With Claude and the Dispatch option, you hand a question from your phone or tablet to the session running on that Mac: it queries the holdings, and you read the answer wherever you are.

Nothing is exposed by doing so. The mobile device never reaches the MCP door: it holds no token, and needs no access to the agency's network. The door still listens only on the loopback and the reach you chose. It is the same rule as always — the client stays on the Mac — simply driven from afar.
With a local model: nothing leaves the machine

The MCP door assumes no online service. Wired to LM Studio Bionic — LM Studio's agent for open models, running natively on the machine — it gives good results, and the whole chain stays with you: the holdings never leave the agency, the question never leaves the workstation, nor does the answer.

What this changes for a newsroom. Querying your holdings means describing what you are looking for — your subjects, your leads, sometimes your sources. With a remote service those questions leave the building; with a local model they do not. For sensitive work, that is the difference between a tool you can use and one you rule out.
A local model is not an equal model. Over holdings of several thousand articles, the quality of a synthesis depends heavily on the model and its context window. Try it on your own questions before concluding — ours is not necessarily yours.
The two MCP servers complement each other

If you put Agency to work, its MCP server does not replace the Mac app's — it covers the other half. The Mac app writes into your corpus: creating a source, correcting an entity, building a story. Agency reads at newsroom scale, and answers questions a single Mac cannot even ask: where did this element come from, which node delivered it, whose access has gone dormant.

What you want to dofornews.ai (Mac)Agency
Search, read, relate articles✅✅ across the whole archive
Entities: list, open the dossier✅✅
Analysis: timeline, trends, share of voice✅✅
Sources: list, health✅✅
Stories: list, open✅✅
Corpus volumetrics✅✅
Create, correct, delete a source✅⛔
Detect a site's feeds✅⛔
Interests: create, update, delete✅⛔
Stories: create, add, remove, export✅⛔
Dismiss, restore, favourite an article✅⛔
Correct entities: merge, retype, ignore, link a QID✅⛔
Provenance of an element — which node, which import⛔✅
Import history⛔✅
Tokens: who has access, which one is dormant⛔✅
Backups: history and verifications⛔✅
Archive quality⛔✅
Database integrity⛔✅

38 fornews_* tools on the Mac, 21 agence_* tools on Agency, six of them reserved for administration.

Keep both configured at once. The prefixes differ — fornews_* and agence_* — so an assistant picks the right server on its own: your Mac to act on your sources, the agency to query years of corpus.

If it doesn't work

What you seeWhat it is
The collector says the agency didn't answer Reach is still This machine only, or the agency is asleep. Both are in its Settings.
An access permission error at startup The archive folder moved, or its disk was renamed. The archive is intact: pick the folder again, once.
The door answers 401 That's a good sign: it is listening and refusing what it should. The token is missing, expired or revoked — issue a new one.
The article count isn't moving Look again more than a minute later: a batch of two thousand articles takes longer than that to pass. The last successful delivery time is more reliable than the counter.
Two nodes for a single machine Tell us: identity is meant to be stable. Merging is done from Nodes.

A question that isn't here? Support is this way.