OAR

Open Agent Relay

Gardez la barre sur vos agents de code, où que vous soyez.

Un relais web auto-hébergé qui vous laisse piloter les agents de code lancés sur votre machine depuis n’importe quel navigateur — téléphone, tablette ou deuxième ordinateur.

curl -fsSL oar.sh/install | sh

Lisez le script avant de l’exécuter. Sous Linux et macOS, pas besoin de Node.js — l’installeur apporte le sien si le vôtre manque ou est trop ancien. Windows demande Node.js 22.13 ou plus récent.

auto-hébergévotre machine, vos clésMITaucune télémétrie dans le relais

À l’usage

Du vrai travail, où que vous soyez

Ces scènes sont rejouées depuis l’historique d’OAR lui-même — un serveur mail Cloudflare et un jeu multijoueur, pilotés depuis un navigateur. Lisez le raisonnement de l’agent, répondez à ses questions et corrigez le cap en plein turn.

OAR sur un téléphone : un agent annonce que trois subagents ont livré un client SMTP sans dépendances avec 1 105 tests au vert, et la réponse dit « testé et ça marche » OAR sur un téléphone : un agent annonce que trois subagents ont livré un client SMTP sans dépendances avec 1 105 tests au vert, et la réponse dit « testé et ça marche »
Sur téléphone — trois agents ont livré un client SMTP pendant votre absence.
Vue bureau d’OAR : l’agent annonce que son propre déploiement a mis hors service toutes les boîtes mail, explique pourquoi l’ordre des migrations en est la cause, et note que les 37 tests d’intégration passaient pendant que la production était cassée Vue bureau d’OAR : l’agent annonce que son propre déploiement a mis hors service toutes les boîtes mail, explique pourquoi l’ordre des migrations en est la cause, et note que les 37 tests d’intégration passaient pendant que la production était cassée
« déploie » — un seul mot, et un agent qui rapporte sa propre panne, en détail.
OAR affichant un bloc Thoughts déplié : l’agent raisonne sur l’input gating des Durable Objects, qui laisse une vérification passer à travers un await, puis rapporte que six messages produisaient six objets, corrigé avec 78 tests au vert OAR affichant un bloc Thoughts déplié : l’agent raisonne sur l’input gating des Durable Objects, qui laisse une vérification passer à travers un await, puis rapporte que six messages produisaient six objets, corrigé avec 78 tests au vert
Lisez le raisonnement, pas seulement la réponse — le thinking est à l’écran.
Carte de question d’OAR : l’agent demande comment planDelivery doit traiter un mail qui échoue à la fois à SPF et à DKIM, avec trois choix et une réponse libre, l’en-tête signalant une question en attente Carte de question d’OAR : l’agent demande comment planDelivery doit traiter un mail qui échoue à la fois à SPF et à DKIM, avec trois choix et une réponse libre, l’en-tête signalant une question en attente
Quand il lui faut une décision, il demande — et il attend, depuis votre poche.
OAR pilotant un turn en cours : un message précédent marqué comme envoyé en plein turn et traité avec la réponse, une nouvelle demande en cours avec son bouton Stop, et un message rédigé en attente sur le bouton Steer OAR pilotant un turn en cours : un message précédent marqué comme envoyé en plein turn et traité avec la réponse, une nouvelle demande en cours avec son bouton Stop, et un message rédigé en attente sur le bouton Steer
Pilotez en plein turn — votre idée suivante rejoint le travail déjà en cours.
Question à choix multiples dans OAR : l’agent demande quels événements de la boîte mail doivent déclencher un web push, trois choix sur quatre sont cochés, la sélection multiple est activée et un bouton envoie la sélection d’un coup Question à choix multiples dans OAR : l’agent demande quels événements de la boîte mail doivent déclencher un web push, trois choix sur quatre sont cochés, la sélection multiple est activée et un bouton envoie la sélection d’un coup
Certaines questions ont plusieurs réponses — cochez-les toutes, répondez une fois.

Équipes d’agents

Un turn, tout l’équipage

Les agents peuvent répartir le travail sur des subagents qui tournent en parallèle — et OAR les garde tous à l’écran : le modèle sur lequel chacun tourne, la commande qu’il exécute à l’instant, compteurs de tokens en direct, le temps écoulé, et un bouton Stop qui marche aussi depuis votre téléphone.

  • Les tâches de fond continuent pendant que vous lisez, corrigez le cap ou partez faire autre chose.
  • Chaque subagent se suit et s’interrompt individuellement.
  • Fonctionne d’emblée avec les systèmes de tâches de Claude et de Copilot — agents en arrière-plan comme shells détachés.
OAR affichant une session Claude avec trois subagents de fond lancés en parallèle sur le client SMTP, l’API et le chemin d’envoi, et l’interface de réglages — chacun avec ses compteurs de tokens en direct, son temps écoulé et son bouton Stop OAR affichant une session Claude avec trois subagents de fond lancés en parallèle sur le client SMTP, l’API et le chemin d’envoi, et l’interface de réglages — chacun avec ses compteurs de tokens en direct, son temps écoulé et son bouton Stop
Trois agents qui se partagent un seul chantier — compteurs de tokens en direct, et un bouton Stop chacun.
OAR avec des tâches de fond Copilot : deux agents en arrière-plan sur GPT-5.6-sol et Haiku 4.5 et un shell Bash surveillé, chacun avec sa commande en cours, son compteur de tokens, sa durée et son bouton Stop, sous une réponse de continuation en arrière-plan OAR avec des tâches de fond Copilot : deux agents en arrière-plan sur GPT-5.6-sol et Haiku 4.5 et un shell Bash surveillé, chacun avec sa commande en cours, son compteur de tokens, sa durée et son bouton Stop, sous une réponse de continuation en arrière-plan
Le même équipage sous Copilot — agents et shells en arrière-plan, chacun avec son modèle et son Stop.

Sessions surveillées

