Chargement de l'image...Kiro

Produit

  • À propos de Kiro
  • Agents
  • IDE
  • CLI
  • Web
  • Mobile
  • Crew
  • Tarification
  • Téléchargements

Pour

  • Entreprise
  • Startups
  • Étudiants

Communauté

  • Aperçu
  • Ambassadeurs
  • Études de cas
  • Discord
  • Événements
  • Powers
  • Boutique
  • Vitrine

Ressources

  • Docs
  • Blogue
  • Journal des modifications
  • FAQ
  • Signaler un bogue
  • Suggérer une idée
  • Soutien à la facturation

Réseaux sociaux

Conditions d'utilisation du siteLicencePolitique d'IA responsableMentions légalesPolitique de confidentialitéPréférences relatives aux témoins
Chargement de l'image...Kiro
  • Agents
  • Entreprise
  • Tarification
  • Docs
SE CONNECTERTÉLÉCHARGER
Chargement de l'image...Kiro

Pour commencer

InstallationAuthentificationVotre premier projet

Modèles

AperçuModèles disponiblesEffort de raisonnementModèles AWS GovCloud (US)

Fonctionnalités

Comment fonctionne KiroIntégrations ACP
Specs
Steering
Hooks
MCP
Autorisations
Agents personnalisés
Workflows
Agent Skills
Powers
Sessions cloudCompactionKiroignorePoints de contrôle et rewind
Outils intégrés
Portées de configuration

IDE 1.x

Nouveautés de la version 1.0
Configuration et premier lancement
Éditeur
Chat
Expérimental
DépannageRéférence 0.x

CLI

Nouveautés de V3
Configuration et première exécution
Interface utilisateur du terminal
Clavardage
Mode plein écranMode vocalMode sans interfaceACPAutocomplétion
Expérimental
Référence 2.x

Crew

Démarrage rapideInstallationFonctionnement 24/7
Chat
Agent Capabilities
Fonctionnalités
Sous-agents
Planification
Artéfacts
Backends d'agent (Preview)
Multi-instance
Task Runner
Flux de travail
Memory
Knowledge
Instantané et restauration
Navigateur
Utilisation de l'ordinateur
Interfaces
Applications
Système et stockageConfigurationSécuritéDépannage

Web

Configuration et première exécutionIdentity Center
Connectez vos dépôts
Utilisation de l'agent
Mode autonomeAutomatisationsMémoireSynchronisation de la configuration
Sandbox

Mobile - Aperçu

Aperçu

Commandes et référence

Commandes CLICommandes à barre obliqueOutils intégrésCodes de sortieParamètres

Facturation

AperçuGestion de votre abonnementMise à niveau de votre forfaitRétrogradation de votre forfaitAnnulation de votre forfaitAchat de crédits supplémentairesGestion de vos paiementsGestion des notifications d'utilisationGestion de vos impôtsCommuniquer avec le soutien à la facturationSuppression de votre compteQuestions connexes

Entreprise

ConceptsDémarrage rapide de l'intégration
Connexion de votre fournisseur d'identité
Options de déploiementAbonnez votre équipeGérer les abonnements
Governance
Surveillance et suivi
ParamètresMises à jour géréesFacturationIAMRégions prises en charge

Confidentialité et sécurité

AperçuProtection des donnéesRéférences de codeValidation de la conformitéSécurité de l'infrastructureAutorisations IAMPare-feu, mandataires et périmètres de donnéesPoints de terminaison VPC (AWS PrivateLink)

Guides

Aperçu
Prise en charge des langages
Apprendre en jouant

Migration

Migration depuis Q DeveloperMigration depuis VSCodeMise à niveau depuis Q CLI
  1. Docs
  2. Crew
  3. Fonctionnalités
  4. Multi-instance
Afficher en Markdown

Multi-instance

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et la version anglaise originale, la version anglaise prévaudra.
Afficher en Markdown

Exécutez Crew sur des hôtes de développement distants, des instances EC2, des serveurs personnels ou des tâches Fargate jetables et accédez-y depuis un seul tableau de bord local. Les instances longue durée exposent une passerelle loopback via un transfert de port SSH ou AWS SSM. Fargate expose une API de tour limitée à la tâche via AWS SSM, sans règle réseau entrante.

Activation volontaire. Désactivé par défaut.

Clavarder avec une instance Crew connectée (Preview)

Définissez instances.enabled à true, puis activez Settings → Developer → Feature Previews → Chat on a crew. Ouvrez le menu de nouvelle conversation, choisissez New chat on crew et sélectionnez une instance Crew connectée.

La transcription reste locale tandis que chaque tour s'exécute sur l'instance Crew distante sélectionnée. La barre latérale affiche le nom Crew et l'insigne du serveur. Le comportement de connexion automatique se configure dans Settings → Remote crews → Auto-connect crews.

Activer les instances distantes

