AWS Kiro Cheat Sheet

Complete command reference, spec formats, and production patterns. Everything you need to master spec-driven development with Kiro.

📦

Installation & Setup

macOS (Homebrew)

Recommended for most users

brew install awslabs/tap/kiro

Linux/WSL

Using package manager

curl -fsSL https://kiro.aws/install.sh | sh

Windows

PowerShell installation

irm https://kiro.aws/install.ps1 | iex

Docker

Containerized environment

docker pull aws/kiro:latest

AWS CloudShell

Pre-installed in CloudShell

kiro --version

Verify Installation

Check version and config

kiro doctor
💡
Pro Tip: Run kiro doctor after installation to verify your environment is properly configured. It checks for common issues and suggests fixes.
🚀

Essential Commands

Quick Start Commands
# Initialize a new Kiro project
kiro init

# Create a new specification
kiro spec create user-authentication

# Generate code from spec
kiro generate

# Run with specific model
kiro generate --model claude-3-opus

# Watch mode for continuous generation
kiro watch

# List all specifications
kiro spec list

# Validate specifications
kiro spec validate

# Show diff before applying changes
kiro generate --dry-run

Command Reference Table

Command Description Common Flags
kiro init Initialize new project with .kiro/ directory --template, --force
kiro spec create Create new specification file --type, --template
kiro generate Generate code from specifications --model, --dry-run
kiro watch Watch specs and regenerate on change --debounce, --filter
kiro validate Validate all specifications --strict, --fix
kiro test Run generated tests --coverage, --watch
kiro rollback Rollback to previous generation --to, --list
kiro config Manage configuration --get, --set, --list
📝

Specification Formats

Basic Specification Structure

user-auth.kiro.yaml
apiVersion: kiro.aws/v1
kind: Specification
metadata:
  name: user-authentication
  description: User authentication and authorization system
  tags:
    - auth
    - security
    - api
spec:
  requirements:
    - id: AUTH-001
      description: Users SHALL authenticate using email and password
      priority: MUST
      acceptance:
        - Valid email format required
        - Password minimum 8 characters
        - Account lockout after 5 failed attempts
    
    - id: AUTH-002  
      description: System SHALL support OAuth2 providers
      priority: SHOULD
      providers:
        - google
        - github
        - aws-sso
  
  architecture:
    type: microservice
    components:
      - name: auth-service
        type: api
        framework: fastapi
        database: postgresql
      
      - name: token-store
        type: cache
        technology: redis
        ttl: 3600
  
  testing:
    coverage: 80
    types:
      - unit
      - integration
      - e2e

Advanced Specification Features

payment-processing.kiro.yaml
apiVersion: kiro.aws/v1
kind: Specification
metadata:
  name: payment-processing
  version: 2.0.0
  owner: platform-team
  dependencies:
    - user-authentication
    - inventory-management
spec:
  requirements:
    - id: PAY-001
      description: |
        WHEN a customer initiates payment
        THEN the system SHALL validate payment details
        AND process the transaction within 3 seconds
      type: functional
      priority: MUST
      
  constraints:
    - id: CON-001
      type: performance
      description: Response time < 3s for 99% of requests
      sla: 99.9
    
    - id: CON-002
      type: security
      description: PCI DSS Level 1 compliance required
      
  interfaces:
    - name: PaymentAPI
      type: rest
      authentication: bearer
      endpoints:
        - method: POST
          path: /payments
          description: Process new payment
          request:
            schema: PaymentRequest
          response:
            schema: PaymentResponse
            
  data_models:
    PaymentRequest:
      type: object
      required: [amount, currency, method]
      properties:
        amount:
          type: number
          minimum: 0.01
        currency:
          type: string
          enum: [USD, EUR, GBP]
        method:
          type: string
          enum: [card, bank, wallet]
🪝

Hooks System

Kiro hooks allow you to customize the generation pipeline with custom scripts and validations.

.kiro/hooks/pre-generate.sh
#!/bin/bash
# Pre-generation hook - runs before code generation

echo "Running pre-generation checks..."

# Validate environment
if [ -z "$AWS_REGION" ]; then
    echo "Error: AWS_REGION not set"
    exit 1
fi

# Check dependencies
npm audit --audit-level=high
if [ $? -ne 0 ]; then
    echo "Security vulnerabilities found"
    exit 1
fi

# Format specifications
kiro spec format --write

echo "Pre-generation checks passed ✓"
.kiro/hooks/post-generate.py
#!/usr/bin/env python3
"""Post-generation hook - runs after code generation"""

import os
import subprocess
import sys

def run_linters():
    """Run code quality checks"""
    print("Running linters...")
    
    # Python files
    subprocess.run(["black", ".", "--check"])
    subprocess.run(["ruff", "check", "."])
    
    # JavaScript/TypeScript
    subprocess.run(["eslint", ".", "--fix"])
    
def update_documentation():
    """Generate API documentation"""
    print("Updating documentation...")
    subprocess.run(["npm", "run", "docs:generate"])
    
def run_tests():
    """Run test suite"""
    print("Running tests...")
    result = subprocess.run(["npm", "test"], capture_output=True)
    if result.returncode != 0:
        print("Tests failed!")
        sys.exit(1)

if __name__ == "__main__":
    run_linters()
    update_documentation()
    run_tests()
    print("Post-generation tasks completed ✓")

Available Hooks

