DEV Community

Cover image for Kiro V1.0.0 is out: migrate your hooks!

Kiro V1.0.0 is out: migrate your hooks!

Kiro 1.0 is now publicly available and ready to use!

Fortunately, KiroGraph, my code intelligence graph for Kiro, relies heavily on Kiro's lifecycle components, making it a great real-world test case to verify whether all the features we loved during the beta are still working as expected.

GitHub logo davide-desio-eleva / kirograph

Semantic code knowledge graph for Kiro: fewer tool calls, instant symbol lookups, 100% local.

KiroGraph terminal

KiroGraph

KiroGraph terminal

Semantic code knowledge graph for Kiro: fewer tool calls, instant symbol lookups, 100% local.

Inspired by CodeGraph by colbymchenry for Claude Code, rebuilt natively for Kiro's MCP and hooks system.

Full support is for Kiro only. Experimental integrations for 34 other MCP-capable tools (Cursor, Copilot, Claude Code, Windsurf, Cline, and more) are available with auto-detection. See Integrations for the full list.

Why KiroGraph?

When you ask Kiro to work on a complex task, it explores your codebase using file reads, grep, and glob searches. Every one of those is a tool call, and tool calls consume context and slow things down.

KiroGraph gives Kiro a semantic knowledge graph that's pre-indexed and always up to date. Instead of scanning files to understand your code, Kiro queries the graph instantly: symbol relationships, call graphs, type hierarchies, impact radius, all in a single MCP tool call.

The result is fewer tool…

Good News

Let's start with what didn't change:

  • Steering and Skills (using the SKILL.md format) continue to work exactly as before, with the same structure and frontmatter.
  • All MCP servers, both project-level and global, are automatically connected and immediately available after the upgrade.

So far, so good.

What's changed

Now for the interesting part.

Many of us have learned to love Kiro Hooks because they allow us to customize development workflows and lifecycle events.

For example, KiroGraph uses a hook to automatically synchronize the code graph at agent stop whenever files are modified.

If you open an existing project that still uses legacy hooks, you'll immediately notice that they're marked as V1 and inactive.

At first glance, this looks alarming.

Kiro migration pop up

The good news is that Kiro can actually help you migrate your hooks.

If you restart Kiro you'll probably see this migration popup which will assist you in a complete migration

Kiro will confirm the migration.

Be aware:

  • you'll still have older version, delete them
  • new version won't be active, you should activate them one by one

If the popup doesn't appear

This has happened to me in multiple projects, and I’ve also seen it affect other users working with KiroGraph or older hook formats: the expected popup doesn’t appear.

An IDE restart might be sufficient, but in some cases a fresh installation can help as well.

However, if you’re using a tool like KiroGraph or a CLI that generates hooks in the older format, you won’t see this popup.

Don’t worry: although the hook schema has changed and older hooks are no longer active, Kiro still understands both formats and can automatically generate the updated configuration for you.

In my case, the entire migration was completed with a single prompt.

The Prompt

Analyze the `.kiro/hooks` directory and identify all existing Kiro Hooks. These hooks use V1 format and are no longer active in the latest Kiro IDE V1.0.0.

Your tasks is:

1. Determine the differences between the legacy V1 hook format and the current hook format supported by Kiro IDE.
2. Migrate all existing V1 hooks to the new format.
3. Verify that the generated hooks are recognized and executed by the current Kiro IDE.

Enter fullscreen mode Exit fullscreen mode

Kiro's Response

Now let me find where these hooks are. 
Now I have full understanding of the v1 format. 
Now I need to map the v1 triggers/actions to v2 format:

| v1 `when.type` | v2 `trigger` |
|---|---|
| `agentStop` | `Stop` |
| `preToolUse` | `PreToolUse` |

| v1 `then.type` | v2 `action.type` |
|---|---|
| `runCommand` | `command` |
| `askAgent` | `agent` |

| v1 `when.toolTypes: ["shell"]` | v2 `matcher` regex for shell tools |

Now write the new v2 hook files. 
All done. 
Here's what changed:

**`.kiro/hooks/`** — Replaced all 6 `.kiro.hook` files with their `.json` v2 equivalents. 

Enter fullscreen mode Exit fullscreen mode

After analyzing the existing hooks, Kiro identified the required mappings:

Legacy Format New Format
agentStop Stop
preToolUse PreToolUse
runCommand command
askAgent agent

It then:

  • Migrated all existing .kiro.hook files to the new JSON format.
  • Verified that all migrated hooks were correctly recognized by Kiro IDE.

Before: old hooks format output

{
  "name": "KiroGraph Sync on Agent Stop",
  "version": "1.0.0",
  "description": "Sync the KiroGraph index when the agent stops, picking up any file edits, creates, or deletes from the session.",
  "when": {
    "type": "agentStop"
  },
  "then": {
    "type": "runCommand",
    "command": "kirograph sync --quiet 2>&1 > /dev/null"
  }
}

Enter fullscreen mode Exit fullscreen mode

After: new hooks format output

{
  "version": "v1",
  "hooks": [
    {
      "name": "KiroGraph Sync on Agent Stop",
      "trigger": "Stop",
      "action": {
        "type": "command",
        "command": "kirograph sync --quiet 2>&1 > /dev/null"
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

KiroGraph

Maintainers of tools like KiroGraph, which automatically configure hooks for you, will likely update their installers and scripts.

KiroGraph is ready for Kiro v1.0.0 and ensures backward compatibility for users still on the beta version.

Just update it to v0.26.0

Final Thoughts

If you've been holding off on upgrading because you're worried about breaking your custom workflows, don't panic.

Steering, Skills, and MCP integrations continue to work seamlessly, and even hook migrations can be largely automated by Kiro itself.

Sometimes the best tool to fix a breaking change is the tool that introduced it.

🙋 Who am I

I'm D. De Sio and I work as a Head of Software Engineering in Eleva.
As of June 2026, I’m an AWS Certified Solution Architect Professional and AWS Certified DevOps Engineer Professional, but also a User Group Leader (in Pavia), an AWS Community Builder and, last but not least, a #serverless enthusiast.

Top comments (0)