Des agents qui surveillent d’autres agents

Un agent peut s’abonner à d’autres sessions — sur le même relais ou sur un relais associé — et il est réveillé dès qu’il s’y passe quelque chose : une question en attente de réponse, une erreur, une réponse, une tâche de fond terminée, une session devenue silencieuse. Pas de polling : OAR dépose une courte note dans la conversation de l’agent qui surveille, et c’est lui qui prend la suite.

  • Un abonnement ne fait que prévenir. Un événement n’approuve rien et ne répond à rien ; l’agent peut faire exactement ce qu’il pouvait faire avant, et rien de plus.
  • Le premier abonnement d’une conversation, c’est vous qui l’approuvez, sur une carte. L’en-tête affiche ensuite watching N sessions, avec un Unsubscribe pour chaque abonnement.
  • Entre relais associés aussi : chaque événement indique son relais, et ce qui s’est passé pendant une coupure de la liaison arrive en une seule ligne rejouée.
  • Une rafale d’événements tient en un seul message, et une heure chargée devient un récapitulatif — les questions et les erreurs passent quand même aussitôt.
  • Quand des agents se parlent, la note et la réponse se replient en une seule ligne, et le journal complet de chaque subagent est à un clic.
OAR : une session de release surveille deux autres sessions — une réponse terminée arrive sous forme de ligne compacte d’événement du relais, la liste « watching 2 sessions » est ouverte avec Unsubscribe, et la demande de l’agent de surveiller aussi une session sur un relais associé attend sur une carte Allow / Deny OAR : une session de release surveille deux autres sessions — une réponse terminée arrive sous forme de ligne compacte d’événement du relais, la liste « watching 2 sessions » est ouverte avec Unsubscribe, et la demande de l’agent de surveiller aussi une session sur un relais associé attend sur une carte Allow / Deny
Une session en surveille deux autres : leurs événements arrivent en lignes compactes, et un nouvel abonnement attend votre Allow.
OAR : une réponse liste les deux subagents qu’elle a lancés, avec modèle, tokens et durée ; en dessous, un prompt de l’agent d’un relais associé et sa réponse, repliés en une seule ligne : « note from ci-box · Benchmark de nuit · replied » OAR : une réponse liste les deux subagents qu’elle a lancés, avec modèle, tokens et durée ; en dessous, un prompt de l’agent d’un relais associé et sa réponse, repliés en une seule ligne : « note from ci-box · Benchmark de nuit · replied »
Les subagents rendent compte en lignes qui s’ouvrent sur leur journal complet ; la note de l’agent d’un autre relais et sa réponse se replient en une seule ligne.

Runtimes

Un relais, huit runtimes

Choisissez la runtime conversation par conversation. Une queue, un historique, une interface.

Vue bureau d’OAR d’un chat DeepSeek avec deepseek-flash en mode Agent : le prompt demande les principales actus du jour sur DeepSeek avec sources ; la réponse donne trois puces courtes et six liens vers la documentation de l’API de DeepSeek, et son activité d’outils liste trois appels WebSearch, dont un en chinois Vue bureau d’OAR d’un chat DeepSeek avec deepseek-flash en mode Agent : le prompt demande les principales actus du jour sur DeepSeek avec sources ; la réponse donne trois puces courtes et six liens vers la documentation de l’API de DeepSeek, et son activité d’outils liste trois appels WebSearch, dont un en chinois
DeepSeek aussi : Claude Code sur l’API de DeepSeek, ici avec deepseek-flash. Trois recherches web, dont une en chinois, et une réponse avec ses sources.

Thèmes

Jour et nuit

OAR a un mode Jour et un mode Nuit, et chaque capture de cette page suit le sélecteur de la barre du haut. Faites glisser le séparateur pour comparer les deux ; le téléphone à côté montre le mode dans lequel cette page n’est pas.

Vue bureau d’OAR sur une réponse contenant un bloc de code coloré : le même écran en mode Jour à gauche et en mode Nuit à droite d’un séparateur mobile
Une réponse avec un bloc de code : Jour à gauche, Nuit à droite. Faites glisser le séparateur ou utilisez les flèches du clavier.
OAR sur un téléphone en mode Jour : la même réponse avec son bloc de code OAR sur un téléphone en mode Nuit : la même réponse avec son bloc de code
La même conversation sur un téléphone, dans le mode où cette page n’est pas.

Fonctionnalités

Ce que vous obtenez

Consommation du forfait

Sachez ce qu’il reste sur votre forfait

OAR suit la consommation forfait par fournisseur et rassemble le tout dans une seule modale. Ouvrez « Vérifier la consommation » en plein turn et vous voyez si une soirée entière d’agents tient encore dans votre forfait — avant que le fournisseur ne vous coupe, et depuis l’onglet même où vous pilotez les agents.

  • Abonnements Claude : la fenêtre de session de 5 heures, les limites hebdomadaires et ce que la session a coûté par modèle.
  • Copilot : le quota de Premium Requests, plus le détail par turn du worker SDK — AI credits, tokens, appels de modèle.
  • DeepSeek : le solde, un budget mensuel facultatif, les dépenses estimées par jour et par modèle, et le nombre de recherches web.
  • Claude API : les dépenses estimées du jour et du mois par modèle, et un plafond mensuel facultatif sous forme de barre.
  • Cursor et Grok ont leurs propres cartes, alimentées par le même panneau.
  • Les chiffres viennent du reporting des workers eux-mêmes et des API de quota des fournisseurs, et se mettent à jour pendant que vous travaillez.
