Skip to main content

Mode TCP

Par défaut, le SDK démarre un nouveau processus Copilot CLI à chaque requête (mode stdio). Avec le mode TCP, vous vous connectez à un serveur Copilot CLI démarré au préalable.

Avantages du mode TCP

  • Meilleures performances : pas d’overhead de démarrage de processus
  • Partage de ressources : un même serveur CLI peut être partagé par plusieurs processus Laravel
  • Gestion de processus : peut être géré comme un processus d’arrière-plan par Laravel Forge / Laravel Cloud
  • Compatible déploiement : gère le redémarrage automatique lors des déploiements

Utilisation

1. Démarrer le serveur Copilot CLI

2. Définir la variable d’environnement

Cela suffit : le SDK bascule automatiquement du mode stdio au mode TCP.
  • tcp:// est optionnel. http:// ou l’absence de schéma fonctionnent aussi.
  • Vous pouvez ne préciser que le port. Dans ce cas, l’hôte est automatiquement 127.0.0.1.
  • N’indiquer que l’hôte n’est possible que pour 127.0.0.1 et localhost. Le port par défaut est alors 12345.

Fichier de configuration

Vous pouvez configurer la connexion TCP dans config/copilot.php.
Si COPILOT_URL (cli_url) et COPILOT_CLI_PATH sont définis, le mode TCP est prioritaire.

Basculer de mode à l’exécution

Normalement, le fichier de configuration détermine automatiquement mode TCP ou stdio. Vous pouvez aussi basculer explicitement dans le code.
Certains serveurs peuvent ne pas fonctionner correctement en mode TCP. Vous pouvez alors alterner : mode TCP pour la file d’attente, mode stdio pendant les requêtes HTTP.

Exploitation avec Laravel Forge / Laravel Cloud

Laravel Forge

  1. Créer un Daemon : dans l’interface Forge, créez un Daemon.
  2. Configurer les variables d’environnement : ajoutez COPILOT_URL à .env.
  3. Redémarrer lors du déploiement : redémarrez le Daemon dans le script de déploiement.
Peut ne pas être nécessaire sur les environnements Forge actuels.

Laravel Cloud

Utilisez la fonctionnalité de worker de Laravel Cloud pour l’exécuter en arrière-plan. Voir Utilisation avec Laravel Cloud pour plus de détails.

Points d’attention

Sécurité

Utilisez autant que possible une liaison locale (127.0.0.1) pour le serveur TCP. Si vous l’exposez, configurez un pare-feu adapté.

Reconnexion

La version actuelle n’a pas de mécanisme de reconnexion automatique. En cas de coupure, une exception est levée.

Vérifier le mode actuel

Vous pouvez inspecter dans le code le mode utilisé par le client.

Dépannage

Impossible de se connecter

  1. Vérifiez que le serveur Copilot CLI est démarré
  1. Vérifiez le bon port
  1. Vérifiez le pare-feu

Erreurs de timeout

Augmentez la valeur timeout dans config/copilot.php.
Pour les dernières informations, consultez le dépôt GitHub.
Dernière modification le 13 juillet 2026