LLM
11 providers API + 3 harnais distants
OpenRouter, Anthropic, OpenAI, Kimi, Moonshot, Z.ai, Zhipu, DeepSeek, Groq, Mistral… ou tes propres CLI (Claude Code, Codex, Kimi Code) pilotées sur ta machine.
iOS · iPadOS · macOS auto-hébergé zéro télémétrie
L'interface entre l'intelligence et tes machines.
Un harnais agentique complet : la boucle LLM ⇄ tool calls ⇄ MCP tourne directement dans l'app et relie 14 providers à tes serveurs MCP distants. Le téléphone est le harnais — aucun companion desktop, aucun relais intermédiaire.
Aller droit au but
Deux serveurs, une clé API, quatre étapes — et tu discutes.
Chaque pouvoir est borné, visible et révocable.
87 compétences en Markdown, 8 injectées par pertinence.
Le même moteur que l'app, en ligne de commande.
Données, modèles, TestFlight : les réponses franches.
Livré, en cours, prochain, exploration — sans date promise.
Ça bouge
Junction avance vite. Les dernières capacités arrivées dans l'app — toutes fonctionnelles.
Commande, sortie, durée, historique — chaque commande est un aller-retour indépendant, le dossier de travail persistant par machine tient le rôle du cd.
Navigation dans les fichiers de tes machines executoria, directement depuis l'app.
L'interface du cron hypermemory (schedule_create), avec l'UTC affiché explicitement — plus de fuseau ambigu.
Demander à Junction, approuver une action, consulter le statut — Siri et l'app Raccourcis peuvent déclencher l'app.
L'agent déclenche uniquement les raccourcis que tu as inscrits toi-même, par nom exact. Aucune découverte, aucun matching approché.
Le texte d'une photo ou d'un document scanné est extrait sur l'appareil — rien ne part au cloud.
Le runtime de missions durables existe dans JunctionCore, couvert par 331 lignes de tests. L'interface arrive ensuite.
L'agent trace ce qu'il fait dans un journal consultable, et les réponses arrivent token par token.
Le tour du propriétaire
Six surfaces, une seule app. Clique sur un onglet pour voir ce que chaque vue sait faire.
monospace, barre d'activité, bouton Arrêter.maxTurns = 12 outils enchaînés par question, réponses en Markdown.
machine_list, machine_exec, machine_read_file, machine_glob, machine_grep.machine_exec passe par l'ApprovalSheet : la commande exacte, ton accord explicite.
junction-iphone / junction-mac stockées au Trousseau.
/health sur executoria : la flotte répond, ou tu le sais tout de suite.
En vrai
Une question, deux tool calls, une approbation, une réponse. Voilà à quoi ressemble une session Junction — reconstituée fidèlement.
❯
tool call list_projects()
✓ 54 projets · 12 actifs cette semaine
tool call machine_exec(host: "mac-atelier", cmd: "cargo build --release") approbation demandée
↳ ApprovalSheet affichée · autorisé (famille « builds », 30 min)
✓ exit 0 · Finished `release` profile in 1m 42s
agent 54 projets en mémoire, 12 actifs. Le build release d'hypermemory vient de passer sans erreur sur mac-atelier — binaire prêt dans target/release/.
Chaque machine_exec demande ton accord. Refus par défaut : rien ne part sans toi.
Architecture
Trois pièces, une boucle. Junction se place au centre et fait circuler les tool calls entre les modèles et tes serveurs MCP.
11 providers API + 3 harnais distants
OpenRouter, Anthropic, OpenAI, Kimi, Moonshot, Z.ai, Zhipu, DeepSeek, Groq, Mistral… ou tes propres CLI (Claude Code, Codex, Kimi Code) pilotées sur ta machine.
La boucle agentique vit dans l'app
Tool calls exécutés localement, approbations humaines avant chaque action sensible, mémoire et contexte injectés avant chaque tour. Pas de serveur intermédiaire.
hypermemory · executoria
hypermemory : mémoire, 54 projets, canaux de coordination. executoria : ta flotte de 10 machines, exécutée sous approbation.
Transport Streamable HTTP en HTTPS — aucun port entrant sur tes machines ni sur ton téléphone.
Capacités
Chaque fonctionnalité listée ici est implémentée et fonctionnelle. Rien n'est une promesse.
Une vraie boucle agentique, pas un simple chat : le modèle appelle des outils,
Junction les exécute et renvoie les résultats, jusqu'à maxTurns = 12.
monospace, barre d'activité et bouton Arrêter.
54 projets réels accessibles depuis la poche, avec cache disque : tes données s'affichent même hors-ligne.
Ta flotte réelle : seules les machines joignables sont listées, avec une fiche détaillée pour chacune.
machine_list, machine_exec (sous approbation), machine_read_file, machine_glob, machine_grep.
Un terminal sur chaque machine de la flotte : tu tapes la commande, Junction affiche la sortie, la durée et conserve l'historique.
cd : persisté par machine, avec les derniers dossiers visités.Navigue dans l'arborescence de tes machines executoria depuis l'app : dossiers, fichiers, contenus — sans ouvrir de session SSH.
L'interface du cron hypermemory : crée et suis les planifications
(schedule_create) depuis la poche.
Junction s'intègre à iOS : Siri et l'app Raccourcis peuvent déclencher l'app via des App Intents dédiés.
Le texte d'une photo ou d'un document scanné est extrait sur l'appareil — rien ne part au cloud.
L'agent trace ce qu'il fait : chaque action est consignée dans un journal consultable. Tu sais toujours ce qui s'est passé, et quand.
Le runtime de missions durables existe dans JunctionCore, couvert par 331 lignes de tests. L'interface utilisateur arrive dans une prochaine livraison.
Lis et écris sur les canaux de coordination hypermemory depuis l'iPhone — la coordination humain ⇄ agent ne quitte plus ta poche.
junction-iphone / junction-mac stockées au Trousseau.
87 compétences chargées depuis hypermemory — projet partagé + projet courant — qui étendent l'agent sans toucher au code.
skill_read charge n'importe quelle compétence à la demande.Avant chaque tour, l'agent sait déjà quelles machines sont joignables, quels services répondent et quelles sont ses limites du moment. Il ne devine pas : il constate.
Envoie et récupère des extraits entre tes appareils via hypermemory. Un pont simple entre iPhone, iPad et Mac, sans service tiers.
junction-cli
Le même moteur, en ligne de commande : spike MCP + sous-commande agent,
construite sur les mêmes modules que l'app.
Confiance
L'agent peut beaucoup. Chaque pouvoir est borné, visible et révocable.
Jetons et clés API stockés dans le Trousseau avec ThisDeviceOnly. Jamais réaffichés après saisie, jamais synchronisés.
Aucun transport en clair. Toutes les connexions MCP passent en HTTPS, point.
machine_execChaque exécution à distance affiche une ApprovalSheet avec la commande exacte. Refus par défaut : rien ne part sans ton accord explicite.
34 outils hypermemory en lecture, pas un de plus. Tout outil non listé est invisible pour le modèle et rejeté côté client.
Fixtures supprimées. Chaque état est honnête : live, périmé ou erreur — affiché tel quel.
Les autorisations par famille d'actions expirent après 30 minutes — et les profils privilégiés user_full / system_admin ne sont jamais couverts par une autorisation de famille : chaque action sensible demande son propre accord.
L'agent ne déclenche que les raccourcis que tu as inscrits toi-même, par nom exact. Pas de découverte automatique, pas de matching approché — et l'outil n'existe pas tant que la liste est vide.
Pas de tracking, pas d'analytics, pas de SDK tiers. Tes usages restent chez toi.
Démarrage
Quatre étapes, quelques minutes.
Réglages → ajoute ton serveur hypermemory (URL …/mcp + jeton). Le test de connexion est franc : ça passe ou ça dit pourquoi.
Ajoute l'URL du hub + jeton. Une sonde /health vérifie que la flotte répond.
Catalogue intégré : sélectionne un provider, colle ta clé API — elle part au Trousseau. Ou choisis un harnais distant pour utiliser tes abonnements existants.
C'est tout. L'agent connaît déjà tes projets, tes mémoires et tes machines avant le premier message.
Les Réglages couvrent aussi le dossier de travail par machine (utilisé par le terminal, jamais exposé au modèle) et le registre de raccourcis personnels que l'agent est autorisé à déclencher.
Demain
Ce qui est livré, ce qui est en cours, ce qui suit — présenté comme tel, sans date promise.
schedule_create), UTC expliciteQuestions
Uniquement vers tes serveurs : les API LLM que tu as choisies, hypermemory et executoria — que tu héberges. Aucune télémétrie, aucun tiers, aucun relais. Les clés restent au Trousseau, sur l'appareil.
Non pour le chat avec les providers API : tout part de l'app vers Internet. Oui si tu utilises les harnais distants (Claude Code, Codex CLI, Kimi Code) ou les outils machines — ils tournent sur ta machine, par définition.
Tout ce que proposent les 11 providers supportés : OpenRouter (des centaines de modèles), Anthropic, OpenAI, Kimi For Coding, Moonshot, Z.ai/GLM, Zhipu, DeepSeek, Groq, Mistral, ou un endpoint custom. Plus tes propres CLI via les harnais distants.
Un fichier Markdown qui enseigne une compétence à l'agent (une procédure, un contexte, un savoir-faire). Junction en charge 87 depuis hypermemory, en injecte les 8 plus pertinentes au prompt, et lit les autres à la demande. En ajouter une = déposer un fichier.
Non. Junction est un projet personnel, distribué tel quel. L'infrastructure qu'il pilote (hypermemory, executoria) est auto-hébergée — c'est elle qui te garantit l'indépendance.
La distribution se fait via TestFlight, sur invitation. Si tu es sur la liste, installe, configure tes deux serveurs, choisis un provider — et discute.