AWS Builder Center
Top 8 Tips When Working With Kiro

Top 8 Tips When Working With Kiro

This blog post describes several tips on working with Kiro, so you can be more productive.

Senior Developer Advocate
 Kiro  is the new AI IDE that can help you deliver code quickly. It has some nice features including Agent Steering, Agentic Chat, Hooks and Spec-driven Development. All these fit together to make it easier for you to be more productive as a developer.
While Kiro in itself is a powerful feature rich IDE, with Visual Studio Code as its foundation, it’s not always obvious how to get the most out of the agentic features. Since launch an amazing community of tens of thousands of developers have tried out Kiro and a several patterns and tips have emerged. Let’s take a look at a few I recommend you use while working with Kiro.
If you haven’t tried Kiro yet, please sign-up for our waitlist at  Kiro.dev .

Model Context Protocol (MCP)

One of our most popular features is our MCP support. MCP, or Model Context Protocol, is an open standard for AI apps, like Kiro, to connect to tools and data. I recommend you setup some MCP tools inside Kiro as you start using it. As of today we only support the MCP  stdio  transport, however look for more future updates on this soon.

Setup Your Favorite MCP Servers

There are thousands of MCP servers you can choose from. I’ve found these three to be very useful when you’re first getting started with Kiro. All these MCP servers will help you more easily find information that isn’t normally in Kiro’s context.
  •  Context7  - Up-to-date documentation for LLMs and AI code editors.
If you’re working on AWS projects another two great additions are:
Try some of these servers and see which works the best for you.
Here are some other tips you can use when working with MCP and Kiro.

Combine MCP Server Execution

A common pattern I like to do is to combine some of these MCP servers together. For example, I might ask Kiro to search using the AWS Documentation MCP server, then use that output for the AWS API MCP server to run the commands.
Search the AWS Documentation MCP server on how to add a new file to S3. Then use the AWS API to create a upload xyz.txt to the abc bucket.
I also like using multiple servers for more complex tasks where I’m doing heavy research on a project. For example, I might use Context7 to find out the URL for a tool I’m using, then use the Brave Search MCP server to look up the site and get more information.

Steering and Context

Steering gives Kiro persistent knowledge about your project through markdown files in  .kiro/steering/ . Instead of explaining your conventions in every chat, steering files ensure Kiro consistently follows your established patterns, libraries, and standards.
Whenever you chat with Kiro, it will include the steering files into the context. This will help to produce a more reliable result. In the following tips we’ll look at different ways you can configure and adjust how steering works, and what will be included into the context.

Generate New Steering Files for Project

When working with a new project inside Kiro it’s advisable to always generate  steering files . You can do this by clicking on the ghost icon on the left hand side and then clicking on the  Generate Steering Docs  in  Agent Steering .
Kiro Button

This will create three different files,  structure.md  ,  product.md  and finally  tech . These files will then be added to the context whenever you chat with Kiro. It’s worth mentioning that these files do not change and you’ll need to manually update them, when needed. There is an option at the top to  Refine . This will re-read your steering file and optimize it further for your project. You can also ask at any time in the chat to update your steering files based on new updates.

Save MCP Output to Steering

When dealing with documentation MCP servers, I often ask Kiro to save the output to the steering files. That way I can easily refer to it in the future, and Kiro will be aware of it. For example, I might have it look up the latest documentation on Tailwind CSS 4 using Context7, and have it save it to a steering file all in one prompt.
Using the Context7 MCP server please find the latest installation instructions for Tailwind CSS 4 and save it to a steering file.
Keep in mind to always be explicit with your prompts. Be sure to ask it to use the MCP server and save the output to a steering file. By saving the information into the steering files, you no longer have to continually ask Kiro to check the MCP server.
I’ve found that large language models (LLMs) often are a version or two behind the latest releases of libraries. This will guarantee that Kiro is up to date.
While this works for most cases, if you have documentation that goes stale quickly you may want to use a different pattern as discussed in the next section.

Steering Files + MCP

If you’re working with documentation that is frequently updated you can also reference MCP servers directly in your steering files.
Plain text
# MathJSON DSL Overview
This project uses MathJSON, a domain-specific language for mathematical expressions. MathJSON provides a structured way to represent and manipulate mathematical formulas using JSON syntax.

## Key Documentation References

The complete MathJSON documentation is available in the brianjbeach/mathjson repository. Use the GitHub MCP server to access these files:
- **Main Documentation**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="README.md"
- **Function Reference**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="function_reference.md"
- **Syntax Reference**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="syntax_reference.md"
- **Examples**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="examples.md"
- **Environment Variables**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="ENVIRONMENT_VARIABLES.md"
- **Troubleshooting**: Use `mcp_github_get_file_contents` with owner="brianjbeach",

In this example it will use the Github MCP Server to find the latest information on the fictious  MathJSON  domain-specific language (Thank you  Brian Beach  for this example). This way, the steering file is always kept up-to-date without further manual updates. Beware it will take longer for Kiro to contact the MCP server on each request, versus a static steering file.

Use File Matching Patterns and Inclusions

Within steering documents you have the ability to only include them into the context only when certain conditions are met.
You can add a YAML front matter to the top of the document. Then add  inclusion  and  fileMatchPattern . This way you can define your steering files to only be added into context when editing certain types of files.
For example you can have the steering file only be included for  *.tsx  files in the components folder.
Plain text
---
inclusion: fileMatch
fileMatchPattern: "components/**/*.tsx"
---

Furthermore, you can also set the  inclusion  to manual.
Plain text
---
inclusion: manual
---

By doing so the steering file will only be included on-deman by referencing them with #steering-file-name in your chat message. This will give you a more precise control over when specialized context is needed.

Specs

Specs or specifications are structured artifacts that formalize the development process for complex features in your application. This is good for taking high-level ideas and creating a detailed requirements, specifications and task list.

Updating Specs To Keep Them Up to Date

One problem I see often with specs are keeping them up to date. After a feature is completed you may have future updates. Depending on the feature you may want to create a completely new spec. Other times you may want to update the current spec.
To update the current spec you can look for the  design.md  or  requirements.md  file in the  .kiro/specs  folder. You can then change the specs based on the new requirements. Afterwords click  Update tasks inside the task list so it updates it to see the new requirements.
Kiro Spec

At any time you can update the design and requirements using a prompt or updating it manually inside the markdown files and clicking  Update tasks 

Use Chat To Guide Task List

After the requirements and design docs are completed you’re left with a Task list. You can interact with this task list a couple of ways. You can either click the  Start task  button and have it complete each task.
Kiro task list

However, a better way of handling this is to use the chat and be very specific what you need. For example you could type:
Please complete tasks 1-4, stop at 4.
This will then complete tasks one-by-one until it hits task four then stops. This is a good pattern because you want to double check what Kiro is doing at each step. You also want to be able to easily rollback if needed, or do some additional refactoring.
In addition, before you start the spec process you’ll want to create a new branch in your version control system. That way you can track the changes and revert back everything quickly if needed. You can tell Kiro to revert the changes too, but I find this to be easier. When working with AI coding agents in general it’s always good to commit early, commit often and merge quickly. And don’t forget to refactor.

Conclusion

I hope these tips help you! I’d love to hear what tips you have when working with Kiro and other coding agents. Leave a comment below, and check out our  best practices  blog as well!
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article