Communitygithub.com

Summon CLI

Achemine une tâche, un profil de modèle et une compétence vers un CLI d'agent externe, puis retourne le résultat complet.

Qu'est-ce que Summon CLI ?

Summon CLI est une compétence polyvalente pour agents IA (compatible avec Claude Code, Codex CLI, Grok CLI, Gemini CLI, etc.) qui permet de déléguer entièrement une tâche utilisateur à un agent externe configuré. Elle repose sur un fichier de configuration local et un script de découverte (`setup`) qui détecte les CLI, compétences et terminaux graphiques disponibles sur la machine. L'agent externe reçoit uniquement les instructions utilisateur encore valides et le matériel réel nécessaire, sans reformulation ni résumé par l'agent appelant. Le mode par défaut est `visible` (interface interactive dans un terminal graphique), mais peut être basculé en `background` selon la configuration de la tâche ou du profil. Une fonctionnalité avancée permet à Codex de collecter des ressources web supplémentaires avant la délégation, uniquement si la tâche le requiert et que l'utilisateur ne l'interdit pas. Ce système évite toute duplication d'efforts et préserve la fidélité des demandes originales.

Compatible avec✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add CheshireMew/summon-cli

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Summon CLI ?

Objectif

Transmettre l'intégralité de la demande actuelle à un CLI d'agent externe configuré. L'agent externe peut être Claude Code, Grok CLI, Gemini CLI, Codex CLI ou tout autre agent ajouté ultérieurement ; l'API, le modèle, le protocole frontal ou arrière, les paramètres de lancement et la compétence cible sont définis par la configuration interne de cette compétence, et non écrits en dur dans les instructions de comportement.

Cette compétence est utilisée lorsque l'utilisateur invoque explicitement $summon-cli. Une route automatique de rédaction est également configurée : lorsque Codex identifie que l'utilisateur souhaite créer un court post, un article, une présentation de projet ou tout autre texte publiable, il lit la configuration de la tâche writing et délègue ; cette route automatique est également autorisée par le fichier AGENTS.md local. Aucune autre tâche n'est automatiquement déléguée du fait de la présence de cette compétence.

Fonctionnement

Lors de la première utilisation ou après avoir copié cette compétence sur une autre machine, exécutez d'abord la découverte locale dans le répertoire de la compétence :

& '<Répertoire de cette compétence>\scripts\summon.ps1' setup

Pour macOS, Linux ou WSL :

sh '<Répertoire de cette compétence>/scripts/summon.sh' setup

setup détecte uniquement Python, les CLI d'agents, les compétences et les terminaux graphiques présents sur le système, et écrit les chemins absolus dans config/config.local.json, qui est ignoré par Git dans cette compétence ; il n'installe pas de logiciel, ne déplace pas de clés et ne modifie pas la configuration publique. Exécutez ensuite show et doctor pour vérifier les résultats.

Sélectionnez la configuration en fonction de la tâche, du profil et de la compétence désignés par l'utilisateur ; si l'utilisateur ne les a pas désignés, la sélection se fait en fonction de la description de la tâche selon les routes configurées. Une tâche peut ne pas utiliser de compétence, ou en utiliser une seule. Il est impossible de transmettre plusieurs compétences à un agent externe en un seul appel. Si une tâche nécessite une compétence, mais que ni l'utilisateur ni la configuration par défaut ne l'ont sélectionnée, l'utilisateur est d'abord interrogé sur celle à utiliser ; il n'y a pas de conjecture, et les candidats ne sont pas appelés simultanément.

Complément web Codex

Lorsque codex_web de la configuration de la tâche est défini sur supplement, Codex actuel est chargé de la découverte de matériel public avant l'appel. Il lit d'abord la demande existante, le matériel utilisateur et les objets locaux pour déterminer si des documents publics sont encore nécessaires pour accomplir cette tâche. Si le contenu existant est suffisant, la transition s'effectue directement ; ce n'est qu'en cas de lacune avérée que la connexion est établie. Seuls les extraits pertinents du texte original des pages web et leur contexte, accompagnés des liens sources, sont inclus dans la transition, en conservant leur identité de matériel, sans y ajouter de phrase centrale, d'angle recommandé, de narration ou de contenu pré-rédigé extrait par Codex.