Hook Timing Use Cases
pre-init Before project initialization Environment setup, dependency checks
post-init After project initialization Install dependencies, configure tools
pre-generate Before code generation Validate specs, format code, security scans
post-generate After code generation Run tests, update docs, deploy
pre-validate Before spec validation Custom validation rules
on-error When generation fails Cleanup, notifications, rollback
🤖

Multi-Agent Workflows

Kiro's multi-agent system coordinates specialized AI agents for complex tasks.

multi-agent-config.yaml
apiVersion: kiro.aws/v1
kind: MultiAgentWorkflow
metadata:
  name: full-stack-feature
  description: Complete feature implementation workflow
spec:
  agents:
    - name: architect
      role: system-design
      model: claude-3-opus
      responsibilities:
        - Design system architecture
        - Define interfaces
        - Plan data models
        
    - name: backend-developer
      role: implementation
      model: gpt-4-turbo
      focus: backend
      languages: [python, go]
      
    - name: frontend-developer
      role: implementation
      model: claude-3-sonnet
      focus: frontend
      frameworks: [react, vue]
      
    - name: tester
      role: quality-assurance
      model: gpt-4
      tasks:
        - Write unit tests
        - Create integration tests
        - Generate test data
        
    - name: reviewer
      role: code-review
      model: claude-3-opus
      criteria:
        - Security best practices
        - Performance optimization
        - Code quality
        
  workflow:
    - stage: design
      agent: architect
      output: architecture-doc
      
    - stage: implement-backend
      agent: backend-developer
      input: architecture-doc
      output: backend-code
      
    - stage: implement-frontend
      agent: frontend-developer
      input: architecture-doc
      output: frontend-code
      parallel: true  # Run parallel with backend
      
    - stage: test
      agent: tester
      input: [backend-code, frontend-code]
      output: test-suite
      
    - stage: review
      agent: reviewer
      input: [backend-code, frontend-code, test-suite]
      output: review-report
      
  coordination:
    strategy: event-driven
    communication: shared-context
    conflict-resolution: architect-decides

Multi-Agent Commands

Run Workflow

Execute multi-agent workflow

kiro workflow run full-stack-feature

Watch Progress

Monitor agent activities

kiro workflow status --watch

Debug Mode

Detailed agent reasoning

kiro workflow run --debug --verbose
📋

EARS Format Guide

The Easy Approach to Requirements Syntax (EARS) provides templates for clear, unambiguous specifications.

EARS Templates
# Ubiquitous Requirements (always active)
The system SHALL provide user authentication

# Event-Driven Requirements
WHEN user clicks logout button
THEN the system SHALL terminate the session
AND redirect to login page

# Unwanted Behaviors
IF payment processing fails
THEN the system SHALL NOT charge the customer
AND SHALL rollback the transaction

# State-Driven Requirements  
WHILE the system is in maintenance mode
The system SHALL display maintenance page
AND SHALL queue incoming requests

# Optional Features
WHERE high-availability is configured
The system SHALL maintain 99.99% uptime
AND SHALL auto-failover within 30 seconds

# Complex Requirements
WHEN user uploads a file
IF file size > 100MB
THEN the system SHALL use chunked upload
AND SHALL show progress indicator
WHILE maintaining upload state
WHERE network interruption occurs
The system SHALL resume from last chunk

EARS Pattern Reference

Pattern Keywords Use Case Example
Ubiquitous SHALL Always true requirements System SHALL log all transactions
Event-Driven WHEN...THEN Triggered by events WHEN error occurs THEN notify admin
Unwanted IF...THEN...NOT Prevent behaviors IF timeout THEN SHALL NOT retry
State-Driven WHILE...THE During states WHILE loading THE spinner SHALL show
Optional WHERE...THE Conditional features WHERE premium THE limits SHALL increase

Best Practices

Specification Writing

💡
Be Specific: Use concrete examples and test cases in your specifications. The more specific you are, the better the generated code will match your intentions.
💡
Use EARS Format: Structure requirements using WHEN/THEN for clarity. This helps Kiro understand cause-and-effect relationships.
💡
Version Control: Always commit your .kiro/ directory. Specifications are source code and should be reviewed like code.

Performance Optimization

kiro.config.yaml
# Optimize for large codebases
generation:
  parallel: true
  max_workers: 4
  cache_enabled: true
  incremental: true
  
# Model selection for speed vs quality
models:
  default: claude-3-haiku  # Fast iteration
  complex: claude-3-opus   # Complex logic
  review: gpt-4-turbo     # Code review
  
# Selective generation
filters:
  include:
    - "src/**/*.py"
    - "tests/**/*.py"
  exclude:
    - "**/migrations/**"
    - "**/vendor/**"

Common Pitfalls to Avoid

⚠️
Avoid Ambiguity: Terms like "fast", "user-friendly", or "scalable" are too vague. Define specific metrics (e.g., "response time < 200ms").
⚠️
Don't Over-Specify Implementation: Focus on WHAT the system should do, not HOW. Let Kiro determine optimal implementation details.
⚠️
Test Incrementally: Don't generate entire systems at once. Build and test in small increments for better results.
🎯

Quick Reference Card

Most Used Commands
# Project Setup
kiro init && cd .kiro

# Daily Workflow  
kiro spec create feature-name
kiro generate --dry-run
kiro generate
kiro test

# Debugging
kiro doctor
kiro validate --strict
kiro generate --debug --verbose

# Multi-Agent
kiro workflow list
kiro workflow run feature --watch

# Configuration
kiro config set model claude-3-opus
kiro config set parallel true

# Rollback
kiro history
kiro rollback --to HEAD~1