When Amazon’s CEO of AWS, Matt Garman, stood on stage at re
Kiro (kiro.dev) is Amazon’s answer to a question that every AI coding tool is grappling with: how do you give an AI agent enough autonomy to be useful without losing control?
The answer, Amazon bets, is specs.
What Is Kiro?
Kiro is an agentic development environment — not just an IDE with AI copilot features, but a complete rethinking of how developers collaborate with AI agents across the entire software lifecycle. It’s built and operated by a small, opinionated team within AWS.
Unlike most AI coding tools that rush from prompt to code, Kiro enforces a structured pipeline:
Prompt → Specs → Task Plan → Implementation → Tests → DeploymentHuman reviews and approves at every stage. The agent doesn’t guess what you want — it asks for specifications first.
Kiro comes in three forms:
- Kiro IDE — a VS Code fork (Code OSS) with deep agent integration
- Kiro CLI — command-line AI agent for terminal-first workflows
- Kiro Autonomous Agent (Web) — async, cross-repo agent that works independently for hours or days
The Three Modes of Kiro
| Mode | Use Case | Interaction |
|---|---|---|
| Vibe Mode | Quick edits, chat | Real-time, conversational |
| Spec Mode | Feature implementation | Structured, multi-step |
| Autonomous | Cross-repo, long-running | Async, hands-off |
Why Spec-Driven Development Matters
Here’s the core insight that Kiro’s team had: AI coding tools are incredibly good at generating code, but they’re terrible at generating the right code.
When you say “add a login page” to most AI tools, they’ll generate a login page — but they probably won’t handle:
- Rate limiting on failed attempts
- Session token refresh logic
- Concurrent login race conditions
- Accessible error messages for screen readers
- Proper CSRF protection
- Rate-limited password reset flows
Kiro’s spec-driven approach forces the agent to think before it codes. Give it the same prompt, and it first generates structured specifications:
Feature: User Authentication
User Stories: 1. As a user, I want to log in with email/password 2. As a user, I want to reset my forgotten password 3. As a user, I want to stay logged in across sessions
Acceptance Criteria: - Login form validates email format - Password must be 8+ characters - Failed login shows specific error message - Session persists for 30 days with "remember me" - Password reset sends email within 30 seconds
Edge Cases: - Handle concurrent login attempts - Rate-limit password reset requests - Handle expired reset tokens gracefullyYou review, adjust, and approve before any code is written. The agent then creates a dependency-ordered task plan:
Task 1: Create User model and migration (no dependencies)Task 2: Build authentication service (depends on Task 1)Task 3: Create login API endpoint (depends on Task 2)Task 4: Build login form component (depends on Task 3)Task 5: Add session management (depends on Task 2)Task 6: Write unit tests (depends on Tasks 2-5)Task 7: Write integration tests (depends on Tasks 3-5)Each task includes implementation details, test requirements, and success criteria. The agent works through them sequentially, and you can approve or reject at each step.
”Vibe Coding” vs “Spec-Driven Development”
The contrast is deliberate. Andrej Karpathy’s term “vibe coding” captured the zeitgeist — prompt, generate, iterate, repeat. It’s fast, fun, and frequently wrong in subtle ways.
Kiro’s marketing language directly contrasts with this:
“We see agents as the most powerful tool yet developed for building software… Agents need more structured input and contextual information than a natural language prompt to build the right thing.”
In other words: vibe is fine for prototypes. Specs are for production.
Steering Files: Teach Your Agent How You Code
Kiro uses steering files — equivalent to Claude Code’s CLAUDE.md or Codex CLI’s AGENTS.md — to tell the AI how your project works:
## Code Standards- Use TypeScript strict mode- Follow the repository's existing naming conventions- All new functions must have JSDoc comments
## Architecture- Backend: Express.js with TypeORM- Frontend: React with TailwindCSS- State management: Zustand
## Testing- Unit tests: Vitest- E2E: Playwright- Minimum 80% coverage for new code
## Security- Never commit .env files- Use parameterized queries (no string concatenation)- Sanitize all user inputYou can have:
- Global steering (
~/.kiro/steering.md) — applies to all projects - Project steering (
.kiro/steering.md) — project-specific, takes priority
Steering files are loaded at the start of every session, so your agent never forgets how you like things done.
Agent Hooks: Automation Beyond Chat
Agent hooks are event-driven automations that run at specific triggers:
| Trigger | Typical Hook | Purpose |
|---|---|---|
| File save | Regenerate tests | Keep tests in sync with changes |
| API change | Update documentation | Docs never go stale |
| Commit | Security scan | Catch vulnerabilities before shipping |
| Build | Run linting | Enforce code standards |
Configuration example:
hooks: - trigger: on_save pattern: "src/components/**/*.tsx" action: "regenerate unit tests for this component"
- trigger: on_commit action: "scan staged files for hardcoded secrets"
- trigger: on_api_change pattern: "src/api/**/*.ts" action: "update API documentation in docs/"These aren’t scripts — they’re natural language instructions that the agent interprets and executes. You say what you want, and the agent figures out how to do it.
Powers: Kiro’s Plugin Ecosystem
Kiro’s Powers are the equivalent of plugins, but powered by MCP (Model Context Protocol). Instead of building every integration themselves, Kiro leverages the MCP ecosystem and adds a catalog of 100+ pre-configured integrations.
Some notable Powers:
| Power | What It Does |
|---|---|
| Figma | Design-to-code, component mapping, design system rules |
| Postman | API testing, collection management |
| Stripe | Payment integration, subscriptions, billing |
| Datadog | Production debugging, log/metric/APM queries |
| Snyk | Security scanning and remediation |
| Neon | Serverless Postgres with branching |
| Supabase | Full-stack backend (auth, DB, storage) |
| SonarQube | Code quality, technical debt analysis |
| Firebase | Auth, Firestore, Cloud Functions, hosting |
Each Power is essentially an MCP server + Kiro-specific configuration that makes it work seamlessly with specs and hooks.
MCP Native Support
Kiro has native MCP (Model Context Protocol) support built in. You can connect up to 5 MCP servers simultaneously, giving the agent access to 100+ tool definitions before writing a single line of code.
This is significant because Kiro can use MCP tools during spec generation and task execution — not just during coding. For example, when planning a Stripe integration, it can query the Stripe MCP server for API details and incorporate those into the spec.
The Autonomous Agent: Coding at Scale
The most ambitious part of Kiro is the Autonomous Agent (Web interface, kiro.dev/agent). This is where Kiro stops being an IDE assistant and becomes a true autonomous worker.
How It Works
You describe a task once. Kiro:
- Spins up an isolated sandbox that mirrors your dev environment
- Clones your repositories and analyzes the codebase
- Breaks down work into requirements and acceptance criteria
- Coordinates specialized sub-agents:
- Research & Planning agent — figures out the approach
- Code agent — implements changes
- Verification agent — checks quality before moving forward
- Opens pull requests with detailed explanations of changes
The Real Superpower: Cross-Repo Work
This is where Kiro destroys the competition. Consider this scenario:
You need to upgrade a critical library used across 15 microservices.
Without Kiro: Open each repo, update dependencies, fix breaking changes, run tests, create PR. Repeat 15 times. Days of work.
With other AI assistants: Still need to open each repo separately. The agent forgets everything when you close the session.
With Kiro Autonomous Agent: Describe it once. It identifies all affected repos, analyzes how each service uses the library, updates code following your patterns, runs full test suites, and opens 15 tested pull requests — while you work on something else.
The agent is not session-based. It maintains context across tasks. When you leave feedback on one PR about error handling, it remembers and applies that pattern to subsequent changes.
Sandbox and Security
Each autonomous task runs in its own isolated sandbox with configurable network access:
| Network Level | Access |
|---|---|
| Integration only | GitHub proxy only |
| Common dependencies | Package registries (npm, PyPI, Maven) |
| Open internet | Full access |
| Custom | Domain allowlist |
You can also configure environment variables and secrets (encrypted, never exposed in logs or PRs).
The agent auto-detects DevFiles or Dockerfiles to configure its environment, or analyzes your project structure if neither is found.
Sub-Agent Architecture
The autonomous agent uses a multi-agent approach internally:
Task Input ↓Research & Planning Agent ──→ (Web search, codebase analysis) ↓Code Agent ──→ (Implementation, multi-file changes) ↓Verification Agent ──→ (Tests, linting, security scan) ↓Pull Request ──→ (Detailed explanation, implementation decisions)Each sub-agent has a specific role, and they coordinate via the task spec. This is fundamentally different from a single LLM call — it’s a multi-agent system designed for reliability.
Pricing
Kiro uses a credit-based system. Credits are consumed fractionally based on task complexity (0.01 credit minimum increment).
| Plan | Price | Credits | Overage |
|---|---|---|---|
| Free | $0 | 50/month (500 bonus on signup) | — |
| Pro | $20/month | 1,000 | $0.04/credit |
| Pro+ | $40/month | 2,000 | $0.04/credit |
| Power | $200/month | 10,000 | $0.04/credit |
Model impact: Auto mode (default) costs 1x credits. Sonnet 4 costs 1.3x credits. Auto uses a mix of models optimized for cost and quality.
The autonomous agent preview is free during preview for Pro, Pro+, and Power subscribers (with weekly limits). Teams can join a waitlist.
Architecture: Built on VS Code
Kiro IDE is built on Code OSS (the open-source foundation of VS Code), which means:
- Full compatibility with most VS Code extensions
- Familiar keybindings, themes, and workflows
- Built-in terminal, Git integration, and debugging
- Native MCP support
You can think of Kiro as: VS Code + AI agent layer + spec engine + MCP infrastructure + autonomous runtime.
Comparison: Kiro vs Other AI Coding Tools
| Feature | Kiro | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|---|
| Spec-driven dev | ✅ Native | ❌ | ❌ | ❌ |
| Agent hooks | ✅ Declarative | ✅ Script-based | ❌ | ❌ |
| Autonomous mode | ✅ Async, cross-repo | ❌ Session-based | ❌ | ❌ |
| Sub-agents | ✅ Multi-agent | ❌ Single | ❌ | ❌ |
| Steering files | ✅ Global + project | ✅ CLAUDE.md | ❌ .cursorrules | ❌ |
| MCP native | ✅ Full | ✅ Full | ✅ Partial | ✅ Partial |
| Cross-repo tasks | ✅ Native | ❌ | ❌ | ❌ |
| Powers ecosystem | ✅ 100+ | ❌ MCP only | ❌ Extensions | ❌ |
| Price (entry) | Free / $20 | Free / $20 | Free / $20 | $10 (Copilot) |
When to Choose Kiro
Kiro shines when:
- You need structured, auditable AI-assisted development
- Your work spans multiple repositories
- You want long-running autonomous tasks (hours to days)
- You need security controls over what the agent can access
- Your team wants consistent coding standards enforced by AI
Kiro may not be the right choice when:
- You prefer fast, iterative “vibe” coding for prototypes
- You’re on a budget — $200/month for Power is steep
- You want to stay in VS Code proper (not a fork)
- You need a tool that runs offline
The Autonomous Agent Controversy
In December 2025, Kiro made headlines for an incident where it allegedly deleted and recreated a production environment, causing a 13-hour AWS Cost Explorer outage in a China region. Amazon officially denied Kiro was solely responsible.
Regardless of who was at fault, the incident underscores a critical truth: autonomous AI agents with production access are a sharp tool. The guardrails matter as much as the capabilities.
Kiro’s team responded by strengthening sandbox isolation, adding more granular network controls, and making spec approval checkpoints mandatory for production-facing tasks.
We’ll cover the security lessons in depth on Day 5 of this series.
What’s Next in This Series
This is Day 0 of a 6-part series on Kiro. Here’s what’s coming:
- Day 1 → Installation: Kiro IDE, CLI, and first configuration
- Day 2 → Spec-driven development workflow in practice
- Day 3 → Agent Hooks, Powers, and MCP integrations
- Day 4 → The Autonomous Agent: cross-repo async coding
- Day 5 → Security, best practices, and the AWS incident lessons
Kiro represents a genuinely different philosophy for AI-assisted development. It’s not trying to be faster at generating code — it’s trying to be more disciplined about what code gets written.
For developers who have been frustrated by AI tools that produce plausible-looking-but-wrong code, Kiro’s spec-first approach is worth a serious look. For teams building production systems, it might be exactly the engineering rigor you’ve been waiting for.
Series: Practical Kiro — AWS’s Agentic Development Environment. Day 0: Overview. Day 1: Installation → coming next.
Advertisement
Advertisement