Documentation / Agents

Codex (CLI et app)

Mis à jour le

TL;DR — `tokenade install` écrit six hooks dans `~/.codex/hooks.json` et leur accorde la confiance dans `~/.codex/config.toml`. S'ils restent non approuvés, le proxy LLM local assure compaction, masquage et style. Réappliquez la confiance avec `tokenade codex-trust`.

Codex (l'outil en ligne de commande comme l'app desktop Codex) est couvert par Tokenade via des hooks, l'enveloppe MCP et, quand les hooks ne tournent pas, un proxy LLM local. La particularité de Codex : il refuse d'exécuter un hook tant que celui-ci n'est pas approuvé. tokenade install écrit cette approbation pour vous ; si elle manque, Tokenade se replie sur le proxy pour que vous restiez couvert.

Ce que l'installation écrit

Tous les fichiers sont dans ~/.codex/ (%USERPROFILE%\.codex\ sous Windows), partagé par la CLI et l'app.

FichierCe que Tokenade ajoute
~/.codex/hooks.jsonSix hooks de cycle de vie, chacun étiqueté _tag: "tokenade-…"
~/.codex/config.tomlLes entrées de confiance de ces hooks ([hooks.state."…"] avec un trusted_hash), les entrées [mcp_servers.<name>] enveloppées et, si nécessaire, le fournisseur du proxy LLM
~/.codex/AGENTS.mdUne courte section de règles Tokenade

Les hooks

ÉvénementRôle
SessionStartContexte de session
UserPromptSubmitNote de style avant chaque demande
PreToolUseRéécrit une commande shell en tokenade wrap '<cmd>'
PostToolUseReplie la sortie des commandes
PreCompactS'exécute avant que Codex compacte la conversation
SubagentStartContexte des sous-agents

La confiance des hooks

Codex enregistre la confiance accordée à chaque hook dans ~/.codex/config.toml. Un hook sans entrée correspondante est inerte : ni réécriture, ni compaction, ni économie. Codex ne propose aucune commande officielle pour approuver un hook ; Tokenade écrit donc l'entrée lui-même, uniquement pour les hooks qu'il a posés. Vos autres hooks ne sont jamais touchés.

Pendant l'installation, vous voyez :

✓ Codex passive hooks (Pre/PostToolUse/SessionStart/…) → ~/.codex/hooks.json
✓ trusted 6 Codex hook(s) (compaction active — no /hooks step needed)

tokenade install --dry-run annonce cette écriture avant de la faire, car elle modifie le fichier qui contient votre modèle, vos fournisseurs et vos serveurs MCP.

Réappliquer la confiance

Si vous avez modifié hooks.json, restauré config.toml depuis une sauvegarde, ou si healthcheck indique que les hooks ne sont pas approuvés, lancez :

tokenade codex-trust
trusted 6 Codex hook(s) in ~/.codex/config.toml

Si Tokenade ne peut pas écrire la confiance (l'installation affiche could not auto-trust Codex hooks), approuvez les hooks à la main : ouvrez Codex, lancez /hooks, et approuvez les entrées Tokenade.

Quand les hooks ne tournent pas : le proxy LLM

Beaucoup d'installations de Codex se retrouvent avec des hooks non approuvés, dans la CLI comme dans l'app. Depuis la 1.2.1, Tokenade vérifie que chaque hook Codex est approuvé. Sinon, tokenade install met en place le proxy LLM local pour Codex, qui assure ce que les hooks auraient fait :

  • les sorties d'outils repliées dans l'historique envoyé au modèle,
  • les identifiants retirés des résultats d'outils avant d'atteindre le fournisseur,
  • la note de style,
  • les chiffres d'économies, lus dans l'usage rapporté par le fournisseur,
  • depuis la 1.2.1, une sortie d'outil identique envoyée une seule fois (une copie ultérieure du même fichier inchangé ou de la même sortie de commande devient un court renvoi vers la première).

Le proxy écoute sur 127.0.0.1 (port 8787 par défaut, le port libre suivant si un autre agent l'occupe déjà) et est configuré pour démarrer avec la machine. Dans ~/.codex/config.toml, il ajoute un fournisseur :

model_provider = "tokenade"

[model_providers.tokenade]
name = "tokenade llm proxy"
base_url = "http://127.0.0.1:8787"
wire_api = "responses"
requires_openai_auth = true

Si vous vous connectez à Codex avec votre compte ChatGPT (c'est le cas de tout utilisateur de l'app Codex), le proxy conserve cette connexion (requires_openai_auth = true) et joint le service ChatGPT ; avec une clé d'API, il utilise env_key = "OPENAI_API_KEY". L'installation vérifie que le proxy répond avant de garder la modification, et remet votre configuration exactement comme avant sinon. Si les hooks tournent, rien n'est fait deux fois.

tokenade llm-proxy status # agents branchés sur un proxy, et ce qu'il apporte
tokenade llm-proxy uninstall --agent codex # le retirer pour Codex

Une fois retiré, les installations et mises à jour suivantes le laissent désactivé. Pour le remettre : tokenade llm-proxy install --agent codex.

L'app Codex

L'app desktop Codex exécute Codex sur votre machine avec le même ~/.codex/config.toml : elle profite donc de la même couverture via le proxy LLM, plus l'optimisation MCP pour vos propres serveurs MCP. L'app installe son propre serveur MCP (navigateur et contrôle de l'ordinateur) dans vos réglages Codex ; depuis la 1.2.1, mcp-wrap le laisse tel quel, car l'app change son chemin à chaque mise à jour. Les économies réalisées sur les serveurs MCP de l'app sont créditées à l'app, par son nom.

Vérifier

tokenade healthcheck

Cherchez :

OK Codex hooks trusted — compaction active (6 hook(s))

Lancez ensuite une session Codex avec une commande bavarde et consultez tokenade gain. Voir votre première session.

Retirer

tokenade uninstall --dry-run # prévisualiser
tokenade uninstall

La désinstallation retire chaque entrée Tokenade de ~/.codex/hooks.json, supprime les entrées de confiance écrites dans ~/.codex/config.toml, annule le fournisseur du proxy LLM, restaure vos serveurs MCP enveloppés et retire la section de règles. Pour ne retirer que le proxy : tokenade llm-proxy uninstall --agent codex. Voir Mettre à jour et désinstaller.

Voir aussi