Aller au contenu principal

Référence complète de configuration

Toutes les clés que ~/.opencli/config.toml accepte. Pour la poignée que la plupart des gens touchent, le fichier de configuration est plus court.

Le plus rapide : laissez OpenCLI trouver vos modèles​

Si vous faites déjà tourner Ollama, LM Studio, vLLM ou llama.cpp en local :

opencli provider scan

Cela sonde les ports localhost habituels, demande à chaque serveur trouvé quels modèles il sert, et écrit les sections [model_providers.*] et [[models]] correspondantes dans votre config.toml — vos commentaires et réglages existants sont préservés. Ajoutez --dry-run pour voir d'abord ce qu'il écrirait.

Pour les fournisseurs hébergés, installez-en un depuis le catalogue et donnez sa clé :

opencli provider list # le catalogue, plus ce qui est déjà configuré
opencli provider add openrouter
export OPENROUTER_API_KEY=...

Le catalogue ne contient que des informations de connexion : aucune clé n'est livrée avec le binaire, et rien n'est actif tant que vous ne l'ajoutez pas. Pour configurer quelque chose d'absent du catalogue, écrivez les sections à la main comme décrit ci-dessous.

Renseigner les capacités d'un modèle​

La fenêtre de contexte d'un modèle local et sa prise en charge des appels d'outils ne sont publiées nulle part, et deviner est pire que de laisser vide : une fenêtre de contexte trop grande, et le fournisseur refuse les tours au lieu de compacter automatiquement. Demandez au modèle :

opencli model probe <slug> # ajoutez --dry-run pour prévisualiser

Cela lit les métadonnées du moteur lui-même quand elles existent (Ollama indique la vraie longueur de contexte et la liste des capacités) et, en plus, effectue une requête réelle pour voir si le modèle appelle un outil qu'on lui propose et s'il renvoie son raisonnement dans un champ reasoning distinct. Les constatations sont écrites dans l'entrée [[models]] du modèle.

Les modèles incapables de discuter — ceux d'embeddings, par exemple — sont ignorés par provider scan, ils n'atteignent donc jamais le sélecteur /model.

Choisir modèles et fournisseurs​

Cette build fournit des préréglages pour plusieurs passerelles, mais tout modèle joignable par une API compatible OpenAI peut être configuré dans ~/.opencli/config.toml sans recompiler.

Ajouter un fournisseur​

Les entrées de [model_providers.<id>] remplacent un fournisseur intégré du même id : c'est donc aussi ainsi qu'on redirige une passerelle fournie vers un proxy ou un miroir :

[model_providers.my-gateway]
name = "My Gateway"
base_url = "https://gateway.example.com/v1"
env_key = "MY_GATEWAY_API_KEY"
wire_api = "chat"
# Facultatif : à augmenter si cette passerelle est lente à sortir le premier token.
stream_idle_timeout_ms = 90000

Les clés d'API sont toujours lues dans l'environnement ; elles ne sont jamais stockées dans le fichier de configuration.

Ajouter un modèle​

Déclarez des modèles avec [[models]]. Ils apparaissent dans le sélecteur /model à côté des préréglages intégrés, et une entrée dont le model correspond à un préréglage intégré le remplace :

[[models]]
model = "qwen3-max"
provider = "my-gateway"
display_name = "Qwen3 Max" # facultatif, par défaut le slug
description = "Auto-hébergé." # facultatif
show_in_picker = true # facultatif, true par défaut

provider est obligatoire et doit nommer un fournisseur défini plus haut ou un fournisseur intégré ; un modèle pointant vers un fournisseur non défini est rejeté au démarrage plutôt que d'échouer plus tard avec une erreur sans rapport.

Pour choisir un modèle sans l'ajouter au sélecteur, réglez directement model et model_provider :

model = "qwen3-max"
model_provider = "my-gateway"

Si model nomme quelque chose qui n'est ni un préréglage intégré ni une entrée [[models]] et que model_provider n'est pas renseigné, les requêtes retombent sur le fournisseur openai et un avertissement est journalisé.

Fenêtres de contexte​

Les modèles dont cette build n'a pas les métadonnées démarrent avec une fenêtre prudente de 131 072 tokens et apprennent la vraie au premier refus pour dépassement de fenêtre renvoyé par la passerelle. Réglez model_context_window pour la figer explicitement.

Se connecter à des serveurs MCP​

OpenCLI peut se connecter à des serveurs MCP déclarés dans ~/.opencli/config.toml.

[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]

[mcp_servers.internal]
url = "https://mcp.example.com/mcp"

env_vars nomme les variables dont le serveur a besoin ; les valeurs sont conservées avec vos autres clés, et non dans ce fichier, qui se partage. Un serveur déclaré ici démarre avec la prochaine conversation que vous ouvrez, pas avec celle qui est devant vous.

L'application de bureau écrit la même table depuis Abilities → Connectors, qui teste aussi la poignée de main et liste les outils proposés par chaque serveur.

Apps (Connectors)​

Utilisez $ dans la zone de saisie pour insérer un connecteur ChatGPT ; la liste déroulante affiche les apps accessibles. La commande /apps liste les apps disponibles et installées. Les apps connectées apparaissent en premier et sont marquées comme connectées ; les autres sont marquées comme installables.

Notifications​

OpenCLI peut lancer un hook de notification quand l'agent termine un tour.

notify = ["/path/to/your/script.sh"]

Le programme est appelé avec un argument : un objet JSON décrivant ce qui s'est passé. Il est lancé détaché, un script lent ne retient donc pas le tour suivant, et un script qui échoue est journalisé plutôt que remonté à l'écran.

Schéma JSON​

Le schéma JSON généré pour config.toml se trouve dans opencli-rs/core/config.schema.json, et est publié à chaque version sous le nom config-schema.json. Pointez-y votre éditeur pour avoir complétion et validation en éditant le fichier à la main.

Il est généré à partir des types Rust, et la CI échoue s'il s'en écarte — c'est donc la seule description de ce fichier qui ne peut pas devenir obsolète.

Avis​

OpenCLI enregistre les indicateurs « ne plus afficher » de certaines invites d'interface dans la table [notice].

Quitter par Ctrl+C/Ctrl+D utilise un indice de double appui d'environ une seconde (ctrl + c again to quit).