bash
kirocrew config set instances.enabled true

Ce paramètre s'applique en direct dans la version 0.7. Le Gateway crée le registre des instances et commence à gérer les connexions admissibles sans redémarrage manuel.

Méthodes de connexion

SSH

Utilisez un nom d'hôte, user@host ou un alias de configuration SSH. L'authentification doit fonctionner sans invite interactive, normalement via ssh-agent ou un fichier d'identité configuré.

AWS SSM

Utilisez un ID d'instance EC2 ou un ID d'instance gérée SSM avec un profil AWS et une région. La machine locale nécessite l'AWS CLI et le plugin Session Manager, et l'instance distante nécessite l'agent SSM ainsi que les permissions IAM requises. La connexion utilise le transfert de port et ne nécessite pas de règle SSH entrante.

AWS Fargate

Fargate est conçu pour les travailleurs distants jetables. Crew s'exécute en tant que tâche ECS et est accessible via un transfert SSM vers son API de tour, sans écouteur public ni tableau de bord distant intégré. Configurez le placement Fargate, l'image épinglée par condensé et les références aux secrets dans le bloc facultatif fargate de cloud.json; la surface Cloud affiche l'état de la connexion et de la tâche.

Une tâche dure six heures par défaut. Définissez fargate.task_ttl_seconds pour choisir une durée de vie positive différente. Le moteur d'exécution admet au plus dix tâches Crew Fargate à la fois; ce plafond de sécurité est fixe plutôt qu'un paramètre de cloud.json.

L'ordinateur portable qui se connecte nécessite l'AWS CLI et le plugin Session Manager. Fargate utilise les mêmes contrôles de gestion de crew à distance réservés au propriétaire que les autres méthodes de connexion.

Fonctionnement

┌── Hub gateway (this host) ──┐ │ /instances page (React) │ │ ├─ tab strip: Home · A · B │ │ ├─ warm <iframe>s per tab │ http://127.0.0.1:<local_port>/?token=… │ └─ Manage panel │ add / connect / diagnose / restart / remove │ │ │ instances/ package │ │ ├─ registry │ ~/.kiro/crew/instances.json │ ├─ port_allocator │ loopback ports from base 7778 │ ├─ token_mint │ ssh <host> kirocrew token → JWT (never logged) │ ├─ ssh_tunnel_manager │ supervised ssh -N -L, probe, self-heal, refresh │ └─ diagnostics │ ssh → remote-dashboard → local-forward ladder └──────────────────────────────┘ │ ssh -N -L 127.0.0.1:<local>:127.0.0.1:<remote> ▼ ┌── Remote gateway ────────────┐ │ kirocrew gateway bound to │ │ 127.0.0.1:<remote_port> │ └──────────────────────────────┘

Chaque instance que vous ajoutez produit un processus enfant supervisé ssh -N -L. Le tunnel transfère 127.0.0.1:<local> → distant 127.0.0.1:<remote>. Le hub émet un jeton de tableau de bord sur l'instance distante via SSH et intègre le tableau de bord distant dans un iframe à l'URL loopback.

Le cycle de vie

  1. Connexion — POST /api/instances/{id}/connect alloue un port loopback, émet un jeton sur l'instance distante via SSH, démarre ssh -N -L, attend que le transfert local accepte une connexion, puis renvoie l'état en direct
  2. Ensemble actif — par défaut, l'ensemble actif s'ajuste automatiquement pour les instances admissibles, avec un plafond de 8; définissez instances.warm_set_cap sur une valeur positive pour fixer une limite. Les instances actives conservent un tunnel + WebSocket en direct. Se connecter au-delà du plafond évince paresseusement la moins récemment utilisée
  3. Sonde de santé — pendant la connexion, une sonde interroge le transfert loopback toutes les 30 s; après 3 échecs consécutifs, elle arrête le processus enfant pour déclencher la récupération
  4. Autoréparation à 2 niveaux — en cas d'arrêt inattendu : le niveau 1 reconstruit le tunnel en réutilisant le jeton existant; le niveau 2 réémet le jeton puis reconstruit. Limité à 8 tentatives avec un délai exponentiel plafonné (fenêtre d'environ 2 min)
  5. Renouvellement proactif du jeton — une boucle par instance réémet le jeton à 0,8 de sa durée de vie (TTL), avant le plafond d'environ 20 h
  6. Diagnostic / redémarrage — ?diagnose=1 exécute une série de sondes de défaillance à la demande; POST .../restart redémarre la passerelle distante via SSH

Ajouter une instance

Ouvrez Settings → Remote crews, sélectionnez Add et choisissez la méthode de connexion.

MéthodeChamps cibles
SSHNom d'hôte, user@host ou alias de configuration SSH, plus le port de la passerelle distante
AWS SSMID d'instance EC2 (i-*) ou ID d'instance gérée (mi-*), profil AWS, région et utilisateur d'exécution facultatif
FargateLa cible de tâche ECS enregistrée créée par le flux de lancement Cloud, plus le profil AWS et la région

