Hands on with Kiro, the AWS preview of an agentic AI IDE driven by specifications

Hands on with Kiro, the AWS preview of an agentic AI IDE driven by specifications

AWS has previewed Kiro, a fork of Code OSS (the open-source part of Visual Studio Code) which promotes a AI-driven developer workflow based on specifications including requirements documents.

Kiro is a standalone IDE and although it is an AWS product, it is presented as “slightly separated from the rest of core AWS,” according to Nathan Peck, AWS developer advocate for AI, commenting in an extensive discussion of the preview. Kiro can be used without an AWS account, by logging into either Google or GitHub. Why the separation? Peck said that the goal is for Kiro to have a “unique identity outside AWS” in order to appeal to developers using other platforms. 

Kiro has its own site and according to the About page is built and operated by a small, opinionated team within AWS. It is free during preview, following which there will be a free tier with 50 agentic interactions per month, Pro accounts for $19.00 per user/month with 1,000 interactions, and Pro+ accounts for $39.00 with 3,000 interactions. Additional interactions will cost $0.04 each. A single interaction can be a lengthy response to a detailed prompt that “potentially runs for 3-5 minutes of Kiro iterating away on writing code,” said Peck.

Kiro collects both telemetry data and content by default for “service improvement” in the free version, but this can be disabled in settings.

Let me Vibe that for you: Kiro ready to go

According to the docs, the key differentiation for Kiro is the use of specifications (specs). Specs are defined in three markdown files: requirements.md, design.md, and tasks.md. The requirements file uses EARS (Easy Approach to Requirements Syntax) – a mechanism for constraining textual requirements developed by Andrew Mavin and others at Rolls Royce. The design document describes the tech stack and architecture of the application, and the tasks list shows a series of steps needed to implement the design, right through to deployment.

The docs recommend having multiple specs for a project. For example, in an ecommerce application there might be one set for user authentication, another for the product catalog, another for the shopping cart, and so on. This separation will make the project more manageable and collaboration easier.

Along with the spec files, Kiro supports “steering” files, used to set standards for code generation including the technology stack, project structure, naming conventions and more. MCP servers are also supported, with JSON configuration files.

Another important feature is agent hooks. These are agentic actions triggered by file events (create, save, delete) or invoked manually, for example for code review. Hooks are generated by describing what they should do, such as to generate tests, or to examine files for security issues.

We put Kiro to the test by describing an application to manage a rota of volunteers running game sessions, without stating any particular technology. We used the default LLM which is Claude Sonnet 4.0. The output from a few minutes work included specification documents for a React frontend, Node.js/Express backend, and PostgreSQL database. Further details included Material-UI components, React Router for navigation, Prisma ORM for database code, Jest unit testing, all code in TypeScript, and more. 

Our Kiro-generated application under development, with 2 of 20 tasks completed

Kiro generated 20 tasks, each of which had several steps. The first task, setting up the initial project, completed successfully. The second, initializing the database, was more of a struggle, as the AI struggled with how to connect to a suitable PostgreSQL instance and hit an error attempting to run the prisma dev server. Rather than fix the error, Kiro generated a readme on database setup.

Some manual steps will be needed to progress; but we were impressed with how much the AI achieved, work which would have taken several days without its assistance. The output is also, so far, not AWS-specific, and task 19, “set up deployment configuration”, sets up Docker containers which could run in a variety of environments.

“Current LLMs still need a human SDE [software development engineer] in the loop,” said Peck, making the point that this type of tool is not intended to automate everything but can save a huge amount of time.

According to AWS CEO Matt Garman, Kiro is “an agentic IDE that gets developers from prototype to production with the structure that production-ready code requires.” The existence of the specification documents means that both the AI and human developers have a reference to guide development.

This tidiness may fail as a project evolves though. “Currently specifications are mostly static documents,” said Peck, implying that the spec can easily get out of sync with the actual state of the code as changes are made. 

Kiro does not only generate applications from scratch, but also works in a similar manner to other chat-based AI coding assistants for existing projects. Vibe mode is used for quick assistance with coding questions. There is also a terminal integration where Kiro responds to general questions and instructions.

Security is an issue and Kiro installs by default in Autopilot mode, in which the agent is free to make code changes. If turned off, Kiro runs in Supervised mode with prompts for approval before any change. Even in Autopilot mode, there are user approval prompts for critical actions such as installing npm modules or running commands with npx, as we saw in our brief hands on. Commands can be added to an allow list for automatic approval.

Kiro supports a variety of programming languages, but the documentation specifically references TypeScript/JavaScript, Python, or Java; and we have the impression that it will work best with these. There is a particular snag for .NET developers, in that Kiro uses the Open VSX registry for extensions which excludes the proprietary Microsoft C# support available in VS Code. Some developers would prefer Kiro to be a CLI that was IDE-independent.

Peck said that there is “room for a CLI version as well” but that IDEs have an advantage over CLIs because more tools are available.

Although it arrived in a crowded market, Kiro does feel distinctive and its spec-driven approach will help to mitigate the sometimes-disorderly outcomes from AI-driven coding – though developers may be wary of the default Autopilot mode.