Lorsque Codex juge que le contenu existant ou le complément est suffisant, la découverte de matériel public s'arrête ; l'agent externe ne refait pas de recherche et exécute l'étape actuelle de la compétence cible conformément à la demande de l'utilisateur pour ce tour. Si l'utilisateur demande d'abord une remise d'un plan, puis la confirmation avant de rédiger le corps, seul le plan est exécuté lors de ce tour ; les exemples, accroches, corps, vérifications ou modifications ne sont pas préparés à l'avance. Ce n'est que si, après avoir terminé l'étape actuelle, il manque encore des documents publics essentiels que ces documents spécifiques manquants sont confiés à l'agent externe pour recherche. La connexion réseau est utilisée uniquement pour compléter le matériel, et non pour vérifier point par point le contenu de l'utilisateur, ni pour générer un rapport de vérification des faits.

Si l'utilisateur interdit explicitement la connexion réseau ou demande de n'utiliser que le matériel existant, le complément web est sauté. Les autres tâches ne bénéficient du traitement de découverte de matériel public par Codex que si leur propre configuration l'active explicitement.

Transmission à l'agent externe

Ce qui est transmis à l'agent externe, ce sont les mots exacts de l'utilisateur encore nécessaires à son exécution et le matériel réel, et non l'historique complet de correction. Si des messages ultérieurs de l'utilisateur ont corrigé la direction précédente, les demandes, angles et productions de l'assistant devenus invalides sont écartés ; les autres mots originaux de l'utilisateur, le corps des sources, l'ordre et l'identité des sources restent inchangés. Lorsque la signification actuelle est répartie sur plusieurs messages, seules les phrases originales de l'utilisateur qui sont toujours valides et encore nécessaires à l'exécution par l'agent externe sont sélectionnées ; Codex ne les réécrit pas en résumé, synthèse, phrase centrale ou cadre narratif.

L'entrée transmise comprend uniquement :

  • Les mots originaux de l'utilisateur encore nécessaires à l'exécution par l'agent externe et le matériel source ;
  • Le matériel de complément web et les liens effectivement utilisés par Codex ;
  • Les instructions de transition nécessaires.

Pour les missions de rédaction ou de délégation de contenu, si le matériel se trouve dans les tâches historiques accessibles par Codex actuel, les fichiers locaux ou le projet, Codex actuel lit le contenu réel nécessaire avant l'appel et envoie le texte original adopté avec la transition. Les instructions du type "Lisez cet historique", "Ouvrez ces fichiers", "Consultez ce projet pour y puiser du matériel" qui ont déjà été exécutées par Codex actuel ne sont pas répétées comme tâches à faire pour l'agent externe ; remplacer ces instructions par le matériel réel ne constitue pas une réécriture des exigences créatives de l'utilisateur. Ne demandez pas à l'agent externe de lire le README, le SKILL.md, les instructions de configuration, la configuration publique, les tests ou l'historique Git de Summon CLI, et n'écrivez pas "Explorez le projet par vous-même pour trouver du matériel" dans la transition. Ce n'est que lorsque l'utilisateur demande explicitement à l'agent externe de réviser ou de modifier un projet lors de ce tour qu'il est autorisé à consulter les fichiers de ce projet directement liés à la tâche.

Les instructions de transition précisent uniquement quelle couche continue le traitement de la découverte de matériel public ; elles n'annoncent pas que la préparation du matériel en vue de la rédaction est terminée. Elles servent uniquement à permettre à l'agent externe de décider s'il continue d'utiliser des outils en ligne, et n'entrent pas dans le matériel de travail, les résultats de préparation à la rédaction ou le produit final de la compétence cible. Les analyses de Codex, les brouillons échoués, les processus de correction, les décisions internes de route, les instructions de maintenance, les vérifications de faits, les plans et les brouillons de texte rédigés restent dans la tâche actuelle.

L'entrée complète est transmise via l'entrée standard au lanceur :

$input | & '<Répertoire de cette compétence>\scripts\summon.ps1' run --task writing --skill content-writing --cwd '<Répertoire de la tâche actuelle>'

Pour macOS, Linux ou WSL, utilisez le summon.sh correspondant. --cwd est le répertoire du projet que l'agent externe ouvrira réellement ; s'il n'est pas transmis, le répertoire courant lors de l'appel de Summon CLI est utilisé, donc il n'est pas fixé sur un dossier d'une machine particulière d'un développeur.

summon.py analyse à partir de la configuration locale le profil unique, charge l'environnement API correspondant, transmet explicitement à l'agent externe le nom de la compétence cible unique et le chemin absolu de son SKILL.md, puis lance le processus en utilisant le protocole configuré pour le mode actuel du CLI. Il n'interprète pas, ne résume pas et ne réécrit pas l'entrée.