Toutes les méthodes prennent un nom d'affichage. Les passerelles SSH et SSM longue durée utilisent également une durée de vie du jeton de tableau de bord. Une valeur commençant par - ou une cible qui ne correspond pas à sa méthode est refusée avant le démarrage d'un processus enfant.

Types d'hôtes distants

Poste de développement ou serveur personnel

Utilisez votre alias de configuration SSH ou user@hostname. L'authentification doit réussir de façon non interactive via ssh-agent ou des clés configurées.

EC2 et autres hôtes basés sur des clés

Configurez un alias SSH sur le hub, puis utilisez cet alias comme cible SSH :

Host my-ec2 HostName ec2-1-2-3-4.compute-1.amazonaws.com User ec2-user IdentityFile ~/.ssh/my-key.pem ProxyJump bastion-host

Pour une instance EC2 sans port SSH entrant, choisissez AWS SSM directement ou utilisez une ProxyCommand SSM dans l'alias SSH.

Prérequis sur le hub :

  • Une clé sans phrase de passe ou un ssh-agent la détenant (BatchMode ne demandera pas d'invite)
  • kirocrew installé et une passerelle en cours d'exécution sur le port loopback de l'instance EC2

Ce qui est pris en charge

BesoinÉtatComment
Utilisateur de connexion personnalisé✅user@host ou User dans la configuration ssh
FQDN / IP✅valeur directe de ssh_host
Fichier d'identité (-i)⚠️ via la configuration ssh seulementIdentityFile dans un bloc Host
Port SSH autre que 22⚠️ via la configuration ssh seulementPort dans un bloc Host
Bastion / ProxyJump⚠️ via la configuration ssh seulementProxyJump / ProxyCommand
Instances SSM uniquement⚠️ via la configuration ssh seulementProxyCommand avec aws ssm start-session

Gestion des instances

Le panneau Manage vous offre les actions suivantes par instance :

  • Connect — ouvrir un tunnel + iframe
  • Disconnect — fermer le tunnel
  • Diagnose — exécuter la série de sondes de défaillance et signaler le premier lien rompu
  • Restart — redémarrer la passerelle distante via SSH (avec prise en compte du service)
  • Edit — modifier le nom / l'hôte / le port / le TTL
  • Remove — déconnecter puis supprimer

Modèle de sécurité

Chaque route de /api/instances/* est protégée par _guard() :

  • Refus par défaut — rejette les requêtes provenant de Slack (403)
  • Réservé au propriétaire — exige request["user"] (session de tableau de bord authentifiée)
  • Contrôlé par fonctionnalité — exige instances.enabled: true
  • Audité par SEL — chaque appel (réussite et refus) émet un événement d'audit

Au-delà de la protection :

  • Transferts loopback uniquement — ssh -N -L 127.0.0.1:<local>:127.0.0.1:<remote>
  • Aucun shell local — ssh est toujours invoqué avec une liste argv; ssh_host ne peut pas injecter de syntaxe shell locale
  • Entrées validées par jeu de caractères — ssh_host et remote_bin sont rejetés s'ils contiennent des métacaractères shell ou commencent par -
  • Jetons de courte durée — ≤20 h, renvoyés uniquement en mémoire à l'appelant, jamais journalisés, jamais dans les charges utiles de liste/état
  • Vérification de l'origine postMessage — le parent valide chaque event.origin de trame intégrée par rapport à l'exact http://127.0.0.1:<port> d'un tunnel actuellement actif avant de faire confiance à un message de compte de non-lus

Configuration

Pour instances.enabled et les autres paramètres des instances multiples, consultez Configuration.

Dépannage

SymptômeSolution
/instances affiche « multi-instance management is off »instances.enabled est à false — activez-le et redémarrez
L'iframe est videL'assouplissement de la CSP frame-src ne s'applique qu'aux ports de tunnel actifs; assurez-vous que l'instance est connectée
La connexion échoue avec une erreur d'authentification SSHActualisez vos identifiants SSH (rajoutez la clé à ssh-agent); les tunnels s'autoréparent une fois SSH rétabli
La connexion échoueUtilisez Diagnose — la série de sondes signale le premier lien rompu (ssh_unreachable, remote_down ou tunnel_down)
L'instance se déconnecte constammentSonde de santé + nouvelle tentative d'autoréparation à 2 niveaux sur environ 2 min; si elle abandonne, le diagnostic s'exécute automatiquement. Vérifiez la passerelle distante et la stabilité SSH
Une instance a disparu silencieusement de l'ensemble actifÉvincée par LRU (ensemble actif plein). Augmentez instances.warm_set_cap ou reconnectez-vous à la demande
Page mise à jour : 25 septembre 2026
Backends d'agent (Preview)
Task Runner