Kiro を使ってみる

Kiro について
Kiro helps you do your best work by bringing structure to AI coding with spec-driven development. (サイト本文より引用)
仕様駆動開発が出来る AI コーディング用のエディタ。 まず要求定義を行い、それをもとに設計を行い、タスクに落とし込んでから開発を行うのが特徴。2025/7/23 時点でまだプレビュー版しかない。使えるモデルは Claude Sonnet 3.7 か Sonnet 4.0。

自分の環境が Windows しかないので、WSL 前提で書く。
WSL 環境でのインストールについて
他の人の記事を見ているとパスを通すために色々しているが、自分の環境ではインストール時点で既に WSL から kiro
で起動できたので割愛
AWSのAIコーディングエージェントKiroをWSL2から起動する設定
一方で、デフォルトのターミナルは Powershell になっており、WSL 側のターミナルを使用するためにはちょっとだけ設定が必要。やり方は簡単で
- ターミナルを開く(上のメニューで「ターミナル → 新しいターミナル」)
- ターミナルの右上の + の横のプルダウンから「既定のプロファイルの選択」を選択
- WSL のターミナルを選択
これで、デフォルトが WSL のターミナルになり、Kiro が使用するターミナルも WSL になって WSL 上で作業が出来るようになる。
拡張機能について
VSCode の全ての拡張機能が使える訳ではなさそう。
- Japanese Language Pack for Visual Studio Code はストアにあった
- VSCode Speech はストアになかった
VSCode の fork みたいな感じなので、本物のマケプレとの違いなんだろうと思いつつ、詳しくないのであまり有無の基準が分かっていない。
とりあえず、全部はないということを把握しておくと良い。
起動
起動すると最初は以下のような画面が出る。
特にこの左側の幽霊みたいなアイコンが特徴で、ここから Kiro の機能(後述)が色々使える。
真ん中には Vibe
と Spec
が並んでいる。Vibe は Vibe coding なので新しいことはあまりない。特徴は Spec の方で、これを選択してプロンプトを投げると仕様設計から始めてくれる(こちらについては別で書く)
左側には SPECS
、AGENT HOOKS
、AGENT STEERING
、MCP SERVERS
が並んでいる。SPECS
には Kiro で作成した仕様が並んでいく。
AGENT HOOKS
は何かのフックで処理したい内容が並ぶ。後で詳しく記述するが、自然言語で「どのタイミングでどういう処理をするか」を定義できるのが特徴。例えば「コードを保存したら README を更新してほしい」って書くと、そのフックを Kiro 側で解釈していいタイミングでやってくれる。
AGENT STEERING
はプロジェクトの背景知識のリストで、自分で書いて配置してもいいし、今あるコードをベースに生成させることも出来る。例えば対象としているユーザー、プロジェクトの目的を書いておくと、それを参考にして実装をしてくれる(らしい)Devin の Knowledge のようなものと思っておけば良さそうか?

Spec
やりたいことを伝えると、「要件定義」「デザイン設計」「タスク定義」の順にブレークダウンして仕様を設計してくれる。
試しに(あるあるだが)「TODO アプリを作りたい」と伝えてみた結果を以下に示す。
要件定義
こんな感じで requirents.md
に要件が吐き出される。この時点で何か想定を違う部分があれば、自分で書き直すことも出来るし、チャット欄でメッセージを打って書き直してもらうことも出来る。
あと地味にチャット欄に "Move to design phase" ボタンがあるのが嬉しい(押すだけでデザイン設計に移れて楽。こういうのって地味だけど、ユーザーの動作を減らすことで UX を良くするのって大事だなあって改めて感じた)
デザイン設計
ここでは使う技術やアーキテクチャ、データフローなど、具体的な実装に向けた設計をして design.md
に出してくれる。ここでも、デザインがあまり良くなければ改善してもらえるし、良ければタスク設計に移れる。
ちなみにここでもチャット欄に "move to implementation phase" ボタンがあります。
タスク定義
ここではデザインに落とし込んだデザインを元に、要求定義を満たすための実装プランを立てて tasks.md
に出してくれる。以下の画像を見てもらうと分かるように、各タスクに関して関連する要件が記述されており、要件定義を満たすようにタスクプランが立てられていることが分かる。
また、各タスクの上に "⚡ Start task" と書いてあるのが見えると思う。これを押すと、そのタスクを行ってくれる。一つ一つ実装を確認しながらタスクを進められるので、これによって実装を把握しながら実装を進めてもらうことが出来る。
ただし、何点か注意が必要。"⚡ Start task" を押すと新しくチャットが立ち上がって実装が始まる。つまり、それまで別のチャットで話していたコンテキストは使用されない。もちろん、(恐らく Kiro 自体が仕様設計を読むように設定されているので)仕様設計のドキュメントなどは確認するが、他のチャットで話していた内容は分からない。

