一、背景
本文介绍从Claude Code Skill迁移到Kiro。
目前主要使用方式有:
- 1、使用Kiro IDE的Power功能替代Skill
- 2、使用Kiro CLI的Skill兼容方式(2026年1月发布的1.24.0版本起支持)
- 3、直接将Skill作为Kiro Steering全文加载方式(不推荐)
这三种方式各有局限:
- 第一种方式:需要修改Skill的markdown文件以满足Power功能的定义规范,对具体执行任务的markdown本身没有改动,但是对定义任务的meta信息和触发任务的hook拦截器需要有额外配置工作;此外如果Skill较多,建议通过专门的工具批量导入;最后Kiro IDE支持Power但Kiro CLI并不支持Power;
- 第二种方式:在CLI下创建一个新的自定义Agent(Custom Agent),在Agent配置文件中加载Skill;
- 第三种方式:前两种迁移方式使用的Kiro功能都是渐进式加载资源的,与Claude Code一样不会在初始化时候加载所有信息,节省Context使用。第三种全文加载会大量消耗Context,因此除非Skill比较简单(百行以内),否则不推荐这种全文加载方式。
下面分别介绍这三种。
二、使用Kiro IDE的Power功能替代Skill
本章节介绍将Claude Code Skill迁移到Kiro IDE的Power。注意截止本文编写时,Kiro IDE支持Power但CLI还不支持Power。
1、现有Claude Code Skill例子
现在以一个在Claude Code内已经可被使用的code-compiler编译技能为例进行修改。如下截图。

现有Claude Code的Skill的markdown文件的格式如下图,可看到其位于.claude/skills/目录下,分割线之前第一部分的标签信息是默认被自动加载到模型的,后边的markdown格式正文是确认触发skill后才被加载的。如下截图。

