Chargement de l'image...Kiro

Produit

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

Pour

  • Entreprise
  • Startups
  • Étudiants

Communauté

  • Aperçu
  • Ambassadeurs
  • 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
  • Entreprise
  • Tarification
  • Docs
SE CONNECTERTÉLÉCHARGER
Chargement de l'image...Kiro

Pour commencer

InstallationAuthentificationVotre premier projet

Modèles

AperçuModèles disponiblesEffort de raisonnement

Fonctionnalités

Comment fonctionne Kiro
Specs
Steering
Hooks
MCP
Autorisations
Agents personnalisés
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 la version 3.0
Configuration et première exécution
Interface utilisateur du terminal
Clavardage
Mode vocalMode sans interfaceACPAutocomplétion
Expérimental
Référence 2.x

Crew

Démarrage rapideInstallationFonctionnement 24/7
Chat
Agent Capabilities
Fonctionnalités
Interfaces
Applications
Créez votre première application
Référence du manifeste
Référence SDK / API
Publication et lignes directrices
ConfigurationSécuritéDépannage

Web - Aperçu

Configuration et première exécutionIdentity Center
Connectez vos dépôts
Utilisation de l'agent
Mode autonomeAutomatisationsMémoire
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é
Abonnez 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. Applications
  4. Référence SDK / API
Afficher en Markdown

Référence SDK / API

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

La façon dont vous communiquez avec la passerelle Crew dépend de l'endroit où votre code s'exécute. Cette page fait correspondre chaque surface à l'API appropriée.

Choisir le bon SDK

Où votre code s'exécuteUtilisez
Page d'interface utilisateur du tableau de bord (TypeScript / React)Hooks @kirocrew/app-sdk (résolus par l'hôte à l'exécution)
Application Python, outil CLI ou serviceLe paquet kirocrew-client — pip install kirocrew-client
Application Node.js / ElectronAppelez directement les points de terminaison REST/WebSocket de la Gateway via fetch()

Il n'existe aucun paquet npm de client de passerelle TypeScript publié. Les noms de méthodes kirocrew-client ci-dessous décrivent la surface canonique de l'API Gateway — les mêmes points de terminaison que tout client (y compris fetch brut) utilise.

Interface utilisateur du tableau de bord — Hooks du App SDK

Les pages d'interface utilisateur du tableau de bord importent des hooks à portée de permission depuis @kirocrew/app-sdk, résolus à l'exécution via la carte d'importation de l'hôte :

