Aller au contenu
omni

Comment ça marche

De la ligne saisie jusqu'à la réponse sauvegardée. Le chat (omni_ai/chat/) n'appelle aucune IA directement : il lance le routeur (omni_ai/cli/) comme sous-processus et lit les événements qu'il émet, ligne par ligne, pour afficher qui répond et ce qu'il fait.

Flux de la demande à la réponse

Trois détails que le diagramme rend explicites :

  • Chaque compte Claude a son propre dossier de connexion. Les comptes supplémentaires s'exécutent avec CLAUDE_CONFIG_DIR pointant vers ~/.claude-accounts/<nom>. Le compte principal n'est jamais déconnecté, et aucun identifiant n'est copié d'un endroit à un autre. L'exception concerne les anciens profils avec credentials_file, qui échangent le fichier d'identifiants pendant l'appel. Copier le .credentials.json ne fonctionne pas de façon fiable sur macOS, où la connexion est stockée dans le Keychain.
  • Ctrl-C tue tout l'arbre de processus. Le routeur s'exécute dans son propre groupe de processus ; annuler arrête donc aussi le claude, le codex ou le agy qui tourne en dessous, au lieu de laisser des processus orphelins consommer du quota.
  • La file ne bloque rien. Au-dessus de la zone s'affichent la demande en cours, le temps écoulé et les suivantes. Une demande qui a attendu passe par un classifieur gratuit avant de s'exécuter : si la réponse précédente la règle déjà, elle est ignorée. Les commandes et skills s'exécutent toujours. Ctrl-C avec la file active annule tout sans quitter le chat. Si vous fermez le chat avec des demandes en attente, elles restent enregistrées dans la session et ai --resume ID propose de les relancer.
  • Chaque réponse indique son coût. À la fin de chaque demande s'affichent les tokens et, quand l'outil le fournit (OpenRouter, Grok, Claude avec clé API), le coût en dollars. /usage additionne la dépense du jour par outil.
  • Vous voyez pourquoi l'outil a été choisi. En mode auto, une ligne courte indique si la demande a été traitée comme une tâche de code ou une question simple, et qui l'a classée (Groq, Cerebras, OpenRouter, Grok ou les mots-clés).
  • Seule la réponse entre dans l'historique. Les lignes de statut et de diagnostic s'affichent à l'écran, mais ne sont pas envoyées comme contexte à la question suivante. Le raisonnement interne des modèles est aussi écarté.

Ce texte provient du README du projet. Voir l'original sur GitHub