Présentation

Offrun est une application macOS (requiert macOS 14 ou version ultérieure) qui orchestre quatre grands modèles de génération de code : Claude, Codex, AGY et Grok. L’interface regroupe les agents dans un tableau de bord où chaque compte possède son propre pourcentage de session et ses réinitialisations horaires ou journalières. Le tableau indique, par exemple, 12 agents au total, 8 en cours d’exécution et 3 en attente, avec des compteurs de temps d’utilisation (ex. « Session 82 % Resets 21:00 »).

Architecture et orchestration

Chaque agent s’exécute dans un répertoire dédié, isolé du reste du projet. Offrun crée un git worktree par agent, ce qui empêche les écritures concurrentes sur les mêmes fichiers. Cette isolation permet de lancer simultanément un refactoring et une correction de bug, puis de fusionner les changements manuellement. Les agents sont lancés via leurs CLI respectifs, déjà installés sur le Mac de l’utilisateur ; aucune clé API ou mot de passe n’est stocké par Offrun.

Le système de gestion de limites bascule automatiquement un agent vers un autre compte lorsqu’un quota est atteint. Le tableau de bord signale le basculement (« This login has hit its usage limit ») et propose un agent de secours, évitant ainsi l’interruption du flux de travail.

Analyse des mécanismes techniques

Offrun implémente un algorithme de back‑off exponentiel avec un plafond de 30 s et un jitter de 20 %. Le code suivant illustre ce mécanisme :

async function retry (req, n) {
  const wait = Math.min(2 ** n * 100, 30_000)
  const jitter = wait * 0.2 * Math.random()
  await sleep(wait + jitter)
}

Le plafond de 30 s dépasse le timeout de 25 s du service d’API, ce qui entraîne la coupure du dernier essai – un point d’amélioration identifié dans le texte. Le même article décrit un correctif d’un test d’upload qui échouait 1 fois sur 10. Après modification du fichier src/uploader.js, le test a réussi 50 exécutions consécutives, contre 41 avant la correction.

La persistance de la « mémoire du projet » se fait sous forme de fichiers texte (ex. conventions.md, plan.md, dead‑ends.md) stockés dans le répertoire du projet. Chaque agent lit ces fichiers au démarrage et les met à jour en cours de session, ce qui rend les états accessibles à tout moment via un éditeur ou un commit Git.

Sécurité et limites

Offrun ne conserve jamais les mots de passe des comptes ; il se contente d’utiliser les sessions déjà ouvertes dans les CLI. Cette approche réduit la surface d’attaque, mais la dépendance aux comptes externes signifie que la perte d’un token d’accès entraîne la nécessité de le ré‑authentifier manuellement. De plus, le système de notification repose sur la surveillance de fenêtres terminales ouvertes, ce qui peut ne pas couvrir les agents exécutés dans des conteneurs ou des environnements virtuels non détectés.

En résumé, Offrun propose une orchestration locale robuste grâce aux worktrees Git, à un algorithme de retry configurable et à une persistance explicite des états. Les limites actuelles concernent le plafond de back‑off non aligné avec les timeouts du service, ainsi que la visibilité restreinte aux processus lancés directement sur le Mac.