🛡️ PII Shield Zero Prompt Retention
Exécutez l'app ChatGPT / Codex CLI sur 19 modèles IA
L'application de bureau ChatGPT (Codex) et la CLI Codex partagent une seule clé AIOrouter (wire_api=responses) — DeepSeek, Qwen, GLM, Kimi, Grok et plus, avec AI Firewall & PII Shield sur chaque requête.
💬 Dites « passe à X » dans l'app ChatGPT ou la CLI Codex — l'IA change le modèle pour vous (alimenté par SKILL, vérifié dans l'app, 7–23 s). Après le changement, les nouvelles conversations utilisent immédiatement le nouveau modèle — aucun redémarrage nécessaire (vérifié 2026-08-09).
Comment ça fonctionne
config.toml : model_provider = aiorouter
PII Shield + AI Firewall + facturation avant routage
DeepSeek, Qwen, GLM, Kimi, Grok…
Pourquoi c'est différent : DeepSeek ne vous donne que DeepSeek. AIOrouter vous donne 19 modèles avec une seule clé et une protection avant routage.
ChatGPT (app) ou Codex CLI — quelle différence ?
Les deux partagent la même clé et le même fichier de configuration — vous ne configurez qu'une seule fois.
| 💬 App de bureau ChatGPT (Codex) | ⌨️ Codex CLI (terminal) | |
|---|---|---|
| Qui l'utilise | Conversation assistée — la majorité des utilisateurs | Développeurs / automatisation (codex exec) |
| Clé API | Une seule fois via codex login --with-api-key — partagée par l'app et la CLI (stockée dans ~/.codex/auth.json) | |
| Changer de modèle | ① Dites « passe à X » dans la conversation (SKILL + bridge, 7–23 s, vérifié) · ② les nouvelles conversations utilisent immédiatement le nouveau modèle — aucun redémarrage (vérifié 2026-08-09) · ③ ligne model = ... (fallback) | ① Dites « passe à X » dans une conversation codex exec · ② codex -m <model> · ③ modification manuelle de la ligne model = ... |
| Vérification | Le modèle affiché est « Custom » | codex exec -m deepseek-v4-flash "2+2=?" → 4 |
💬 Démarrer avec l'app de bureau ChatGPT (Codex)
Une fois codex login --with-api-key effectué et config.toml configuré (voir ci-dessous), l'app de bureau utilise automatiquement vos modèles AIOrouter. Le sélecteur de modèle affiche Custom avec votre modèle de config.
model = dans config.toml. Ne l'utilisez pas — dites plutôt « passe à X » dans la conversation (vérifié dans l'app depuis 2026-08-08) ; si vous modifiez config.toml manuellement, quittez d'abord l'app (elle peut écraser le fichier pendant son exécution).
Configuration (2 minutes)
⚡ Installation en une ligne (le plus rapide)
Copiez-collez cette commande dans un terminal — le script configure config.toml, enregistre votre clé en toute sécurité (saisie masquée, jamais écrite en clair), installe le SKILL de changement de modèle AIOrouter (pour pouvoir simplement dire « passe à X »), et affiche le prompt de vérification « Phase 2 » pour après le redémarrage. Installation la plus rapide + changement de modèle le plus rapide.
Windows (PowerShell) :
auth.json juste après que le script écrit votre clé (l'app afficherait alors votre nom ChatGPT au lieu d'« AIOrouter »). En cas de doute, redémarrez Windows et ne démarrez pas ChatGPT avant d'exécuter la commande. Le script détecte maintenant une app en arrière-plan et vous avertit.irm https://aiorouter.ca/setup/install-codex.ps1 | iex
macOS / Linux :
curl -fsSL https://aiorouter.ca/setup/install-codex.sh | bash
/setup publiés (modèle de config + SKILL de changement de modèle), ne stocke jamais votre clé en clair, et sauvegarde config.toml + auth.json avant modification.💬 Configuration en un prompt (assistée par IA)
- Inscrivez-vous gratuitement sur dashboard.aiorouter.ca — votre première clé est délivrée immédiatement avec un essai gratuit (7 jours / 25,000 tokens, modèle
deepseek-v4-flash). - Pour débloquer les 19 modèles, passez à un plan (à partir de $19/mo) — paiement sécurisé par Stripe.
- Puis collez le prompt ci-dessous — l'IA vérifiera que la clé est en place avant de toucher aux fichiers.
Collez ce prompt une seule fois — l'IA configure config.toml, installe le SKILL de changement de modèle AIOrouter (téléchargé depuis le fichier publié /setup/aiorouter-model-switch.skill.md) et écrit la procédure de secours dans AGENTS.md, puis vous guide pour la clé API. Ensuite dites simplement « passe à X » et l'IA change le modèle pour vous.
Please set up AIOrouter × Codex for me. Do the following in order:
【0】Account note — tell me this clearly before starting:
- You will sign in with a FREE ChatGPT account once to install Codex.
- After that you switch to your AIOrouter API key (codex login --with-api-key).
- All model usage is then billed by AIOrouter, not OpenAI.
【0】Check what is installed:
- Run codex --version. If Codex is not installed, tell me how to install it
first and stop.
- Check if ~/.codex/ exists. Do NOT modify anything yet.
【1】Set up the AIOrouter API key (Key FIRST — never paste it into this chat):
- If I don't have a key yet, guide me to register FREE at
https://dashboard.aiorouter.ca (email + MFA) — my first key is issued
immediately with a free trial (25,000 tokens / 7 days,
deepseek-v4-flash). No payment needed to start.
- Trial covers deepseek-v4-flash only. Want to use all 19 models (DeepSeek,
Qwen, GLM, Kimi, Grok, Claude, Gemini) at full quota? Subscribe from the
Dashboard — secure Stripe checkout (Visa/MC/Amex, CAD, we never store your
full card number), Top-Up pay-as-you-go. Same key keeps working — no re-setup.
- Your key also works with other BYOK tools (VS Code, KILO CODE, CLINE,
Copilot, and AIOrouter's own CODE-MAS) — you are never locked into one tool.
- If I already have a key (trial or paid), continue directly.
- If ~/.codex/auth.json already contains a ChatGPT login, warn me that
switching to an API key will REPLACE it, and ask for my confirmation first.
Do NOT proceed until I say yes.
- ⚠️ ALSO tell me (if a ChatGPT login exists): my previous chat sessions are
NOT deleted — Codex groups session history by login method. After switching
to the AIOrouter API key, sessions created under my ChatGPT subscription
will be hidden (not lost). They come back if I log in with ChatGPT again.
- Back up ~/.codex/auth.json first (auth.json.bak) and ~/.codex/config.toml
(config.toml.bak) BEFORE making any change, so I can restore my previous
login later.
- Open a PowerShell window: run
start powershell -NoExit
⚠️ If Codex shows a permission/authorization request at the bottom of the
chat input (e.g. "allow Codex to run this command"), I must click ALLOW —
please remind me to check for that button.
If you cannot start PowerShell (no permission), just tell me to open a
PowerShell window myself (Windows key → type "powershell" → Enter).
- Tell me to paste this ENTIRE block into that PowerShell window (all 5 lines
at once, then press Enter):
$s = Read-Host "Paste your AIOrouter key" -AsSecureString
$b = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($s)
$p = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($b)
$p | codex login --with-api-key
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($b)
Expected behavior: PowerShell pauses at "Paste your AIOrouter key:" — I paste
the key (masked) and press Enter. Then it should print
"Reading API key from stdin..." then "Successfully logged in".
Note: the final line will echo back in the window — that is normal, not an error.
- If anything other than "Successfully logged in" appears, STOP and tell me
what you see.
- After I say "done", verify WITHOUT printing the key:
Test-Path "$env:USERPROFILE.codexauth.json"
and confirm the file no longer contains a ChatGPT account login.
- Only continue to 【2】 after the key is confirmed stored.
【2】Make sure ~/.codex/config.toml has the FULL AIOrouter setup — write the
ENTIRE block below, every line, exactly as shown. Do NOT omit the
[model_providers.aiorouter] section. Do NOT add any settings that are not
in the template (e.g. do NOT add model_reasoning_effort, notify, or any
other key unless it was already in the file).
- If the file does not exist, create it from the template below (all lines).
- If it exists but has no aiorouter provider, MERGE the whole block in —
keep unrelated existing lines (like notify = [...]), keep other provider
sections, do NOT delete or modify them.
- If model_provider is currently NOT "aiorouter", tell me that this will
switch my default provider and ask before changing.
- Back up the file first (config.toml.bak) if you edit it.
- Template — write ALL of these lines:
# MODEL — uncomment exactly ONE line (default = deepseek-v4-flash).
# Full 19-model list: https://aiorouter.ca/docs/model-catalog
model = "deepseek-v4-flash" # default
# model = "deepseek-v4-pro"
# model = "qwen3.8-max"
# model = "qwen3.7-max"
# model = "qwen3.7-plus"
# model = "qwen3.6-plus"
# model = "qwen3.6-flash"
# model = "glm-5.2"
# model = "glm-5.1"
# model = "kimi-k3"
# model = "kimi-k2.7-code"
# model = "kimi-k2.6"
# model = "grok-4.6"
# model = "claude-opus-5"
# model = "claude-sonnet-5"
# model = "claude-haiku-4.5"
# model = "claude-fable-5"
# model = "gemini-2.5-pro"
# model = "gemini-2.5-flash"
model_provider = "aiorouter"
[model_providers.aiorouter]
name = "AIOrouter"
base_url = "https://api.aiorouter.ca/v1"
wire_api = "responses"
env_key = "AIOROUTER_API_KEY"
env_key_instructions = "Get your key at https://dashboard.aiorouter.ca/keys"
- Important: model / model_provider must stay at the TOML top level (before
the [model_providers.*] table). The [model_providers.aiorouter] section
with base_url/wire_api/env_key is REQUIRED — without it Codex sends
requests to OpenAI instead of AIOrouter.
- After writing, RE-READ the file and verify EVERY item, then report PASS or
FAIL for each:
[1] model = "deepseek-v4-flash" present (exactly one uncommented model line)
[2] the commented model list (# model = ...) present
[3] model_provider = "aiorouter" present at top level
[4] [model_providers.aiorouter] section present
[5] base_url = "https://api.aiorouter.ca/v1" present and NOT empty
[6] wire_api = "responses" present
[7] env_key = "AIOROUTER_API_KEY" present
[8] NO extra keys added (no model_reasoning_effort, no notify unless it
was already there)
If ANY item FAILS, STOP and tell me exactly which one — do not continue.
- If you cannot write to this file (permission denied), STOP and tell me — I
will use the manual / one-click script method instead.
【3】Install the AIOrouter model-switch SKILL so I can just SAY "switch to X":
- Download https://aiorouter.ca/setup/aiorouter-model-switch.skill.md
and write it to ~/.codex/skills/aiorouter-model-switch/SKILL.md
(create the directory if missing; back up any existing file first).
- If the file already exists and is recent, skip.
- If the network is blocked, fall back to writing the AGENTS.md procedure
(the text below) instead — same behavior, just less deterministic.
- Then append the AGENTS.md fallback procedure below to ~/.codex/AGENTS.md
(add only; do not delete other content). Write this EXACT text — every line:
## AIOrouter model switch procedure
When the user asks to "switch to / change to / use ":
1. Read ~/.codex/config.toml
2. Confirm model_provider = "aiorouter"; if not, tell the user you cannot
proceed
3. Determine if is supported:
a. Check the commented "model =" list in ~/.codex/config.toml
b. If not there, fetch https://aiorouter.ca/docs/model-catalog (canonical
list)
c. If the network is blocked, tell the user you could not verify the
catalog and list the local models you know about
4. If is not supported → refuse, list available models, ask the user
to re-specify. Do NOT edit config.toml.
5. Edit config.toml (back it up first as config.toml.bak):
- Change the currently uncommented model = "..." line to the target model
- Keep exactly ONE uncommented "model =" line; leave all others commented
- If the target model line does not exist yet, add it (commented) first,
then uncomment it — this keeps the local list up to date
- Do NOT change model_provider / base_url / env_key or anything else
- Do NOT add any new keys (no model_reasoning_effort, no notify, etc.)
6. Re-read config.toml to verify: exactly one uncommented "model =" line and
model_provider is still "aiorouter", and NO extra keys were added, then
say: "Switched to — new chats use it immediately (no restart needed)."
【4】Restart Codex completely — END of Phase 1 (setup):
- Desktop app: tell me to quit (including the tray icon) and relaunch once,
so it loads the new config — a normal Phase 1 step. If possible, suggest a
full Windows restart — closing the window alone may leave the app running
in the background.
- CLI: tell me to open a NEW terminal window (the new session loads the new
config.toml and key).
- Switching models later does NOT require quitting: just say "switch to X"
in the chat (SKILL + bridge) — new chats use the new model immediately.
- Remind me: the app's model menu is OpenAI-limited (hardcoded) — don't use
it to switch; say "switch to X" in the chat instead.
- 🔄 IMPORTANT (restart breaks this conversation): after I relaunch, this
chat session is GONE. Tell me clearly: "After restart, open a new chat and
paste the 'Phase 2 — continue after restart' prompt below."
AIOrouter), collez le bloc Phase 2 ci-dessous pour terminer la vérification.I just restarted Codex after setting up AIOrouter (API key, config.toml,
AGENTS.md). Please finish verifying and enable my setup:
【5】Verify the connection — the "wow" test:
- Desktop app: I should see my account name at the bottom-left showing
"AIOrouter" (not a ChatGPT/OpenAI account). Ask me to confirm that.
- Then ask me to paste this verification PROMPT in the main chat:
My name is Jason Wang. What's the second letter of my first name?
Please type my name here and let me know what LLM see in my name.
Expected: the LLM says it sees a placeholder (e.g. "Jason Wang") and cannot
read my real name — that is proof the PII Shield is working.
- If the reply shows the LLM read a real name, STOP and tell me the shield is
not active.
- (CLI users only) In a fresh terminal: codex exec -m deepseek-v4-flash "2+2=?"
→ expect "4" and output showing provider: aiorouter.
- If it fails with "Missing environment variable: AIOROUTER_API_KEY", the key
was not picked up — re-run codex login --with-api-key; also comment out any
leftover uncommented "env_key = ..." line in ~/.codex/config.toml
(auth.json-first; the re-run installer does this automatically), fully
restart the app (incl. tray icon), then retry.
- ⚠️ If the error mentions "api.openai.com" or "Incorrect API key", STOP and
tell me "base_url is wrong — requests are going to OpenAI instead of
AIOrouter" — the config.toml base_url must be https://api.aiorouter.ca/v1.
- Only say "setup complete" after the verification succeeds.
【6】Explain how AIOrouter protects me — a short, friendly technical summary:
- Tell me (in plain language, 3-4 short sentences):
1. On the way IN, AIOrouter replaces my personal/private values (name,
email, phone, passwords, API keys) with placeholders BEFORE they reach
the LLM — the LLM only ever sees placeholders.
2. On the way BACK, AIOrouter restores the placeholders to my real values
(Restore) or keeps them redacted (Redact), exactly as I configured in
the Dashboard — that's why I see my correct name in the reply even
though the LLM said it saw a placeholder.
3. For security secrets (passwords, API keys) the default is Redact — so
they come back as [REDACTED ...] and the AI can never write my real
password into any file or reply.
4. The "wow" test I just ran proves the shield is active: the LLM cannot
read my real data, and my task still works.
- Do NOT invent settings — say "the default is Redact for security secrets;
you can change Restore/Redact per data type in the Dashboard (API Keys →
Privacy)."
- End with: "You're fully set up. From now on, just say 'switch to X' and I'll
change the model for you."
【7】(Optional) A short note about my plan:
- I'm currently on the free trial (25,000 tokens / 7 days,
deepseek-v4-flash only). To unlock all 19 models at full quota: open
dashboard.aiorouter.ca → Billing → Add Top-Up credits (one-time packs
from $10 CAD). Checkout is secured by Stripe (Visa/MC/Amex, CAD) — we
never store my full card number. My key keeps working — no re-setup, and
it works with many BYOK tools.
✅ Comment confirmer que c'est configuré : App de bureau — l'utilisateur en bas à gauche affiche AIOrouter et le modèle affiche Custom (le modèle de config, pas l'ancien menu OpenAI). CLI — la sortie de codex montre provider: aiorouter.
Configuration manuelle (optionnel — si vous préférez tout faire vous-même) :
Étape 1 — config.toml Créer ~/.codex/config.toml :
# ── How to switch models ──────────────────────────────
# 1. Say "switch to X" in the app/CLI (SKILL + bridge — installed
# by the one-line / one-prompt setup). New chats use the new
# model immediately — no restart needed.
# 2. Or uncomment exactly ONE "model =" line below.
# 3. Per run (CLI): codex exec -m <model> "your prompt"
# 4. Desktop App: do NOT use the app's model menu - it overwrites
# the model with an unsupported OpenAI ID (see warning below).
# ──────────────────────────────────────────────────────
# MODEL — uncomment exactly ONE line (default = deepseek-v4-flash).
# Full 19-model list: https://aiorouter.ca/docs/model-catalog
# (or run: node scripts/aiorouter-codex-bridge.mjs --list-models)
model = "deepseek-v4-flash" # default
# model = "deepseek-v4-pro"
# model = "qwen3.7-max"
# model = "glm-5.2"
# model = "grok-4.6"
model_provider = "aiorouter"
[model_providers.aiorouter]
name = "AIOrouter"
base_url = "https://api.aiorouter.ca/v1"
wire_api = "responses"
env_key = "AIOROUTER_API_KEY"
env_key_instructions = "Get your key at https://dashboard.aiorouter.ca/keys"
⚠️ TOML n'accepte pas les clés en double — décommentez une seule ligne model = ... à la fois.
⚠️ App de bureau Codex : ne changez PAS de modèle dans le menu de l'application — il n'affiche que des modèles OpenAI (5.6/5.5/5.4/5.2…) et la sélection écrase le champ model de config.toml avec un ID non pris en charge (les requêtes échouent ensuite). Dites plutôt « passe à X » dans la conversation (SKILL + bridge) ; si vous modifiez la ligne model = ... manuellement, quittez d'abord l'application (elle peut écraser le fichier pendant son exécution).
Où se trouve config.toml ? Comment l'éditer ?
- Windows :
%USERPROFILE%\.codex\config.toml→ dans l'Explorateur, collez%USERPROFILE%\.codexdans la barre d'adresse, puis ouvrezconfig.tomlavec le Bloc-notes / VS Code. - macOS :
~/.codex/config.toml→ Terminal :open -e ~/.codex/config.toml. - Linux :
~/.codex/config.toml→ Terminal :nano ~/.codex/config.toml. - Conseil : faites une copie de sauvegarde avant de modifier.
Étape 2 — API key (jamais écrite dans config.toml ni collée dans le chat) :
Dans PowerShell (Windows) — l'entrée est masquée, la clé n'apparaît pas à l'écran :
$s = Read-Host "Paste your AIOrouter key" -AsSecureString
$b = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($s)
$p = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($b)
$p | codex login --with-api-key
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($b)
Attendez Reading API key from stdin... puis Successfully logged in — la clé est stockée dans ~/.codex/auth.json (partagée par l'app et la CLI). macOS/Linux : export AIOROUTER_API_KEY=ak-...
Étape 3 — Vérifier — le test « wow » :
Après un redémarrage complet (quitter l'app y compris l'icône dans la barre des tâches, idéalement redémarrer Windows), confirmez que le nom en bas à gauche affiche AIOrouter. Puis collez ce prompt dans la conversation :
My name is Jason Wang. What's the second letter of my first name?
Please type my name here and let me know what LLM see in my name.
Attendu : le LLM dit qu'il voit un espace réservé (ex. « Jason Wang ») et ne peut pas lire votre vrai nom — preuve que le PII Shield fonctionne.
(CLI seulement) : codex exec -m deepseek-v4-flash "2+2=?" → 4, sortie affichant provider: aiorouter.
Option : script de configuration en un clic
- Trouvez le script —
scripts/setup-codex.ps1(Windows) /scripts/setup-codex.sh(macOS/Linux) dans ce dépôt. - Exécutez-le — Windows :
powershell -ExecutionPolicy Bypass -File scripts/setup-codex.ps1
macOS/Linux :bash scripts/setup-codex.sh - Suivez les invites — entrez votre clé API (saisie masquée) ; le script crée config.toml et définit AIOROUTER_API_KEY.
- Vérifiez dans une NOUVELLE fenêtre —
codex exec -m deepseek-v4-flash "2+2=?"
Modèles pris en charge
Tous les modèles AIOrouter sont disponibles dans Codex — voir le catalogue de modèles (avec tarifs). Le modèle par défaut est deepseek-v4-flash ; changez simplement la ligne model = "..." dans config.toml.
Sécurité
| Contrôle | Ce qu'il fait |
|---|---|
| PII Shield | Données sensibles remplacées avant le routage, restaurées dans la réponse — le fournisseur ne voit jamais vos secrets. |
| AI Firewall | Injection utilisateur toujours bloquée ; le prompt système de l'agent est fiable (trustedAgent). |
| Rétention | Zéro rétention — traité en mémoire uniquement. |
| Résidence | Passerelle canadienne (GCP Montréal). |
Claude Desktop vs ChatGPT/Codex
| Claude Desktop + AIOrouter | ChatGPT/Codex + AIOrouter | |
|---|---|---|
| Modèles | Les 19 modèles s'affichent directement dans le sélecteur (interface officielle) | Les 19 modèles sont utilisables ; le menu de l'app est limité à OpenAI → on passe par « passe à X » |
| Changement de modèle | Sélecteur direct (principal, sans Node.js) ; « passe à X » = avancé (pont, nécessite Node.js) | « Passe à X » (SKILL + pont, 7–23 s vérifiés, principal) / ligne manuelle |
| Latence | Voie Responses/Anthropic directe (aucune couche MCP) | API Responses directe (aucune couche MCP) |
| Outils MCP | Optionnel (10 outils) | Optionnel |
| Sécurité | PII Shield + AI Firewall (trustedAgent) | PII Shield + AI Firewall (trustedAgent) |
| Installation | Import du fichier de configuration (2 minutes) | Une ligne / un prompt (30 secondes) |
✅ Vérifiez votre connexion en 30 secondes
Collez l'un de ces prompts — si la protection fonctionne, le LLM dira lui-même qu'il ne voit que des espaces réservés. Utilisez un faux nom et une fausse clé.
Test 1 — votre nom reste un espace réservé
My name is Jason Wang. What's the second letter of my first name?
Please type my name here and let me know what LLM see in my name.
Attendu : le LLM dit qu'il voit un espace réservé et ne peut pas lire votre vrai nom.
Test 2 — votre clé API reste masquée
Test API KEY is ak-2k4i14fje24jgrgfaa2. Please type my API KEY here.
⚠️ Ceci est une FAUSSE clé de test — ne collez pas votre vraie clé. Attendu : le LLM refuse de l'écho (masqué).
Vous choisissez : Restore ou Redact
AIOrouter remplace vos valeurs sensibles par des espaces réservés avant que le LLM les voie — puis les restaure au retour (Restore) ou ne les restaure jamais (Redact). Vous décidez, par clé API, par type de donnée.
- Restore : l'IA ne voit qu'un espace réservé — vous recevez la vraie réponse.
- Redact : les secrets (mots de passe, clés API) sont retirés à l'aller et jamais restaurés — l'IA ne peut les réécrire nulle part.
- Contrôle par type : ex. restaurer votre nom, masquer le NAS / les mots de passe.
- ⚠️ Shield Disabled : le PII Shield est éteint — vos vraies données (nom, email, mots de passe) partent directement au LLM. Réservé à un fournisseur de confiance sans données sensibles ; fortement déconseillé.
🧪 Try it: switch the profile and see what the AI sees
⚠️ Shield Disabled — your real name, email, passwords and API keys would go straight to the LLM. Only consider this on a trusted provider with no sensitive data.
S-A · « Le mot de passe ne doit jamais être réécrit »
Convient : Tous les utilisateurs
Connecté directement : le mot de passe peut être écrit dans la conversation, les notes ou les commits.
LLM ne voit qu'un espace réservé et ne restaure jamais → impossible d'écrire le vrai mot de passe.
Configuration : Profil « standard » (secrets techniques = redact)
S-B · « Cette fois, laisse l'IA changer mon mot de passe »
Convient : Utilisateurs ayant un besoin ponctuel
Tout est bloqué — l'IA ne peut pas accomplir la tâche.
LLM ne voit toujours que l'espace réservé ; seule la restauration au retour est autorisée pour ce secret précis.
Configuration : Profil « standard » + override par type → restore pour ce secret
S-C · « Zéro fuite du NAS »
Convient : Employés, RH, finances
Le NAS peut être affiché dans la réponse ou écrit ailleurs.
L'interface et toutes les sorties ne montrent que l'espace réservé — le vrai NAS n'apparaît jamais.
Configuration : CANADA_SOCIAL_INSURANCE_NUMBER → redact (ou profil « safe »)
S-D · « Protéger le .env du développeur »
Convient : Développeurs
L'IA peut coller une clé dans le code généré.
Aucune vraie clé dans le code généré ni dans la conversation.
Configuration : Profil « standard » (secret technique par défaut)
S-E · « Traiter les données clients CRM »
Convient : Ventes, support
Le fournisseur voit les vrais courriels et téléphones.
LLM ne voit que des espaces réservés (jamais les vraies valeurs) ; la restauration au retour donne le bon résultat.
Configuration : Type Basic PII → restore
S-F · « Données RH des employés »
Convient : RH
NAS / carte de santé exposés.
Noms utilisables ; numéro d'assurance sociale et données de santé configurés en redact (jamais restaurés par défaut).
Configuration : Profil « safe »
S-G · « Données spéciales du Québec »
Convient : Entreprises québécoises
Données spéciales (santé, religion, politique, biométrie) lues par le LLM.
Ces catégories sont configurées en redact — jamais restaurées.
Configuration : Catégorie spéciale → redact
S-H · « Rapprochement financier »
Convient : Finance, comptabilité
N° de carte / compte écrits dans toute sortie.
Aucune restauration d'information financière.
Configuration : Catégorie financial → redact
S-I · « Permis de conduire & carte de santé : zéro fuite »
Convient : Utilisateurs canadiens
Connecté directement : les n° de permis et de carte de santé peuvent fuir.
Espace réservé à l'aller, jamais restauré au retour → les n° de documents n'apparaissent nulle part.
Configuration : Dashboard → Driver Licence + Health Card → Redact → Apply
FAQ
Comment changer de modèle en parlant ?
Le SKILL est installé par l'installation en une ligne / en un prompt. Puis, dans la conversation, dites « passe à qwen3.7-max » — l'IA utilise le bridge pour changer le modèle (vérifie le slug, sauvegarde, écrit exactement une ligne).
Que modifie le SKILL ?
Uniquement la ligne model = de config.toml + une sauvegarde ; il ne touche à aucun autre réglage. Si le modèle est inconnu, il synchronise d'abord le catalogue puis réessaie une fois.
Dois-je redémarrer après avoir changé de modèle ?
Non — vérifié en direct depuis 2026-08-09 : après le changement de config, les nouvelles conversations utilisent immédiatement le nouveau modèle, sans redémarrage (seul le nom affiché dans le menu de modèles / le TUI peut se mettre à jour au prochain lancement). Il en va de même pour une modification manuelle de config : le nouveau modèle s'applique à la nouvelle conversation.
Je suis en trial — que se passe-t-il si je dis « passe à X » ?
Rien ne plante — la passerelle verrouille le routage sur deepseek-v4-flash (verrouillage du modèle de trial) ; une fois abonné, vous pouvez changer de modèle.
Ai-je encore besoin de fermer complètement l'app pour changer de modèle ?
Non — depuis 2026-08-08, vous pouvez changer de modèle dans la conversation de l'app (chemin SKILL), et depuis 2026-08-09, la nouvelle conversation utilise immédiatement le nouveau modèle (fermeture/redémarrage de l'app inutile). Ne fermez l'app qu'avant une modification manuelle de config.toml.
« codex login --with-api-key » affiche « expects the API key on stdin » — que faire ?
Codex CLI 0.146+ n'accepte plus la saisie interactive — la clé doit arriver via un pipeline. Dans PowerShell, collez ce bloc (saisie masquée) : Read-Host -AsSecureString → $p | codex login --with-api-key (voir la section de configuration ci-dessus).
Mon config.toml est incomplet (pas de [model_providers.aiorouter], pas de liste de modèles) — que faire ?
Sans la section [model_providers.aiorouter], Codex envoie les requêtes à OpenAI au lieu d'AIOrouter. Ouvrez ~/.codex/config.toml et assurez-vous qu'il contient TOUT le bloc de modèle (model + model_provider + [model_providers.aiorouter] avec name/base_url/wire_api/env_key/env_key_instructions). Ne laissez pas l'IA écrire une version partielle — redemandez-lui de réécrire le bloc complet, ou collez le bloc vous-même (voir la section de configuration).
L'IA a ajouté model_reasoning_effort ou d'autres réglages non demandés — est-ce normal ?
Non. Le bloc AIOrouter ne doit contenir que les clés du modèle (model, model_provider, et la section [model_providers.aiorouter]). Des clés supplémentaires comme model_reasoning_effort peuvent changer le comportement et doivent être supprimées. Demandez à l'IA : « supprime les clés non demandées de config.toml, garde uniquement le bloc AIOrouter. »
Pourquoi ne pas coller ma clé API dans la conversation ?
Tout ce que vous collez dans la conversation est envoyé au fournisseur et reste dans l'historique. La clé doit être saisie UNIQUEMENT dans un terminal masqué (Read-Host) ou via le script en un clic — elle est alors stockée dans ~/.codex/auth.json sans jamais passer par le chat.
Pourquoi voir 401 / « api.openai.com » alors que j'utilise AIOrouter ?
Cela signifie que la requête est partie vers OpenAI au lieu de AIOrouter — la ligne base_url de config.toml est vide ou absente. Corrigez : base_url = "https://api.aiorouter.ca/v1", quittez complètement l'app (y compris l'icône dans la barre des tâches) et relancez. Ce n'est pas un problème de quota gratuit — c'est un problème de point de terminaison.
Comment configurer l'app de bureau ChatGPT ?
Exécutez codex login --with-api-key une fois (clé partagée par l'app et la CLI), puis suivez la configuration manuelle ci-dessous pour config.toml. Ensuite quittez complètement l'app et relancez-la.
Pourquoi l'app affiche « Missing environment variable: AIOROUTER_API_KEY » ?
La clé n'a pas été chargée. Relancez codex login --with-api-key, quittez complètement l'app (y compris l'icône de la barre des tâches) et rouvrez-la. Sur Windows, évitez de compter sur les variables d'environnement — la méthode de connexion est plus fiable. Si votre config.toml contient encore une ligne env_key = "AIOROUTER_API_KEY" non commentée (écrite par un ancien installateur), relancez l'installateur (version 2026-08-15+) qui la commente automatiquement (auth.json d'abord) ; vous pouvez aussi la commenter vous-même avec # , puis relancer codex login --with-api-key.
J'ai changé / révoqué ma clé API AIOrouter — que faire ?
Récupérez la nouvelle clé sur dashboard.aiorouter.ca/keys, puis relancez l'installateur en une ligne (ou codex login --with-api-key avec la nouvelle clé). L'installateur sauvegarde vos fichiers, réécrit la clé dans ~/.codex/auth.json (partagée par l'app et la CLI) et actualise la variable d'environnement utilisateur. Quittez ensuite complètement l'app — y compris l'icône de la barre des tâches — puis rouvrez-la : une app lancée avant la mise à jour n'hérite pas de la nouvelle clé (Windows Explorer met en cache l'environnement jusqu'à la prochaine ouverture de session).
L'IA n'a pas l'autorisation de modifier config.toml — que faire ?
Autorisez l'écriture du fichier si on vous le demande, ou suivez la configuration manuelle ci-dessous. Le script en un clic (setup-codex.ps1 / .sh) est aussi une option.
Ai-je besoin d'un compte ChatGPT ?
Vous vous connectez avec un compte ChatGPT gratuit une seule fois pour installer Codex. Ensuite vous basculez sur votre clé API AIOrouter (codex login --with-api-key) — toute l'utilisation des modèles est facturée par AIOrouter, pas par OpenAI.
La commande en une ligne (irm | iex) est-elle sûre ?
Le script ne fait aucune exécution distante supplémentaire : il ne fait que créer/fusionner config.toml, sauvegarder vos fichiers existants, et demander votre clé via une saisie masquée (jamais écrite en clair). Pour plus de prudence, vous pouvez télécharger d'abord le script (install-codex.ps1), l'inspecter, puis l'exécuter avec powershell -File install-codex.ps1 — c'est la même chose que le irm | iex, sans exécution automatique au téléchargement.
Pourquoi irm | iex échoue avec « The term 'Windows' is not recognized » ?
Une ancienne copie servie du script commençait par un BOM UTF-8 que Windows PowerShell 5.1 décode mal, ce qui cassait la première ligne de commentaire — corrigé le 2026-08-15 : le serveur publie désormais une copie sans BOM avec Content-Type: text/plain; charset=utf-8. Si vous voyez encore l'erreur (copie en cache), téléchargez le script depuis /setup/install-codex.ps1, inspectez-le, puis exécutez powershell -File install-codex.ps1 — résultat identique.
Mes anciennes conversations ChatGPT disparaîtront-elles après le passage à AIOrouter ?
Non — rien n'est supprimé. Codex regroupe l'historique des conversations par méthode de connexion : les conversations créées avec votre abonnement ChatGPT et celles créées avec une clé API tierce (AIOrouter) sont séparées, et seul le groupe correspondant à la configuration actuelle est affiché. Après le passage à la clé AIOrouter, vos anciennes conversations ChatGPT sont masquées, pas perdues — elles réapparaissent si vous vous reconnectez avec ChatGPT. Avant de basculer, nos prompts sauvegardent auth.json et config.toml (fichiers .bak) pour pouvoir restaurer votre configuration précédente.
Quels modèles puis-je utiliser ?
19 : DeepSeek, Qwen, GLM, Kimi, Grok, Claude, Gemini.
La clé API est-elle stockée ?
Non — elle reste en variable d'environnement, jamais dans config.toml ni dans les journaux.
Codex peut-il modifier config.toml tout seul ?
Non automatiquement — Codex est en lecture seule par défaut. Il ne peut modifier ~/.codex/config.toml si vous l'autorisez explicitement à écrire le fichier (invite d'approbation). Exemple de prompt pour changer de modèle (une seule ligne model = ... active) :
Please switch my Codex default model to qwen3.7-max:
1. Open ~/.codex/config.toml
2. Change the model = "..." line to model = "qwen3.7-max"
(keep exactly ONE uncommented model = line; leave all others as comments)
3. Do not change model_provider = "aiorouter"
Encore mieux : un seul prompt pour tout configurer + changement de modèle automatique. Voir la section « Configuration en un prompt » en haut de cette page.
Votre clé fonctionne avec vos outils préférés
Votre clé API AIOrouter est compatible OpenAI (et /v1/messages pour Claude) — elle se connecte à n'importe quel outil BYOK. Vous n'êtes jamais dépendant d'un seul outil.
App de bureau + CLI (API responses)
Les 19 modèles dans le sélecteur (import de configuration)
Extensions compatibles OpenAI
Agent de codage BYOK (API compatible OpenAI)
Agent VS Code avec endpoint personnalisé
Via API (voir le guide de migration)
Extension VS Code native — bientôt disponible
🔒 Paiement sécurisé par Stripe — Visa · Mastercard · Amex · CAD · Nous ne stockons jamais votre numéro de carte complet.