tsx
import { useAppApi, useAppEvents } from '@kirocrew/app-sdk' function MyPage() { const api = useAppApi() // permission-scoped GET/POST/PUT/PATCH/DELETE useAppEvents('notification', (e) => console.log(e)) // ... }

useAppApi() retourne un client dont les méthodes (get, post, put, patch, del) appellent les points de terminaison de la Gateway listés ci-dessous, à portée de votre liste d'autorisations permissions.api. Les chemins hors portée lancent une erreur. L'hôte injecte l'authentification automatiquement.

Hooks

HookRetourneObjectif
useAppApi()AppApiClientClient HTTP à portée de permission
useAppEvents(event, cb)() => voidS'abonner aux événements WebSocket; retourne une fonction de désabonnement
useTheme()ThemeThème réactif (mode, accent, colorTheme)
useAppInfo()AppInfoMétadonnées de l'application (nom, version, permissions)
useNavigate()(path) => voidNaviguer vers les routes Crew
useNotify()(text, opts?) => voidAfficher une notification toast
useNavBadge()(count) => voidMettre à jour le compteur du badge de la barre latérale
useChatLauncher()LauncherFnNaviguer vers le clavardage avec un agent et un message facultatifs

Composants d'interface utilisateur partagés

Importez depuis @kirocrew/app-sdk/ui :

Card, CardTitle, Btn, SendBtn, Input, SearchInput, Badge, AimBadge, StatCard, Skeleton, ContentSkeleton, EmptyState, PageHeader, Toggle, InfoTip, SegmentedControl, MarkdownRenderer.

Client Python

bash
pip install kirocrew-client

Client asynchrone autonome utilisant aiohttp. Aucune dépendance au paquet principal Crew.

python
from kirocrew_client import CrewClient async with CrewClient(app_name="my-app") as mc: ok = await mc.ping() slots = await mc.list_slots() task_id = await mc.dispatch_agent_async("my-agent", "Analyze ticket T-123") result = await mc.get_task_result(task_id)

Constructeur

python
CrewClient( base_url="", # default: http://localhost:{KIROCREW_PORT or 5476} token="", # optional for localhost app_name="", # enables app-scoped storage + auto-auth timeout=30, # request timeout seconds max_retries=3, retry_base_delay=1.0, message_length_limit=40000, on_auth_expired=None, # async callback returning new token )

Lorsque app_name est défini et qu'aucune authentification explicite n'est fournie, le client lit automatiquement le secret de l'application depuis ~/.kiro/crew/apps/{name}/.app_secret et l'échange contre un jeton à courte durée de vie via POST /api/apps/{name}/token.

Surface de l'API Gateway

Les noms de méthodes ci-dessous utilisent snake_case pour Python; les noms TypeScript sont indiqués pour la lisibilité. Les mêmes points de terminaison sont accessibles via fetch() brut depuis Node ou un navigateur.

Authentification

Nom TSPythonObjectif
authenticate()authenticate()Échanger le secret de l'application contre un jeton (appelé automatiquement si appName est défini)
setToken(token)set_token(token)Définir manuellement le jeton d'authentification sur le HTTP et le WebSocket

Connexion

Nom TSPythonObjectif
ping()ping()Vérifier l'accessibilité de la passerelle
getStatus()get_status()Santé de la passerelle (version, temps de disponibilité, slots, fournisseur)
getSystemInfo()get_system_info()Métriques du CPU, de la mémoire et du disque

Slots de clavardage

Nom TSPythonObjectif
createSlot(name, agent?)create_slot(name, agent="")Créer une nouvelle session de clavardage
listSlots()list_slots()Lister toutes les sessions actives
deleteSlot(id)delete_slot(id)Supprimer une session
getSlotHistory(id, limit?)get_slot_history(id, limit=50)Obtenir l'historique des messages d'un slot
sendMessage(id, msg)send_message(id, msg)Envoyer un message (valide la longueur, vide automatiquement le contexte en attente)

Événements WebSocket

Nom TSPythonObjectif
connect()(auto)Ouvrir la connexion WebSocket
disconnect()(auto)Fermer la connexion WebSocket
onChatChunk(slotId, cb)subscribeDiffuser les fragments de réponse pour un slot
onChatDone(slotId, cb)subscribeRéponse terminée pour un slot
onNotification(cb)subscribeRecevoir des notifications
onToolCall(cb)subscribeRecevoir des événements d'appel d'outil
onConnectionChange(cb)subscribeChangements d'état de connexion
onRaw(cb)subscribeTous les événements WebSocket analysés

Toutes les méthodes d'abonnement retournent une fonction de désabonnement.

Types d'événements (liste partielle) : chat_chunk, chat_done, chat_message, chat_error, tool_call, notification, slots, slot_title, dashboard, log, refresh, approval, subagent_done, task_update, task_complete, proactive_notification, app_reload, error.

Sous-agents

Nom TSPythonObjectif
spawn(task, agent?)spawn(task, agent="")Générer un sous-agent en arrière-plan
spawnMany(tasks, agents?)spawn_many(tasks, agents=None)Générer plusieurs sous-agents en parallèle
listSubagents()list_subagents()Lister tous les sous-agents
getSubagentStatus(id)get_subagent_status(id)Obtenir la sortie d'un sous-agent

Tâches cron

Nom TSPythonObjectif
addCron(name, opts)add_cron(name, **opts)Créer une tâche planifiée
listCrons()list_crons()Lister toutes les tâches cron
updateCron(id, opts)update_cron(id, **opts)Mettre à jour une tâche cron
removeCron(id)remove_cron(id)Supprimer une tâche cron
pauseCron(id)pause_cron(id)Mettre en pause sans supprimer
resumeCron(id)resume_cron(id)Reprendre une tâche mise en pause

Leçons

Nom TSPythonObjectif
addLesson(rule, cat, scope?)add_lesson(rule, cat, scope="")Enregistrer une règle apprise
listLessons()list_lessons()Lister toutes les leçons
removeLesson(query)remove_lesson(query)Supprimer les leçons correspondantes

Notifications

Nom TSPythonObjectif
sendNotification(text, opts?)send_notification(text, **opts)Envoyer via Slack ou le tableau de bord
listNotifications()list_notifications()Lister les notifications
ackNotifications()ack_notifications()Accuser réception de toutes

Approbations

Nom TSPythonObjectif
approveAction(slot, task)approve_action(slot, task)Approuver une action d'outil en attente
rejectAction(slot, task)reject_action(slot, task)Rejeter une action d'outil en attente
resolveApproval(id, ok)resolve_approval(id, ok)Résoudre une approbation par ID
getApprovalMode()get_approval_mode()Obtenir le mode d'approbation actuel
setApprovalMode(mode)set_approval_mode(mode)Définir sur "auto" ou "interactive"

Modèles

Nom TSPythonObjectif
listModels()list_models()Lister les modèles LLM disponibles
setSlotModel(slotId, model)set_slot_model(slot, model)Définir le modèle pour un slot

Serveurs MCP

Nom TSPythonObjectif
listMcpServers()list_mcp_servers()Lister les serveurs MCP enregistrés
registerMcpServer(def)register_mcp_server(name, cmd, args?, env?)Enregistrer un serveur MCP
removeMcpServer(name)remove_mcp_server(name)Supprimer un serveur MCP
registerAppMcp(name, entry)register_app_mcp(name, ...)Écrire l'entrée MCP dans ~/.kiro/crew/mcp.json
unregisterAppMcp(name)unregister_app_mcp(name)Supprimer l'entrée MCP

Exécution de l'agent

Nom TSPythonObjectif
dispatchAgent(agent, prompt)dispatch_agent(agent, prompt)Exécuter l'agent de façon synchrone
dispatchAgentAsync(agent, prompt)dispatch_agent_async(agent, prompt)Exécuter en arrière-plan
getTaskResult(taskId)get_task_result(id)Interroger l'état de la tâche

Installation d'agent et de skill (SDK Node.js uniquement)

Nom TSObjectif
installAgentConfig(name, config)Installer le JSON de l'agent dans ~/.kiro/agents/ (fusionne mcpServers)
removeAgentConfig(name)Supprimer la configuration de l'agent
installSkill(name, srcDir)Copier le répertoire du skill vers ~/.kiro/crew/skills/
removeSkill(name)Supprimer le répertoire du skill

Configuration

Nom TSPythonObjectif
getGatewayConfig(key)get_gateway_config(key)Lire une section de configuration de la passerelle
setGatewayConfig(key, value)set_gateway_config(key, val)Écrire une section de configuration de la passerelle

Stockage de l'application

Nom TSPythonObjectif
getAppDataDir()get_app_data_dir() → PathRépertoire de données à portée de l'application
getAppConfig()get_app_config()Lire la configuration de l'application via REST
setAppConfig(config)set_app_config(cfg)Écrire la configuration de l'application via REST

Mémoire

Nom TSPythonObjectif
memorySearch(query, topK?)memory_search(q, top_k=8)Recherche sémantique en mémoire

Injection de contexte

Contexte silencieux en arrière-plan — apparaît au prochain tour initié par l'utilisateur sans déclencher de réponse.

Nom TSPythonObjectif
injectContext(slotId, content, opts?)inject_context(slot, content, ...)Injecter du contexte (slotId nul = mise en tampon locale)
flushPendingContext(slotId)flush_pending_context(slot)Vider les entrées mises en tampon
setDefaultSlot(slotId)set_default_slot(slot)Vidage automatique lors de sendMessage

Options : { source?: string, ephemeral?: boolean, maxAge?: number }.

Authentification proxy (côté serveur)

Pour les serveurs dorsaux d'application : vérifier qu'une requête a été signée par le proxy inverse de la passerelle.

FonctionLangageObjectif
verifyProxyRequest(req, appName, opts?)Node.jsVérifier le HMAC sur toute requête Node.js
verify_proxy_request(request, app_name, ...)PythonVérifier le HMAC sur toute requête aiohttp / Django / FastAPI
verify_proxy_request_raw(header, ...)PythonVérifier à partir d'une chaîne d'en-tête brute

La signature est HMAC-SHA256(timestamp:method:/api/path[?query]:sha256(body)) avec le secret de l'application comme clé. Les horodatages doivent se situer dans une plage de ±60 s par rapport à maintenant. Utilise une comparaison à temps constant.

Points de terminaison REST de la Gateway — applications

Pour les opérations de cycle de vie des applications au-delà des enveloppes du client :

MéthodeCheminObjectif
GET/api/appsLister toutes les applications installées
GET/api/apps/registryLister les applications disponibles depuis le registre
GET/api/apps/blob?repo=&path=&ref=Proxy des images depuis le dépôt git d'une application du registre
POST/api/apps/installInstaller depuis un chemin local
POST/api/apps/registerEnregistrer une application autogérée
POST/api/apps/registry/installInstaller depuis le registre
GET/api/apps/{name}Obtenir les détails de l'application
GET/api/apps/{name}/manifestObtenir le manifeste de l'application
GET / PUT/api/apps/{name}/configLire / écrire la configuration de l'application
POST/api/apps/{name}/updateMettre à jour l'application installée
POST/api/apps/{name}/uninstallDésinstaller l'application
POST/api/apps/{name}/enableActiver l'application
POST/api/apps/{name}/disableDésactiver l'application
POST/api/apps/{name}/devBasculer le mode développement (corps {"enabled": bool})
POST/api/apps/{name}/openLancer l'application via openCommand
GET/apps/{name}/ui/{path}Servir les fichiers du module d'interface utilisateur de l'application
*/apps/{name}/api/{path}Proxy inverse vers le serveur dorsal de l'application (signé HMAC)

Aides au manifeste et au cycle de vie

kirocrew-client fournit également deux aides pour l'automatisation de l'installation.

AppManifest

Valider et sérialiser app.json :

python
from kirocrew_client import AppManifest m = AppManifest.from_dict({"name": "my-app", "version": "1.0.0", ...}) errors = m.validate() # list[str] — empty if valid data = m.to_dict()

AppLifecycle

Gérer l'installation de l'application via l'API REST de la Gateway :

python
from kirocrew_client import CrewClient, AppLifecycle async with CrewClient() as mc: lifecycle = AppLifecycle(mc) await lifecycle.install("/path/to/my-app") await lifecycle.enable("my-app") await lifecycle.disable("my-app") await lifecycle.uninstall("my-app") apps = await lifecycle.list()

GatewayManager

Gérer le processus de la passerelle Crew (démarrage, arrêt, vérification de l'état) :

python
from kirocrew_client import GatewayManager gm = GatewayManager(port=5476) await gm.start() healthy = await gm.is_healthy() await gm.stop()

Gestion des erreurs

Toutes les erreurs de kirocrew-client sont des instances CrewError avec code, message, status, body.

CodeDéclencheurRéessayé?
AUTH_REQUIREDConnexion distante sans jetonNon
AUTH_EXPIREDRéponse 401 / 403Non (appelle on_auth_expired si défini)
VALIDATION_ERROREntrée invalideNon
NOT_FOUNDRéponse 404Non
RATE_LIMITEDRéponse 429Oui (Retry-After ou repli)
SERVER_ERRORRéponse 5xxOui (repli exponentiel)
NETWORK_ERRORDélai d'attente ou échec de connexionOui (repli exponentiel)
WS_DISCONNECTEDWebSocket non connectéNon
python
from kirocrew_client import CrewError try: await mc.send_message("slot-1", "hello") except CrewError as e: print(e.code, e.message, e.status)
Page mise à jour : 11 août 2026
Référence du manifeste
Publication et lignes directrices