Modale de consommation d’OAR sur un téléphone, carte Claude sur un forfait Max : fenêtre de session de 5 heures en cours à 72 pour cent, limite hebdomadaire à 41 pour cent, Opus hebdomadaire à 23 pour cent, et le détail du coût de la session par modèle Modale de consommation d’OAR sur un téléphone, carte Claude sur un forfait Max : fenêtre de session de 5 heures en cours à 72 pour cent, limite hebdomadaire à 41 pour cent, Opus hebdomadaire à 23 pour cent, et le détail du coût de la session par modèle
Claude sur Max, sur téléphone — 72 % de la fenêtre de 5 heures, et ce que la session a coûté par modèle.
Modale de consommation d’OAR, carte GitHub Copilot sur un forfait Pro+ : 1 062 Premium Requests consommées sur 1 500, quota du forfait à 31 pour cent, chat et complétions illimités, et le détail du dernier turn du worker SDK avec AI credits, tokens et appels de modèle Modale de consommation d’OAR, carte GitHub Copilot sur un forfait Pro+ : 1 062 Premium Requests consommées sur 1 500, quota du forfait à 31 pour cent, chat et complétions illimités, et le détail du dernier turn du worker SDK avec AI credits, tokens et appels de modèle
Copilot sur Pro+ — 1 062 Premium Requests consommées sur 1 500, et le détail par turn du worker SDK jusqu’aux tokens et aux appels de modèle.
Modale de consommation d’OAR, carte DeepSeek : 6,60 $ utilisés sur un solde de départ de 25,00 $, 5,97 $ sur un budget mensuel de 10,00 $, un graphique sur 30 jours des dépenses quotidiennes de DeepSeek Flash et DeepSeek V4 Pro, les dépenses réparties entre cache hits, cache misses et output, et les dépenses estimées par modèle avec une ligne Search qui compte 6 recherches Modale de consommation d’OAR, carte DeepSeek : 6,60 $ utilisés sur un solde de départ de 25,00 $, 5,97 $ sur un budget mensuel de 10,00 $, un graphique sur 30 jours des dépenses quotidiennes de DeepSeek Flash et DeepSeek V4 Pro, les dépenses réparties entre cache hits, cache misses et output, et les dépenses estimées par modèle avec une ligne Search qui compte 6 recherches
DeepSeek — le solde face à votre solde de départ, un budget mensuel, les dépenses par jour et par modèle, et chaque recherche web comptée.
Modale de consommation du contexte d’OAR : 318,4k tokens utilisés pour une fenêtre de compactage de 1M, répartis entre système et outils, messages, espace libre et la réserve d’auto-compact, avec le curseur de la fenêtre d’auto-compact et des bascules pour le thinking et le texte du thinking Modale de consommation du contexte d’OAR : 318,4k tokens utilisés pour une fenêtre de compactage de 1M, répartis entre système et outils, messages, espace libre et la réserve d’auto-compact, avec le curseur de la fenêtre d’auto-compact et des bascules pour le thinking et le texte du thinking
La fenêtre de contexte aussi — et le choix de faire réfléchir Claude, et de lire ou non son raisonnement.

Une réserve, en clair : ceci n’est pas une facture. Les chiffres de quota viennent des fournisseurs, mais les coûts de session sont des estimations qu’OAR calcule côté client à partir du nombre de tokens — à lire comme une jauge, pas comme un relevé.

Installation

Démarrage rapide

  1. Il vous faut au moins une CLI de fournisseur que vous utilisez déjà (Copilot, Claude, Cursor ou Grok — ou une clé d’API OpenAI, DeepSeek ou Claude Console). Sous Linux et macOS, rien d’autre ; sous Windows, il faut aussi Node.js ≥ 22.13.
  2. Lancez le one-liner. Sous Linux et macOS, il annonce ce qu’il va faire et pose une seule question. Il utilise votre Node.js s’il est assez récent, sinon il en télécharge un pour OAR seul, puis installe @oar-sh/oar dans votre dossier personnel — rien ne demande root. Le parcours macOS n’est pas encore testé.
  3. Il écrit la config avec un nouveau token d’auth, démarre le relais et affiche l’URL du relais avec un QR code — ouvrez-la et vous y êtes. Là où systemd fournit une session utilisateur, le relais tourne comme service et revient après un redémarrage. Sous Windows, l’installeur passe la main à oar setup, qui demande le token, l’accès et le port ; démarrez ensuite le relais avec oar start.
  4. Optionnel, et désactivé par défaut : l’accès LAN pour que votre téléphone se connecte directement — oar setup l’active — et un tunnel pour l’accès depuis l’extérieur de votre réseau, défini dans la config et qui utilise le cloudflared que vous installez. Ensuite, oar seul ouvre un menu avec démarrer, arrêter, redémarrer, état, URL et service ; la session Copilot dans le terminal, c’est oar copilot.

Ensuite : Premier lancement dans la documentation — la connexion, l’ouverture du relais sur votre téléphone, et tout ce qui suit.

Confiance

La sécurité, sans détour

OAR tourne sur votre matériel et n’écoute que sur localhost par défaut. Le token d’auth est généré en local et ne quitte jamais votre machine ; l’accès à distance se fait à la demande, via un tunnel que vous contrôlez. Et autant le dire franchement : les agents que vous relayez tournent avec les droits de votre utilisateur — OAR vous donne de la portée, pas une sandbox.

FAQ

Vos questions, nos réponses

Faut-il un abonnement Copilot ?
Non. Une seule runtime suffit — OAR relaie les agents que vous avez déjà.
Puis-je écrire à un agent pendant qu’il travaille ?
Oui. Avec Claude et avec le moteur SDK de Copilot (celui par défaut), ce que vous envoyez rejoint le turn en cours au lieu d’attendre qu’il se termine. Si l’agent attend votre réponse à une question, votre message se met en file et suit juste après.
Est-ce que ça tourne sous Windows ?
Oui. Le relais tourne sous Windows, macOS et Linux ; côté navigateur, ça marche partout.
OAR envoie-t-il mon code quelque part ?
OAR lui-même n’envoie rien. Votre code ne part que vers les fournisseurs de modèles que vous appelez, exactement comme il le ferait depuis leurs propres CLI.
Comment se passent les mises à jour ?
La vérification est opt-in — le relais ne contacte rien tant que vous ne l’activez pas dans les Réglages ou que vous n’appuyez pas sur « Vérifier maintenant ». Quand une version s’affiche, vous appuyez pour mettre à jour ; il ne redémarre que si aucun agent n’est en plein turn. Jamais automatiquement.
Puis-je l’héberger sur un VPS ou dans un homelab ?
Oui — partout où Node tourne. Gardez le token d’auth bien au chaud et préférez un tunnel à un port ouvert.