Hooks
左の AGENT HOOKS
を押すと以下の画面が出る。ここに書いてあるように、自然言語でフックのタイミングや内容を記述できる。
実際に「Git commit を行ったタイミングで Steering のドキュメントを更新してほしい」と記述してみたところ、以下の設定となった。
また、.kiro/hooks
にこんな感じでフックの設定が出力される。
{
"enabled": true,
"name": "Git Commit Steering Document Updater",
"description": "Automatically updates or creates a steering document whenever a git commit is made to track project progress and changes",
"version": "1",
"when": {
"type": "fileEdited",
"patterns": [
".git/COMMIT_EDITMSG"
]
},
"then": {
"type": "askAgent",
"prompt": "A git commit has been made. Please update or create a steering document that reflects the latest changes in the project. If a steering document already exists (like STEERING.md, docs/steering.md, or similar), update it with information about this commit. If no steering document exists, create one. The document should include:\n\n1. A summary of the recent commit\n2. How it relates to the overall project goals\n3. Any next steps or considerations for future development\n\nPlease maintain the document's existing structure if it exists, or create a well-organized structure if creating a new one."
}
}
ただ、実際に git commit
してみたがフックが起動したかは分からなかった(起動したけど何もせずに終了したのか、そもそも起動しなかったのかの判別が出来なかった)こちらに関して継続して調査する。

Steering Document
プロジェクト自体のドキュメントを作成してくれる。とりあえずボタンをおすと以下の画像のようなドキュメントが生成された。
実際のファイルは .kiro/steering
配下にある。感覚としては Deepwiki に近い。ディレクトリ構造や技術スタック、機能などがまとめられている。追加の修正などの際にこのドキュメントを参照することで、人間も AI もシステムの背景を把握して実装ができる。

その他
The model you've selected is experiencing a high volume of traffic. Try changing the model and re-running your prompt.
こんな感じで、ちょいちょいモデルを変えてくれという表示が出る。ちなみにこれを選択すると最初からやり直しになる(チャットにメッセージを投げた場合は投げた時点から、"start task" を押している場合は押したタイミングから)
結構実装が進んだところでこれが出てくることがあり、まあまあ萎える。し、(自分の環境だけかもしれないが)まあまあの頻度で出てくる。ディレクトリの中を読んだりするので実装が終わった部分に関しては以前終わったものを使う想定でスキップしてくれることもありはするが…
ちなみに "start task" で実行するとなぜか tasks.md
の対応する行の下に改行が挿入されていくのか、気付いたらすごい空行だらけになっている。自分は気付くと 30 行くらい間が空いていてさすがに笑ってしまった。
回数
明示的な回数がどこに書いているのか分かっていないが、一日で投げられるタスクの回数に上限がある。プレビュー版のため、回数を増やすプランは現在存在せず、回避するためには起動時に登録するアカウントを変える以外の方法はない。
オプトアウトについて
Kiro はサービス品質向上のためにログを記録している。デフォルトではログを送信するようになっているので、送信したくない場合は自分で設定が必要(Opt out of data sharing in the IDE)