Aller au contenu

Configuration

Claudex utilise figment pour une configuration par couches. Les sources sont fusionnees dans cet ordre (les sources ulterieures ecrasent les precedentes) :

  1. Valeurs par defaut programmatiques (replis integres)
  2. Configuration globale (~/.config/claudex/config.toml ou config.yaml)
  3. Configuration projet (claudex.toml ou claudex.yaml dans le repertoire courant ou les repertoires parents jusqu’a 10 niveaux, ou $CLAUDEX_CONFIG)
  4. Variables d’environnement (prefixe CLAUDEX_, __ comme separateur)

Les formats TOML et YAML sont tous deux supportes. Le format du fichier est detecte par l’extension (.toml ou .yaml/.yml).

Fenêtre de terminal
# Afficher le chemin du config charge et tous les emplacements de recherche
claudex config show
# Afficher uniquement le chemin du fichier de config
claudex config path
# Creer un nouveau config dans le repertoire courant
claudex config init
# Recreer le config depuis config.example.toml
claudex config recreate
# Ouvrir le config dans votre $EDITOR
claudex config edit
# Valider la syntaxe du config et les references de profils
claudex config validate
# Obtenir une valeur specifique du config
claudex config get proxy_port
# Definir une valeur specifique du config
claudex config set proxy_port 8080
# Exporter le config actuel vers stdout
claudex config export
# Chemin vers le binaire claude (defaut : "claude" depuis PATH)
# claude_binary = "/usr/local/bin/claude"
# Parametres du proxy
proxy_port = 13456
proxy_host = "127.0.0.1"
# Niveau de log : trace, debug, info, warn, error
log_level = "info"
# Hyperliens terminaux (OSC 8) : "auto" | true | false
# "auto" detecte le support du terminal ; true/false forcent l'activation/desactivation
hyperlinks = "auto"
# Alias de modeles (raccourci → nom complet du modele)
[model_aliases]
grok3 = "grok-3-beta"
gpt4o = "gpt-4o"
ds3 = "deepseek-chat"

Chaque profil represente une connexion a un fournisseur IA. Il existe trois types de fournisseur :

Pour les fournisseurs qui supportent nativement l’API Anthropic Messages. Les requetes sont transmises avec un minimum de modifications.

[[profiles]]
name = "anthropic"
provider_type = "DirectAnthropic"
base_url = "https://api.anthropic.com"
api_key = "sk-ant-..."
default_model = "claude-sonnet-4-20250514"
priority = 100
enabled = true

Fournisseurs compatibles : Anthropic, MiniMax, Google Vertex AI

Pour les fournisseurs utilisant l’API OpenAI Chat Completions. Claudex traduit automatiquement entre les protocoles Anthropic et OpenAI.