Changelog

Nouveautés

  1. 0.9.19

    • Un relais à court de mémoire redémarre de lui-même au lieu de rester arrêté. Il démarre désormais avec une limite de heap, 60 % de la RAM entre 2048 et 8192 Mo, que fixe heapLimitMb dans config.json, et écrit un instantané du heap dans diagnostics, dans son dossier de données, quand il approche de cette limite. Un instantané du heap contient le token d’authentification et les clés d’API du relais : ne le partagez jamais tel quel. Le journal indique la mémoire du relais toutes les 10 minutes et quand le heap dépasse 80 % de la limite.
    • Les sessions d’agents peuvent utiliser les fournisseurs qu’une mise à jour ultérieure du relais ajoute, sans redémarrage : relay_tool accepte n’importe quel identifiant de fournisseur, et le relais le vérifie par rapport à sa liste actuelle et nomme cette liste quand il en refuse un.
    • Copilot refuse l’identifiant de modèle d’un autre fournisseur, comme claude-opus-5-5 pour le claude-opus-5.5 de Copilot, avec COPILOT_MODEL_UNAVAILABLE et la correspondance la plus proche, avant de créer quoi que ce soit.
    • Tous les changements sont dans les notes de version.
  2. 0.9.18

    • Les chats Claude peuvent tourner sur une clé d’API de la Claude Console. Claude API est un fournisseur à côté de Claude (votre abonnement), facturé à l’organisation Console à laquelle appartient la clé. Settings → Providers → Claude API contient la clé, le modèle par défaut et un plafond de dépenses mensuel facultatif en dollars américains ; la clé est stockée sur la machine du relais et n’est plus jamais affichée. New Chat propose Claude API, et ses chats portent une pastille dorée « Claude API ».
    • Un chat Claude passe de votre abonnement à la clé, et inversement, avec le sélecteur Subscription | API key, et garde sa session Claude Code. Le changement s’applique dès le tour suivant ; le premier tour sur la clé n’a pas de cache de prompt et coûte plus cher. Quand un chat sur abonnement est en pause à la limite d’utilisation de Claude, la bannière propose le changement si le chat peut passer à la clé, et le tour en pause reprend aussitôt sur la clé. Rien ne bascule tout seul, et les agents peuvent changer la facturation d’une session avec relay_tool send.
    • La vue d’utilisation a une carte Claude API : ce que les tours de ce relais sur la clé ont coûté, selon l’estimation, aujourd’hui et ce mois-ci, par modèle, avec les tokens, et le plafond mensuel sous forme de barre si vous en fixez un. Les chiffres sont l’estimation de Claude Code lui-même ; les vrais sont sur la page de facturation de la Console. Quand l’estimation du mois atteint le plafond, aucun nouveau tour ne s’exécute sur la clé, un passage à la clé est refusé, et un nouveau chat Claude API reçoit CLAUDE_API_CAP_REACHED ; New Chat propose alors Start on subscription. Un tour déjà en cours va jusqu’au bout.
    • Les chats DeepSeek et Claude API démarrent avec tous les hooks désactivés : aucun hook ni ligne d’état ne s’y exécute, et les réglages d’un dossier ne peuvent pas les réactiver. Les hooks des réglages gérés (managed settings) s’exécutent toujours, et les chats sur votre connexion Claude gardent leurs hooks et leur ligne d’état.
    • Un chat sur abonnement ne tourne jamais sur une clé d’API que lui fournissent les réglages de Claude Code (env.ANTHROPIC_API_KEY, un apiKeyHelper ou une connexion Console). Le tour s’arrête au démarrage de Claude Code, avec une note qui nomme la source et le réglage à retirer ; au plus une requête au modèle peut partir avant.
    • L’outil d’agent du relais s’appelle désormais relay_tool (chez Claude, mcp__relay__relay_tool), avec les mêmes actions et champs. Si vos propres instructions, règles de permission ou hooks nomment remote_relay, modifiez-les : hors du serveur MCP d’OAR, l’ancien nom est refusé.
    • Tous les changements sont dans les notes de version.
  3. 0.9.17

    • DeepSeek devient un fournisseur à part entière. Collez une clé d’API DeepSeek dans Settings → Providers → DeepSeek, et New Chat propose les modèles de DeepSeek. Un chat DeepSeek exécute Claude Code sur la machine du relais, face à l’API de DeepSeek, avec les quatre modes, les outils, les cartes de question, les sous-agents, la correction de cap et les tâches de fond, un effort de raisonnement low, high ou max et la fenêtre de contexte de 1M.
    • La clé est stockée sur la machine du relais, n’est jamais envoyée à un navigateur et ne parvient qu’aux workers de DeepSeek. Un .claude/settings.json ou .claude/settings.local.json dans le dossier du chat ne peut pas envoyer la clé ailleurs. Cela couvre les réglages, pas les commandes : les hooks et une ligne d’état dans ces fichiers s’exécutent toujours sous l’utilisateur du relais, comme dans tout chat Claude Code ; n’utilisez donc les chats DeepSeek que dans des dossiers de confiance.
    • La vue d’utilisation a une carte DeepSeek : le solde du compte, les dépenses estimées des tours DeepSeek de ce relais par modèle, d’après les prix publiés par DeepSeek avec heures pleines et creuses, les dépenses quotidiennes des 30 derniers jours, et un budget mensuel si vous en fixez un. Import usage export, dans l’onglet DeepSeek, met sur la carte les chiffres de DeepSeek pour les jours que couvre l’export.
    • Une nouvelle session dans un groupe apparaît en haut du groupe. L’ordre que vous avez fixé reste.
    • Les identifiants Anthropic du relais lui-même ne parviennent plus aux agents qu’il lance : ANTHROPIC_API_KEY et ANTHROPIC_AUTH_TOKEN n’atteignent aucun worker, et un jeton de connexion Claude dans l’environnement du relais n’atteint que les workers Claude et Claude Cloud. Les chats Claude qui tournaient avec une telle clé utilisent désormais la connexion Claude de l’hôte.
    • Corrigé : l’Inbox s’ouvre en haut, ou là où vous l’avez laissée ; sur un téléphone, l’en-tête de session tient sur deux lignes ; les modèles d’image d’OpenAI fonctionnent à nouveau sur le moteur SDK.
    • Tous les changements sont dans les notes de version.
  4. 0.9.16

    • Les agents peuvent vous poser une question sans interrompre leur travail. La nouvelle Inbox, dans la barre latérale, réunit toutes les questions ouvertes de ce relais et de ses relais associés. Vous répondez là ou dans la session ; les cartes d’approbation d’un relais associé s’ouvrent sur ce relais.
    • Les agents peuvent planifier des prompts, une seule fois ou toutes les quelques minutes, et le relais les garde d’un redémarrage à l’autre. L’en-tête d’une conversation liste ses planifications, chacune avec un bouton Cancel.
    • Les agents peuvent changer le modèle, le mode, le titre, le groupe ou le dossier de travail d’une autre session. Pour une session qu’ils n’ont pas lancée, il faut d’abord votre Allow.
    • Les agents peuvent ranger les sessions qu’ils lancent dans vos groupes de sessions, et un agent qui observe des sessions peut demander à être réveillé moins souvent : un résumé toutes les quelques minutes, des heures calmes, ou des sessions laissées de côté.
    • Un nouvel interrupteur dans les réglages 🧠 d’une session lancée par un agent permet à ses agents de lancer à leur tour des sessions.
    • Corrigé : les événements du relais et les autres messages automatiques ne comptent plus comme votre message, si bien que des agents qui se relancent les uns les autres vous demandent votre accord plus tôt.
  5. 0.9.15

    • Sous Windows, oar setup demande comment le relais démarre : à l’ouverture de session, au démarrage avant que quiconque ouvre une session (une demande administrateur), ou pas du tout. oar autostart signin|boot|off|status change de mode plus tard et montre ce qui est en place.
    • oar uninstall arrête le relais, retire les entrées de démarrage automatique créées par OAR, puis le paquet. Votre configuration, vos conversations et vos fichiers envoyés restent, et la commande dit où ; --purge les supprime aussi, après que vous avez tapé delete.
    • Refuser la demande administrateur ne change rien, et le mode démarrage fonctionne avec une espace, une apostrophe ou des lettres non ASCII comme ü dans le chemin du profil.
    • Une tâche de démarrage faite à la main, ou une tâche que seul un administrateur peut lire, n’est jamais supprimée ni remplacée sans copie : OAR s’arrête et demande --replace, qui en garde d’abord une copie. En 0.9.14, passer en mode démarrage pouvait supprimer une telle tâche sans copie.
    • Le paquet npm est plus petit : les deux README pour les développeurs ne sont plus que sur GitHub.
  6. 0.9.14

    • Avant de mettre à jour depuis 0.9.13 avec le démarrage automatique de Windows, ou un relais lancé par un simple gh copilot : ces relais gardaient leurs conversations dans le paquet installé, et une mise à jour les supprime avec lui. Fermez toutes les sessions gh copilot et lancez oar stop (si le relais tourne encore, terminez son node.exe dans le Gestionnaire des tâches), copiez les dossiers server\data et server\uploads du paquet en lieu sûr, puis mettez à jour avec npm i -g @oar-sh/oar --allow-scripts=@oar-sh/oar,better-sqlite3,koffi, jamais avec --ignore-scripts. Toutes les étapes sont dans les notes de version.
    • Les relais du démarrage automatique et de gh copilot utilisent désormais les mêmes données que oar start, hors du paquet. Une mise à jour copie les données qu’une version antérieure gardait dans le paquet avant que npm ne le supprime, et le relais les reprend à son démarrage suivant. Rien n’est supprimé, et quand le relais ne peut pas dire quelle base est la plus récente, il s’arrête et le dit.
    • Un verrou du relais laissé par un plantage ou une coupure de courant ne bloque plus le démarrage suivant, et deux démarrages ne tournent plus tous les deux. Le démarrage automatique de Windows attend jusqu’à 5 minutes %TEMP% et le lecteur des données : un disque RAM ou un lecteur monté tard ne le fait plus échouer.
    • Les conversations Cursor gardent leur agent d’une mise à jour à l’autre, les fichiers envoyés suivent le dataDir de la configuration, et oar setup --migrate-from fonctionne même après le passage de l’installateur.
    • Les agents peuvent demander à être réveillés quand le relais tourne de nouveau (relay_restarted), pour que leur travail continue après un redémarrage. L’outil de prévisualisation d’un agent ne liste et ne ferme que les prévisualisations de sa propre conversation.
    • Les cartes d’approbation se valident d’un clic, plus par du texte : un « yes » tapé dans une zone de réponse ne compte plus comme un refus.
    • Correctifs : une conversation dont le dossier a été supprimé ou renommé le dit, au lieu d’accuser la CLI ; répondre à une question ne fait plus renvoyer un long turn ; un sous-agent repris ouvre son historique et figure dans la liste tant qu’il tourne ; chaque modèle Cursor qui accepte un effort de raisonnement le reçoit.
  7. 0.9.13

    • Redémarrages du relais : 🌄 Restart web relay liste d’abord les turns en cours qu’il attendrait, les messages qu’il retiendrait et les tâches de fond, chacune avec l’indication qu’elle continue ou non ; Restart when idle le met en file, Restart now n’attend pas. Pendant l’attente, chaque page affiche un bandeau avec les sessions, le temps écoulé, Restart now et Cancel restart.
    • Un redémarrage en file n’attend plus indéfiniment : passé un délai que vous fixez dans Settings › General (30 minutes par défaut), le bandeau et une notification push demandent s’il faut redémarrer maintenant, attendre encore ou annuler. Il ne redémarre jamais de lui-même tant que des turns tournent.
    • En option dans Settings › General : après un redémarrage du relais, une session dont le turn a été coupé reçoit une courte note l’invitant à vérifier ce qu’elle faisait et à reprendre. Votre message n’est jamais renvoyé.
    • La console de tâche survit à un redémarrage du relais : les lignes terminées reviennent avec leur ✓ ou ✘, et la sortie d’une commande en cours se lit aussitôt. Elle marque l’endroit où un | tail retient la sortie, avec le conseil de journaliser dans un fichier, et sur un écran large la ligne de la tâche, avec son Stop, reste visible en dessous.
    • Load earlier figure aussi dans l’en-tête de la console, un lancement de tests est compté sur tout son journal et non plus sur les 64 derniers Ko, et les pastilles RUN, PASS et FAIL de vitest s’affichent pleines.
    • Un message envoyé sans modèle, par un script ou un agent, garde le modèle, l’effort et le mode de la conversation au lieu de passer au premier modèle de la liste. remote_relay refuse un modèle que le fournisseur ne propose pas et cite le plus proche (« did you mean 'gpt-5.4'? »).
    • Les agents qui observent ne sont plus réveillés par chaque commande shell terminée avec succès : par défaut, ils apprennent la fin des sous-agents et les tâches en échec. Avec task_finished, ils reçoivent comme avant chaque fin de tâche.
    • Correctifs : les workers se reconnectent après un redémarrage du relais même si leur connexion reste bloquée ; les identifiants dans la description et le résumé d’une ligne de tâche sont masqués ; un défilement juste après le chargement de messages plus anciens n’est plus annulé, et le bouton ⌄ compte un message arrivé au moment où vous remontez ; le panneau des tâches ne rétrécit plus un instant ; les tests unitaires repassent sous Windows.
  8. 0.9.12

    • Console de tâche : un clic sur une commande ou un moniteur en arrière-plan dans le panneau des tâches affiche sa sortie en direct — couleurs conservées, identifiants masqués, barres de progression ramenées à leur dernier état, Load earlier pour remonter tout le journal, et un Stop à elle. Les shells et moniteurs en arrière-plan de Claude, les shells détachés et attachés de Copilot et les terminaux de Grok en ouvrent tous une.
    • Tâches silencieuses et lancements de tests : une ligne indique « no output for 12 min », en ambre passé un délai que vous choisissez dans Settings › General (10 minutes par défaut), et un lancement de tests (vitest, Playwright, node:test, jest, pytest) affiche une pastille ✓ 412 ✘ 2 dont un clic mène au premier échec.
    • Les commandes de fond de Claude peuvent durer 2 heures par défaut, jusqu’à 8 (Settings › Providers › Claude), et Claude est invité à journaliser les longues exécutions dans un fichier et à lancer avec nohup celles qui doivent survivre à un redémarrage.
    • Les lignes des sous-agents comptent leurs étapes, et les agents lisent la sortie d’une tâche sur un relais appairé avec remote_relay read_task_output.
    • Les longues conversations s’ouvrent et remontent vite : le relais ne lit que la page demandée, quelle que soit la longueur de la conversation.
    • Revenir à une conversation, ou recharger la page, ramène au message que vous lisiez, pages plus anciennes comprises. Settings › General fixe combien de messages chaque conversation garde pour cela.
    • La liste des conversations montre l’activité par la couleur : le titre d’une session au travail reste vert vif, une session inactive passe à un vert plus sombre, et les points animés disparaissent.
    • Correctifs : les nouveaux messages ne sautent plus ceux d’entre-deux pendant que vous lisez loin dans l’historique — ils attendent, comptés sur le bouton ⌄, et se chargent dans l’ordre en descendant ; un message envoyé de là vous mène à la fin ; les images qui arrivent tard ne poussent plus vers le bas le texte que vous lisez ; les tâches de fond de Copilot indiquent comment elles se sont terminées, avec le code de sortie, au lieu de « unknown ».
  9. 0.9.11

    • Groupes de sessions : une session lancée par un agent se range sous la session qui l’a lancée, avec une pastille qui résume le groupe (« 3 · 1 waiting for you, 2 running »). Les groupes se replient quand tout y est terminé, se renomment, s’archivent ou s’arrêtent d’un bloc, et une question dans un membre replié s’affiche sur la ligne de tête.
    • Glisser-déposer : faites glisser des sessions dans un groupe, hors d’un groupe ou dans un nouvel ordre ; déposez une session sur une autre pour créer un groupe. Sur un téléphone, appui long puis déplacement ; au clavier, Move up et Move down.
    • Settings › Sharing liste chaque lien partagé avec Copier, Renouveler et Arrêter, et un journal d’accès de chaque ouverture — heure, pays, navigateur, et l’adresse IP sauf si vous la désactivez.
    • Les liens partagés gardent vos chemins pour eux : les montrer, ne garder que les noms de fichiers, ou masquer les deux. Preview as shared montre ce que voit un lecteur, et une liste 🙈 rassemble les messages masqués aux lecteurs.
    • Sécurité : dix jetons erronés bloquent une adresse pendant une minute, le canal en direct n’accepte que l’origine du relais lui-même, les en-têtes transférés ne comptent que venant d’un proxy de confiance, et ?token= ne connecte que la page. Derrière un proxy inverse sur un autre hôte, réglez trustProxy et allowedOrigins.
    • Day/Night revient dans le menu ⋯, à côté du nouveau About OAR : version, fournisseurs, totaux et santé du relais d’un coup d’œil.
    • Correctifs : les liens d’aperçu survivent à un redémarrage du relais, un redémarrage n’oublie plus les tâches de fond en cours, les workers se reconnectent après un redémarrage et démarrent sans node dans le PATH, une conversation ne défile plus pendant que vous lisez plus haut, et les tableaux larges du lecteur défilent dans leur propre cadre.
  10. 0.9.10

    • Des agents qui surveillent d’autres agents : un agent s’abonne à d’autres sessions, sur son propre relais ou sur un relais associé, et il est réveillé par ce qui s’y passe — une question en attente de réponse, une erreur, une réponse, une tâche de fond terminée, une session devenue silencieuse. Les abonnements ne font que prévenir ; ils n’approuvent rien. Le premier abonnement d’une conversation vous demande votre accord sur une carte, et l’en-tête affiche watching N sessions avec un Unsubscribe pour chaque abonnement.
    • Ouvrez le journal complet d’un subagent : son raisonnement, chaque appel d’outil avec ses entrées et son résultat, et sa réponse, en direct pendant qu’il tourne. La durée de conservation de la sortie des outils se règle dans Settings → General.
    • Les notes entre agents se replient en une seule ligne qui s’ouvre sur le prompt et la réponse. Les agents peuvent demander ce qu’il reste sur le forfait de chaque fournisseur, et voir si une session travaille, s’active en arrière-plan ou est inactive.
    • L’explorateur de fichiers crée des dossiers, et renomme et supprime fichiers et dossiers — d’un clic droit, ou d’un appui long sur un téléphone.
    • Un bouton ⌄ ramène au dernier message et compte ce qui est arrivé entre-temps ; le fil de la conversation continue de suivre une réponse en streaming et une tâche de fond qui démarre.
    • Archiver une session dont le processus tourne encore demande d’abord confirmation, et les Réglages s’ouvrent avant même la première conversation.
    • Correctifs : un websocket coupé ne peut plus faire tomber le relais, ⌄ n’ouvre plus le clavier sur un téléphone, un redémarrage du relais mis en file n’attend plus indéfiniment sur un relais occupé, la sortie de veille de l’hôte ne redémarre plus les turns en cours, un turn Cursor qui attend une longue commande n’est plus interrompu comme s’il était bloqué, et un message envoyé juste après un changement de conversation s’affiche bien là où il a été envoyé.
  11. 0.9.9

    • oar seul ouvre un menu : il indique si le relais tourne, avec version, URL, port, accès et service, et propose démarrer, arrêter, redémarrer, URL et QR code, réglages, service, mise à jour et doctor. Nouvelles commandes : oar stop, oar restart, oar status, oar url et oar service ; la session Copilot dans le terminal, c’est oar copilot. oar setup demande l’accès (cette machine seulement, ou le LAN) et le port, et un réglage modifié atteint le relais en marche.
    • Les fichiers remplissent l’écran : images, vidéo et audio sur fond noir, texte dans une colonne agréable à lire. Balayez un dossier ou les médias d’une conversation, les flèches font de même ; un PDF s’ouvre dans la visionneuse du navigateur, l’audio se lit dans la visionneuse, et le geste retour ferme la visionneuse et rien d’autre.
    • Épinglez des messages : chaque message a un bouton Pin à côté de Hide (sur un téléphone, un appui sur la bulle les fait apparaître) ; une conversation avec des épingles affiche dans son en-tête un bouton 📍 avec leur nombre, et la liste vous mène au message, même loin dans l’historique.
    • Télécharger donne le fichier tel qu’il est maintenant : le lien porte la version du fichier, le nom enregistré l’heure de la dernière modification, et aucun cache entre le relais et vous ne peut garder une réponse de l’API.
    • Le tunnel Cloudflare intégré utilise le cloudflared que vous avez installé ; la copie embarquée disparaît. Si vous utilisiez le tunnel, installez cloudflared après la mise à jour — le relais démarre le tunnel dès qu’il le trouve.
    • SDK des fournisseurs : Copilot SDK 1.0.17, Claude Agent SDK 0.3.292, Cursor SDK 1.0.36.
    • Correctifs : un PDF s’ouvre de nouveau dans la visionneuse du navigateur, les fichiers audio et les SVG sont servis pour ce qu’ils sont, une vidéo téléversée peut être parcourue, un fichier au nom japonais, chinois ou en emoji est de nouveau servi, et un saut dans l’historique reste là où il a atterri.
  12. 0.9.8

    • OAR a un logo : une loutre. L’écran de démarrage, la boîte de connexion, l’icône de l’onglet et celle de l’application installée suivent les modes Jour et Nuit, et le thème est appliqué avant le premier affichage.
    • L’application installée démarre d’un seul mouvement : son écran de démarrage prolonge l’écran de lancement du téléphone.
    • Pendant qu’une session Claude compacte son contexte, une ligne Compacting context… s’affiche au-dessus du turn en cours ; ensuite elle indique Context compacted avec le nombre de tokens.
    • Une fenêtre d’auto-compact modifiée s’applique désormais vraiment : la session redémarre une fois, quand rien n’y tourne, et la réponse le signale.
    • L’installeur Linux et macOS va jusqu’au bout : une seule confirmation, son propre Node.js si le vôtre manque ou est trop ancien, pas de root, et le relais en marche à la fin. Nouveau : oar start et oar setup --start.
    • Les barres de défilement sont plus faciles à attraper à la souris : la barre double de largeur tant que le pointeur est dessus.
  13. 0.9.7

    • Claude Cloud (expérimental, désactivé par défaut) : une conversation qui exécute Claude Code dans un bac à sable chez Anthropic, sur son propre clone d’un dépôt GitHub. Choisissez le dépôt et la branche dans une liste, suivez le turn en direct, répondez à ses questions, arrêtez-le, changez de modèle entre deux turns ; les résultats reviennent sous forme de branches poussées.
    • Archivez une conversation au lieu de la supprimer, et faites un clic droit sur une conversation (appui long sur un téléphone) pour ouvrir un menu : ouvrir, renommer, arrêter, tuer, archiver, supprimer.
    • Sessions d’agent : un agent peut démarrer d’autres sessions sur le relais où il tourne, les attendre et lire leurs résultats, une fois l’option activée.
    • Les commits et pull requests des sessions Claude portent Co-authored-by: Open Agent Relay (modèle) ; choisissez OAR, les lignes de Claude Code ou aucune, par relais et par dossier.
    • Check Usage s’ouvre aussitôt sur le dernier relevé et ne lit en direct que l’onglet ouvert.
    • Correctifs : deux prix dans un même paragraphe ne s’affichent plus comme une formule, une réponse qui cite un code d’erreur n’est plus enregistrée comme un turn échoué, et sous Windows le relais ne se fige plus pendant la lecture de la liste des processus.
  14. 0.9.6

    • Les sessions Claude se mettent en pause à la limite d’utilisation et reprennent après sa réinitialisation : une bannière indique quand, avec Resume now et Cancel, et la pause survit à un redémarrage du relais. Une réinitialisation à plus de six heures attend votre feu vert, et une seconde bannière vous avertit à 90 % d’une limite.
    • Une commande qui n’affiche rien ne fait plus échouer son turn (Copilot, Cursor, Grok) : un turn peut rester silencieux 2 minutes sans rien en cours, 5 pendant une requête au modèle, 30 pendant l’exécution d’un outil.
    • Les turns Copilot qui échouent échouent proprement : l’échec s’affiche aussitôt sous le texte de l’agent, Stop fonctionne sur un turn bloqué, une réponse terminée survit à un redémarrage du relais, les commandes d’un runtime mort sont arrêtées, et un message envoyé pendant qu’une commande tourne attend qu’elle se termine.
    • Les agents de relais associés peuvent se répondre pendant toute une session ; après 30 prompts d’agent à agent sans un mot de votre part, le suivant vous demande d’abord votre accord.
    • Les subagents se replient en un en-tête d’une ligne dans le turn en cours, et un tableau de plan s’affiche dans la réponse à laquelle il appartient — votre choix fixe aussi le mode de la session.
    • Les notes d’échec ne conseillent plus de redémarrer le relais, et le relais conserve sa console dans relay-console.log.
  15. 0.9.5

    • Une réponse de Claude publiée comme continuation en arrière-plan plutôt que sous votre message ne bloque plus la conversation jusqu’à 5 minutes. Votre message est clôturé après environ 45 secondes de silence, avec une petite note qui renvoie à cette réponse.
    • Les agents peuvent fixer le niveau de reasoning d’une session qu’ils démarrent, ou à laquelle ils envoient un prompt, sur un autre relais.
    • L’attente d’une réponse d’un autre relais ne s’arrête plus à une réponse intermédiaire tant que l’agent distant travaille encore.
    • Sous Windows, les workers de session écrivent désormais un journal, comme sous Linux.
  16. 0.9.4

    • Relais distants : associez deux relais dans Settings → Relays, et un agent sur l’un peut lister et lire les sessions de l’autre, leur envoyer un prompt ou en démarrer une nouvelle.
    • Un relais associé ne se déverrouille dans une conversation qu’une fois que vous l’y mentionnez. Vous fixez les limites relais par relais, les actions d’écriture vous demandent d’abord votre accord en mode Ask et Plan, et les tokens restent sur le relais.
    • Grok et le moteur extension de Copilot disposent de vrais outils grâce au nouveau serveur MCP d’OAR.
    • Suivez la réponse en cours : trois bascules gardent à l’écran son raisonnement, sa réponse ou sa liste d’outils à mesure qu’elle s’allonge.
    • Suspend host (Windows) attend que les agents, les tâches de fond et les runs de CI soient terminés, et Stop vous demande confirmation avant d’annuler un turn.
    • Corrigé : changer de modèle Claude ne bloque plus le message suivant, et les connexions inactives restent ouvertes 65 secondes.
  17. 0.9.3

    • Pilotez un turn en cours : écrivez pendant que l’agent travaille, avec Claude comme avec Copilot, et votre message rejoint le turn.
    • Les agents et shells en arrière-plan de Copilot apparaissent dans le panneau des tâches, avec leur modèle, l’appel d’outil en cours et un Stop qui fonctionne.
    • Les questions acceptent plusieurs réponses.
    • Les brouillons restent en sécurité d’un appareil à l’autre : un appareil inactif n’écrase plus ce que vous tapez.
    • Un filtre par titre cherche dans toutes les conversations, et le téléphone garde votre position quand vous le tournez.
    • Supprimer une conversation arrête aussi son worker et supprime la session CLI qu’OAR avait créée pour elle.
  18. 0.9.2

    • Mise à jour intégrée, opt-in : mettez à jour depuis les Réglages ou avec oar update. Rien ne cherche de version tant que vous ne l’avez pas demandé.
    • Copilot tourne par défaut sur le moteur worker SDK.
    • Images, vidéo et audio s’affichent directement dans les réponses des agents — appuyez pour ouvrir, zoomer, télécharger.
    • Le catalogue de modèles Copilot est juste : vraies fenêtres de contexte, niveaux de reasoning par modèle.
    • Sous Windows, le relais peut démarrer au lancement du système, avant toute ouverture de session.
    • Une série de correctifs de fiabilité sur les sessions, la file d’attente et les workers.
  19. 0.9.1

    Correction du binaire global : oar est bien trouvé après l’installation.

  20. 0.9.0

    Première version sous le nom OAR — Open Agent Relay.

Toutes les notes de version sur GitHub