2、Kiro Power配置文件组成
Kiro Power相关配置可以是项目级(即当前目录的.kiro/目录下),也可以是本机全局配置(在本机~/.kiro/power目录下)。首先看官方给出的Power的目录结构如下:
power-supabase/
├── POWER.md # 必须存在,Metadata, onboarding, steering mappings
├── mcp.json # 可选,MCP server configuration
└── steering/ # 建议使用,加强遵从性,Workflow-specific guidance
├── database-setup-workflow.md # 例子
├── supabase-code-format-sql.md # 例子
├── supabase-database-rls-policies.md # 例子
└── supabase-edge-functions.md # 例子
其中最主要的就是POWER.md,第一部分meta信息与Claude Code Skill的markdown写法相似。而mcp.json是本power专属调用的MCP server的定义,这个是可选配置。在steering目录下的markdown文件为可选编写的指导Kiro任务的遵从性说明文件,如果任务比较复杂,可以拆分为多个steering文件分项编写。最简单的任务只需要POWER.md即可,但为了实现更好的遵从效果,建议将详细执行步骤和脚本放到steering文件中。
3、构建Power定义文件及增加强制触发条件
本例子中,为了更好的遵从和规则配置灵活性,我们创建两个配置文件。第一个POWER.md只保存meta信息和hook配置,详细的操作步骤都放到compile.md中。目录结构如下:
.kiro/power/code-compile/
├── POWER.md # Metadata, onboarding, steering mappings
└── steering/ # Workflow-specific guidance
├── compile.md
在Power的markdown文件的第一部分是meta信息,从原先Claude Code Skill的markdown文件中,将第一部分复制出来,放到POWER.md中。此外,还需要对这个头部的说明做一下简单修改,在Kiro官方文档中关于Power的定义,Kiro默认接受的四个字段name、displayName、description和keywords。因此要稍微修改下。
这个POWER.md的下一个是Onboard章节,这个章节是Claude Code没有的,它是首次加载这个Power能力时候会读取和理解的准备工作,通常用于检查配置文件、脚本、MCP Server的可访问性。在默认情况下,这里无须写任何配置保持为空即可,Kiro可识别Power的meta信息中的description和keywords,来决定是否激活一个Power。但是,由于是从Claude Code Skill迁移过来,不排除一些情况下不能自动触发Power,由此会导致模型依赖自己的知识生成回复,这就与我们构建Skill/Power的初衷相违背。因此保险起见,我们为这个Power设置人为的强制触发的钩子。这里使用Kiro的Hook功能来实现。Hook功能定义在Prompt输入环节,当检测到Prompt中的特定关键词,则触发Power。Hook的配置文件不用事先写入,把他放在POWER.md的onboard标题中,之后会在第一次激活时候自动写入.kiro/hooks/路径下。
在onboard标题之后,是如何调用steering内容,可针对具体场景,明确指向特定的steering文件。
将以上几部分内容拼接在一起,如下是POWER.md的完整例子:
---
name: "code-compiler"
displayName: "Rust编译脚本"
description: "编译 Rust 代码。当用户提到'我要验牌'、'给我擦皮鞋'、'编译'、'构建'、'build'、'cargo build'时使用此 Power。"
keywords: ["rust", "编译", "构建", "build", "cargo", "验牌", "擦皮鞋"]
---
# Onboarding
## Add a hook to `.kiro/hooks/force-rust-compile.kiro.hook`
\`\`\`json
{
"enabled": true,
"name": "编译时强制使用Power能力",
"description": "当用户提到编译相关词汇时,强制使用 code-compiler power",
"version": "1",
"when": {
"type": "promptSubmit"
},
"then": {
"type": "askAgent",
"prompt": "如果用户消息包含\"擦皮鞋\"、\"验牌\"、\"编译\"、\"构建\"、\"build\"等词,必须先激活 code-compiler power 并按其定义的流程执行"
},
"workspaceFolderName": "update-security-group",
"shortName": "force-rust-compile"
}
\`\`\`
# When to Load Steering Files
- build rust → `compile.md`
4、构建Steering文件
上一章节构建的是POWER.md文件,这一章节是构建当前Power要执行的任务。将原先Claude Code Skill的markdown文件中,除去开头部分meta信息外所有技术要求,包括如何使用脚本、路径、工具等,粘贴到steering目录下的markdown文件中。
5、在Kiro IDE上添加Power并首次激活Power
以上两个Markdown整理完毕后,开始将其添加到自定义Power。点击Kiro IDE左侧的Kiro闪电按钮,点击第一项Add Custom Power按钮。如下截图。

选择从目录导入Power。如下截图。

选择刚才Power目录下的子目录,无须选择文件,并点击下一步继续。如下截图。

添加完毕。已经可以在Power菜单下看到了。
点击这个新添加的Power后右侧会打开详情,可以点击Try power按钮就能立刻触发。如下截图。

点击后可以看到,在右侧的Kiro对话窗口中,是第一次加载这个Power,会读取Onboarding标题下的内容,如果有的话会创建、测试相关资源。本例中,Onboard章节下会创建hook配置用于确保关键字能完全触发本Power。然后就会首次执行任务。如下截图。

到此Power创建完成。
6、测试在一般对话中触发
在以上完成了第一次激活后,现在测试下通过普通的对话触发。在右侧输入Power定义文件中description字段里的关键字(也是Hook中的关键字),测试能正确触发。如下截图。

从Kiro IDE左侧,在Agent Hooks菜单下可以看到刚才创建的Hook配置。如下截图。

注意:截止2026年1月,Kiro Power功能仅在Kiro IDE上有效。
7、参考文档
如何创建Power:https://kiro.dev/docs/powers/create/
三、在Kiro CLI下通过Custom Agent使用Skill
1、版本要求
Kiro CLI自1.24.0版本起正式支持在CLI下通过自定义Agent方式使用Skill。使用如下命令查看版本:
kiro-cli --version
如果版本低于1.24.0,则执行如下命令升级:
kiro-cli update
2、准备文件
在当前项目级的目录下,新建.kiro目录下的agents和skills目录。
mkdir -p .kiro/agents
mkdir -p .kiro/skills
将Claude Code Skill的文件,包含他的目录,复制到.kiro/skills目录下。同时,还要在.kiro/agents目录下新建自定义agent配置文件。目录汇总如下:
.kiro/skills
└── code-compile
└── SKILL.md
.kiro/agents
└── work-with-skill.json
新的Agent自定义文件work-with-skill.json的内容如下:
{
"name": "work-with-skill",
"description": "This agent will load skills",
"tools": ["*"],
"allowedTools": ["*"],
"resources": [
"skill://.kiro/skills/**/SKILL.md"
],
"prompt": "你是一个专业的开发人员,使用skill定义的",
"model": "claude-opus-4.5"
}
在以上文件中,可指定Agent名称、可使用的工具。在被加载的SKILL文件上,我们使用通配符表示加载多个Skill文件,只要文件名匹配即可。此外还可以设置System Prompt以及强制要求的模型。保存退出。
3、手工切换Agent或以特定Agent启动并触发Skill
如果当前Kiro CLI正在运行,需要退出当前Kiro CLI,重新进入Kiro CLI,然后切换Agent到上一步创建的自定义Agent。
切换方法可先启动默认Agent后手工执行/agent swap选择切换Agent,也可以通过启动参数指定Agent名称的方式启动kiro-cli --agent work-with-skill(本例中我自定义agent名称是这个名字)。
切换Agent完毕后,执行/context show命令确认Skill的初始meta信息部分已经被加载(但不加载全文)。返回信息如下:
[work-with-skill] 5% > /context show
Agent (work-with-skill)
- .kiro/skills/**/SKILL.md /Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/skills/code-compile/SKILL.md
Session (temporary)
<none>
1 matched file in use
- /Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/skills/code-compile/SKILL.md (0.0% of context window)
Context files total: 0.0% of context window
[work-with-skill] 5% >
在Prompt中提到关键字触发Skill,可看到Skill被触发,整个Skill文件和相关脚本被读取和调用。如下截图。

读取完整的Skill文件后,正常执行。如下截图。

注意:截止2026年1月,通过Custom Agent使用Skill的功能仅在Kiro CLI上有效。
4、参考文档
https://kiro.dev/docs/cli/custom-agents/creating/
https://kiro.dev/changelog/cli/1-24/#progressive-context-loading-with-skills
四、通过Kiro Steering直接将Skill全文加载到Context中(不推荐)
1、使用方法
除了以上两种方法外,还有一种比较简单粗暴的方法,不需要配置Kiro Power,也不需要自定义Agent,而是把整个Skill作为Kiro Steering进行全文加载。这个方法对Kiro IDE和Kiro CLI均有效。不过,这样将损失掉渐进式加载的灵活性,当Skill特别复杂篇幅较长时候,会严重占用Context,影响模型注意力。
将Claude Code Skill的文件,放置到如下路径:
.kiro/steering/
└── code-compile
└── SKILL.md
重新启动Kiro,即可使用关键词触发执行特定程序。
2、查看通过Steering全文加载占用的Context
执行如下命令:
/context show
返回如下:
Agent (kiro_default)
- AmazonQ.md (no matches)
- AGENTS.md (no matches)
- README.md (no matches)
- /Users/lxy/.kiro/steering/**/*.md /Users/lxy/.kiro/steering/chat.md
- /Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/steering/**/*.md /Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/steering/check-ip/SKILL.md
/Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/steering/code-compile/SKILL.md
Session (temporary)
<none>
3 matched files in use
- /Users/lxy/.kiro/steering/chat.md (0.1% of context window)
- /Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/steering/check-ip/SKILL.md (0.0% of context window)
- /Users/lxy/Documents/MyWorkshop/Rust/update-security-group/.kiro/steering/code-compile/SKILL.md (0.2% of context window)
Context files total: 0.3% of context window
这里就可以看到加载的steering一个三个,第一个是在我本机~/.kiro目录下的,是全局配置文件。后两个配置文件是项目级。三个加载的文件,占用context比例是0.3%,但是好在这个两个skill的markdown任务比较简单,占用的篇幅不太大,对context使用影响不大。
3、参考文档:
Steering文件的使用
https://kiro.dev/docs/steering/
更多Claude Code Skill转为Kiro的工具
1、使用convert-skills-to-power工具将Skill转换为Power
Convert skill to Kiro Power
https://github.com/kiro-community/powers/tree/main/convert-skills-to-power
这个工具将在Kiro IDE上添加一个名为convert-skills-to-power的Power,然后可扫描指定目录,批量将现有Skill转换为Kiro Power。
2、将Claude Code Skill转换为MCP Server的形式提供给Kiro
Claude Code Skill to MCP
https://github.com/DiscreteTom/agent-skills-mcp
以上这个例子,可把现有的Kiro Skill转换为MCP Server,由此仅在执行时候才会触发,减少大量shell脚本、外部API调用消耗Context的情况。
以上两个工具可搭配上述几种Claude Code SKill迁移方法使用。
最后修改于 2026-01-23