Le mode d'exécution par défaut est visible. L'exécuteur claude-code lance la véritable interface interactive de Claude Code dans Windows Terminal, macOS Terminal.app ou le terminal graphique détecté sous Linux, sans utiliser -p, et commence en mode d'autorisation Auto ; une fois le premier tour terminé, le Hook d'arrêt (Stop Hook) au niveau de la session retourne la réponse complète de Claude à la tâche Codex actuelle, tandis que la fenêtre Claude reste ouverte sur la zone de saisie, permettant à l'utilisateur de poser directement des questions ou de la fermer lui-même. La livraison complète demandée par l'utilisateur lors de ce tour doit être placée dans le dernier message de l'agent externe ; si l'utilisateur demande explicitement une confirmation par étapes, seul l'étape en cours est livrée, sans exécuter les étapes suivantes à l'avance. Si l'agent externe ajoute un très court résumé final après le résultat complet, le Stop Hook restaure le résultat complet précédent à partir des enregistrements de la session en cours. Avant le lancement, les paramètres utilisateur existants de Claude Code sont conservés, et l'initialisation initiale et l'état de confiance du répertoire de travail actuel sont préparés ; ainsi, l'interface ne reste pas bloquée sur les pages de style, d'instructions de sécurité ou de confirmation de répertoire. Sur les machines sans bureau graphique, le rapport indique clairement que le mode visible n'est pas disponible et ne passe pas en arrière-plan sans autorisation. Les tâches ou profils configurés peuvent définir run_mode sur background, auquel cas -p est utilisé pour exécuter en arrière-plan et capturer le résultat. En cas d'appel explicite, --run-mode peut également être utilisé pour remplacer temporairement le mode. L'ordre de résolution est : commande actuelle, configuration de la tâche, configuration du profil, valeur par défaut globale.

En cas d'appel explicite, --profile peut être utilisé pour contourner le profil par défaut de la tâche, et --skill pour remplacer la compétence par défaut de la tâche. Ce remplacement n'affecte que l'appel en cours et ne modifie pas la configuration à long terme.

Une fois que le CLI externe a retourné un résultat de succès, ce résultat complet est livré. En cas d'échec de l'appel, le code de sortie réel, la sortie standard et la sortie d'erreur sont retournés ; aucun changement d'agent, d'API ou de compétence n'est effectué, et Codex ne génère pas de résultat de remplacement.

Ressources

  • scripts/summon.py : programme central multiplateforme, lit la configuration, analyse la tâche et la compétence unique, charge l'environnement du profil et lance le CLI de l'agent externe.
  • scripts/summon.ps1, scripts/summon.sh : points d'entrée portables respectivement pour Windows et macOS/Linux/WSL.
  • config/config.json : protocole d'exécution public, profils, tâches et noms de compétences pouvant être migrés avec la compétence ; ne contient pas de chemins absolus locaux.
  • config/config.local.json : chemins locaux des CLI, compétences et terminaux générés par setup ; le fichier se trouve dans la compétence et est exclu par .gitignore.
  • config/profiles/*.env : environnement API correspondant au profil ; les fichiers se trouvent avec les autres configurations dans la compétence et sont exclus par .gitignore.
  • references/configuration.md : explique la configuration et la manière d'ajouter des exécuteurs, profils, tâches et compétences.

Sortie et achèvement

Par défaut, l'interface interactive réelle ou le processus en temps réel de l'agent externe est affiché dans une fenêtre séparée, et son texte ou résultat complet est retourné à la tâche actuelle, sans ajout de version Codex. Le retour du résultat n'attend pas la fermeture de la fenêtre ; la fenêtre d'interaction native reste ouverte après le premier tour pour que l'utilisateur puisse la consulter et poser des questions. Lorsque l'agent externe génère des fichiers à la demande de l'utilisateur, ces fichiers appartiennent au projet cible explicitement spécifié par l'utilisateur ; en mode visible, les fichiers temporaires utilisés pour la transition du premier tour sont immédiatement nettoyés après le retour du résultat, et le lanceur ne conserve pas les invites, le texte ou les journaux d'exécution. Claude Code conserve ses propres mécanismes normaux de récupération des sessions interactives.

La délégation n'est considérée comme terminée que si l'agent externe a réellement retourné un résultat de succès. La capacité à analyser la configuration, l'existence des fichiers exécutables et la possibilité de lancer la commande ne prouvent respectivement que le niveau correspondant ; en cas d'absence de clé API, de compétence cible ou de protocole non interactif compatible, l'absence est précisément indiquée et le processus s'arrête.

Skills associés