[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
default_model = "grok-3-beta"
backup_providers = ["deepseek"]
priority = 100
enabled = true

Fournisseurs compatibles : Grok (xAI), OpenAI, DeepSeek, Kimi/Moonshot, GLM (Zhipu), OpenRouter, Groq, Mistral, Together AI, Perplexity, Cerebras, Azure OpenAI, GitHub Copilot, GitLab Duo, Ollama, vLLM, LM Studio

Pour les fournisseurs utilisant l’API OpenAI Responses (par ex. abonnements ChatGPT/Codex). Claudex traduit entre l’API Anthropic Messages et l’API OpenAI Responses.

[[profiles]]
name = "codex-sub"
provider_type = "OpenAIResponses"
base_url = "https://chatgpt.com/backend-api/codex"
default_model = "gpt-5.3-codex"
auth_type = "oauth"
oauth_provider = "openai"

Fournisseurs compatibles : Abonnements ChatGPT/Codex (via Codex CLI)

ChampDefautDescription
namerequisIdentifiant unique du profil
provider_typeDirectAnthropicDirectAnthropic, OpenAICompatible ou OpenAIResponses
base_urlrequisEndpoint API du fournisseur
api_key""Cle API (texte brut)
api_key_keyringLire la cle API depuis le trousseau OS
default_modelrequisModele par defaut a utiliser
auth_type"api-key""api-key" ou "oauth"
oauth_providerFournisseur OAuth (claude, openai, google, qwen, kimi, github, gitlab). Requis quand auth_type = "oauth"
backup_providers[]Noms des profils de basculement
custom_headers{}En-tetes HTTP supplementaires
extra_env{}Variables d’environnement supplementaires pour Claude
priority100Priorite pour le routage intelligent
enabledtrueSi ce profil est actif
max_tokensPlafonner le nombre max de tokens de sortie envoyes au fournisseur (optionnel)
strip_params"auto""auto", "none", ou ["temperature", "top_p"]. Detecte automatiquement les parametres non supportes (par ex. endpoint ChatGPT Codex)
[profiles.query_params]{}Parametres de requete URL (par ex. api-version Azure)
[profiles.models]Table de mapping des slots de modele (champs haiku, sonnet, opus)

Le moyen le plus simple d’ajouter un profil est l’assistant interactif :

Fenêtre de terminal
claudex profile add

Il vous guide a travers la selection du fournisseur, la saisie de la cle API (avec stockage optionnel dans le trousseau), la selection du modele, et le test de connectivite.

Stockez les cles API de maniere securisee dans le trousseau de votre OS au lieu du texte brut dans le config :

[[profiles]]
name = "grok"
api_key_keyring = "grok-api-key" # lit depuis le trousseau OS

Backends supportes :

  • macOS : Trousseau (Keychain)
  • Linux : Secret Service (GNOME Keyring / KDE Wallet)

Au lieu de cles API, vous pouvez vous authentifier avec votre abonnement fournisseur existant via OAuth. Utile si vous avez un abonnement Claude Pro/Team, ChatGPT Plus, ou un autre plan.

  1. Definissez le auth_type du profil a "oauth" et specifiez le oauth_provider :
[[profiles]]
name = "codex-sub"
provider_type = "OpenAIResponses"
base_url = "https://chatgpt.com/backend-api/codex"
default_model = "gpt-5.3-codex"
auth_type = "oauth"
oauth_provider = "openai"
  1. Connectez-vous avec la commande auth :
Fenêtre de terminal
claudex auth login openai
  1. Verifiez votre statut d’authentification :
Fenêtre de terminal
claudex auth status
Fournisseuroauth_providerSource du token
ClaudeclaudeLit depuis ~/.claude/.credentials.json (config native de Claude Code)
ChatGPTopenaiPKCE navigateur ou Device Code, se rabat sur ~/.codex/auth.json (Codex CLI)
GooglegoogleLit depuis les credentials du Gemini CLI
QwenqwenFlux Device Code
KimikimiLit depuis les credentials du Kimi CLI
GitHubgithubFlux Device Code, se rabat sur ~/.config/github-copilot/
GitLabgitlabVariable d’environnement GITLAB_TOKEN

Pour les details sur le flux OAuth de chaque fournisseur, consultez Abonnements OAuth.

Lors de l’utilisation de profils OAuth, Claudex definit ANTHROPIC_AUTH_TOKEN (et non ANTHROPIC_API_KEY) au lancement de Claude Code. Cela empeche les conflits avec le mecanisme de connexion par abonnement propre a Claude Code, qui utilise ANTHROPIC_API_KEY en interne.

Le proxy rafraichit automatiquement les tokens OAuth avant leur expiration. Vous pouvez aussi rafraichir manuellement avec :

Fenêtre de terminal
claudex auth refresh openai

Certains fournisseurs necessitent des parametres de requete URL (par ex. api-version d’Azure OpenAI). Utilisez la table [profiles.query_params] :

[[profiles]]
name = "azure-openai"
provider_type = "OpenAICompatible"
base_url = "https://YOUR_RESOURCE.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT"
api_key = "YOUR_AZURE_KEY"
default_model = "gpt-4o"
[profiles.query_params]
api-version = "2024-12-01-preview"

Claudex ajoute ces parametres a chaque URL de requete pour le profil. Azure OpenAI est auto-detecte par la presence de openai.azure.com dans la base_url et utilise l’en-tete api-key pour l’authentification au lieu de Authorization: Bearer.

Certains fournisseurs ne supportent pas certains parametres (par ex. l’endpoint ChatGPT Codex rejette temperature, top_p). Le champ strip_params controle quels parametres sont supprimes avant l’envoi :

strip_params = "auto" # auto-detecte et supprime les params non supportes (defaut)
strip_params = "none" # envoie tous les params tels quels
strip_params = ["temperature", "top_p", "top_k"] # supprime des params specifiques

Quand la valeur est "auto", Claudex detecte les endpoints connus (par ex. chatgpt.com) et supprime les parametres qui provoqueraient des erreurs.

Claude Code dispose d’un selecteur /model integre avec trois slots : haiku, sonnet et opus. Consultez Mapping des slots de modele pour les details.

Certains fournisseurs (notamment OpenAI) imposent une limite de 64 caracteres sur les noms d’outils (fonctions). Claude Code peut generer des noms d’outils depassant cette limite.

Claudex tronque automatiquement les noms d’outils de plus de 64 caracteres lors de l’envoi de requetes aux fournisseurs compatibles OpenAI et restaure de maniere transparente les noms originaux lors du traitement des reponses. Cet aller-retour est entierement transparent.

Claudex supporte l’execution ponctuelle (non interactive) pour une utilisation dans les pipelines CI/CD, les scripts et l’automatisation :

Fenêtre de terminal
# Afficher la reponse et quitter
claudex run grok "Explain this codebase" --print
# Ignorer toutes les demandes de permission (pour les pipelines entierement automatises)
claudex run grok "Fix lint errors" --print --dangerously-skip-permissions

En mode non interactif, les logs sont ecrits dans des fichiers de log par instance a ~/Library/Caches/claudex/proxy-{timestamp}-{pid}.log au lieu de stderr, gardant la sortie stdout propre pour le piping et l’automatisation.

Claudex supporte les hyperliens cliquables OSC 8 dans la sortie du terminal. Consultez Hyperliens terminaux pour les details.

# "auto" detecte le support du terminal ; true/false forcent l'activation/desactivation
hyperlinks = "auto"

Installez des ensembles reutilisables de regles, skills et serveurs MCP. Consultez Jeux de configuration pour les details.

Fenêtre de terminal
claudex sets add ./my-set
claudex sets list

Consultez config.example.toml pour un fichier de configuration complet avec tous les fournisseurs et options.

Pour des instructions de configuration etape par etape pour chaque fournisseur (incluant les liens de cles API et les flux OAuth), consultez le Guide de configuration des fournisseurs.