You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an opt-in kiro render adapter for Kiro CLI, the successor/update path for Amazon Q Developer CLI. Kiro is a strong Kanon target because its configuration is file-backed, has both global and project scopes, and maps directly to settings Kanon already models:
future permission/model/resource settings -> Kiro custom-agent fields once the shared Kanon schema exists
This should be a render-first adapter named kiro. Keep it opt-in so existing kanon.yaml files do not suddenly start writing a third agent's files.
Why this is strategically valuable
Kiro is not just another editor adapter. It covers a terminal agent with project and user scopes, custom agents, MCP, skills, steering, hooks, and headless automation. It also matters for the Amazon Q installed base: AWS docs now say the Q CLI has become the Kiro CLI, and Kiro docs describe it as the next update of Q CLI while preserving Q workflows and configuration.
That gives Kanon a migration and growth story:
Teams already using Amazon Q/Q CLI can centralize the settings they are moving into Kiro.
Teams standardizing on Kiro CLI get the same shared Kanon repo that already feeds Codex and Claude.
Kiro's global/project split matches Kanon's existing user vs --project rendering model.
Kiro's file-backed MCP and skills surfaces mean Kanon can add value without automating a UI or depending on extension storage paths.
Evidence from the current codebase
Kanon has the adapter shape but no Kiro target today:
Config currently contains instructions, skills, mcp, hooks, and metadata; there is no Kiro-specific config or agent list (internal/core/types.go).
The only agent constants are codex, claude, and all (internal/core/types.go).
adaptersFor dispatches only Codex and Claude (internal/core/render.go).
validateTargets and the CLI --agent guard only accept Codex/Claude/all (internal/core/config.go, internal/cli/root.go).
renderSkills already copies complete SKILL.md directories into an adapter-provided target root, which is exactly what a Kiro skill renderer needs (internal/core/render.go).
Co-owned merge strategies exist for Codex TOML and Claude JSON only; Kiro mcp.json will need a JSON map merge that updates Kanon-owned mcpServers while preserving manually configured servers (internal/core/merge.go).
Current import supports Codex and Claude destinations only (internal/core/codex.go, internal/core/claude.go). Kiro import can wait until render behavior settles.
Kiro migration docs say Kiro CLI is the next update of Q CLI, retains advanced Q CLI functionality like MCP, steering, custom agents, and hooks, and remains backwards-compatible with Q entry points/configuration: https://kiro.dev/docs/cli/migrating-from-q/
Kiro configuration has global, project, and agent scopes. MCP servers live at ~/.kiro/settings/mcp.json and .kiro/settings/mcp.json; custom agents, steering, prompts, skills, and settings have documented paths and precedence: https://kiro.dev/docs/cli/chat/configuration/
Kiro MCP config supports mcpServers in user/workspace settings/mcp.json, plus agent-level mcpServers and includeMcpJson: https://kiro.dev/docs/cli/mcp/
Kiro skills use .kiro/skills/ and ~/.kiro/skills/; default agents auto-load both, while custom agents load skills through skill:// resources: https://kiro.dev/docs/cli/skills/
Kiro steering files live in .kiro/steering/ or ~/.kiro/steering/, and Kiro also supports the AGENTS.md standard: https://kiro.dev/docs/cli/steering/
I reviewed open generated-by-kelos issues and searched all issues for Kiro, Amazon Q, q developer, q cli, .amazonq, .kiro, project rules, custom agents, and mcp.json. I did not find an existing Kiro/Amazon Q render-target issue.
.kiro/steering/kanon.md
.kiro/settings/mcp.json
.kiro/skills/pr-review/SKILL.md
.kiro/skills/cdk-deploy/SKILL.md
.kiro/agents/kanon.json # only if hooks/custom-agent resources are needed
Do not overwrite whole settings/mcp.json. Add a FileMergeKiroMCP strategy that updates only Kanon-owned mcpServers and preserves unmanaged servers and Kiro settings.
Do not silently drop unsupported MCP fields. Map command, args, env, type: http, url, and tool_timeout_sec where compatible. Fail or warn clearly for headers, env_headers, enabled_tools, disabled_tools, OAuth fields not represented in Kanon, and mismatched timeout semantics.
Kiro skills require stronger frontmatter than current Kanon validation. For Kiro-targeted skills, require SKILL.md frontmatter with name and description, validate Kiro's documented name constraints, and fail with the skill name and file path.
For hooks, accept only Kiro-supported trigger names (agentSpawn, userPromptSubmit, preToolUse, postToolUse, stop) and only simple command hooks. Fail on unsupported async, unsupported event names, or hook argument semantics Kanon cannot faithfully translate.
Avoid duplicate instruction output when Codex and Kiro are both enabled for a project. In v1, .kiro/steering/kanon.md is safer than also writing root AGENTS.md for Kiro.
Defer import until render/merge behavior is stable. Kiro has multiple scopes and custom-agent files, so import should be a separate pass.
Suggested MVP scope
Add AgentKiro and target validation for kiro, gated by adapter opt-in/default behavior.
Implement kiroAdapter.Render for steering, skills, and settings/mcp.json.
Add FileMergeKiroMCP for co-owned JSON mcpServers preservation.
Add Kiro-specific skill frontmatter validation for Kiro-targeted skills.
Add custom-agent kanon.json rendering only for supported Kiro hooks, or defer hooks to a second PR if the custom-agent surface needs more design.
Amazon Q to Kiro migration: teams can keep one Kanon source while developers transition from Q CLI to Kiro CLI.
AWS-heavy platform teams: shared steering, AWS documentation MCP, CDK deployment skills, and safe Kiro hooks can be rolled out across laptops and project repos.
Terminal-agent standardization: Kiro CLI users get the same managed instructions, skills, MCP servers, and hooks as Codex/Claude users.
Project-scoped team context: repositories can carry .kiro/ steering, skills, and MCP config generated from the same Kanon source used for AGENTS.md and CLAUDE.md.
Headless automation: Kiro CLI's automation story can consume a deterministic Kanon-rendered project/user config before non-interactive agent runs.
Backward compatibility
Existing kanon.yaml files are unchanged.
Kiro is opt-in and should not affect current Codex/Claude output.
Existing Codex/Claude render and import behavior remains unchanged.
Existing Kiro settings/mcp.json files keep unmanaged server entries.
Import support is deferred, so existing Kiro files are not normalized in the first increment.
Non-goals
Do not implement Amazon Q legacy .amazonq rendering in this issue unless Kiro compatibility testing proves it is still necessary.
Do not manage Kiro model/provider defaults in v1; keep that with the shared model-defaults work.
Do not manage Kiro knowledge bases, prompts, code-intelligence settings, or session settings in v1.
Do not build a full neutral custom-agent schema here; render only the parts needed by current Kanon primitives.
🤖 Kelos Strategist Agent @gjkim42
Area: Integration Opportunities
Summary
Add an opt-in
kirorender adapter for Kiro CLI, the successor/update path for Amazon Q Developer CLI. Kiro is a strong Kanon target because its configuration is file-backed, has both global and project scopes, and maps directly to settings Kanon already models:instructions.files-> Kiro steering / AGENTS.md-compatible contextskills-> Kiro Agent Skills foldersmcp.servers-> Kirosettings/mcp.jsonhooks-> Kiro custom-agenthooksThis should be a render-first adapter named
kiro. Keep it opt-in so existingkanon.yamlfiles do not suddenly start writing a third agent's files.Why this is strategically valuable
Kiro is not just another editor adapter. It covers a terminal agent with project and user scopes, custom agents, MCP, skills, steering, hooks, and headless automation. It also matters for the Amazon Q installed base: AWS docs now say the Q CLI has become the Kiro CLI, and Kiro docs describe it as the next update of Q CLI while preserving Q workflows and configuration.
That gives Kanon a migration and growth story:
--projectrendering model.Evidence from the current codebase
Kanon has the adapter shape but no Kiro target today:
Configcurrently containsinstructions,skills,mcp,hooks, andmetadata; there is no Kiro-specific config or agent list (internal/core/types.go).codex,claude, andall(internal/core/types.go).adaptersFordispatches only Codex and Claude (internal/core/render.go).validateTargetsand the CLI--agentguard only accept Codex/Claude/all (internal/core/config.go,internal/cli/root.go).renderSkillsalready copies completeSKILL.mddirectories into an adapter-provided target root, which is exactly what a Kiro skill renderer needs (internal/core/render.go).mcp.jsonwill need a JSON map merge that updates Kanon-ownedmcpServerswhile preserving manually configured servers (internal/core/merge.go).internal/core/codex.go,internal/core/claude.go). Kiro import can wait until render behavior settles.External signal
Official docs make the Kiro target concrete:
~/.kiro/settings/mcp.jsonand.kiro/settings/mcp.json; custom agents, steering, prompts, skills, and settings have documented paths and precedence: https://kiro.dev/docs/cli/chat/configuration/mcpServersin user/workspacesettings/mcp.json, plus agent-levelmcpServersandincludeMcpJson: https://kiro.dev/docs/cli/mcp/.kiro/skills/and~/.kiro/skills/; default agents auto-load both, while custom agents load skills throughskill://resources: https://kiro.dev/docs/cli/skills/.kiro/steering/or~/.kiro/steering/, and Kiro also supports theAGENTS.mdstandard: https://kiro.dev/docs/cli/steering/.kiro/agents/or~/.kiro/agents/and can configure prompt, MCP servers, tools, allowed tools, resources, hooks, model, and UI affordances: https://kiro.dev/docs/cli/custom-agents/configuration-reference/Existing issue overlap check
I reviewed open
generated-by-kelosissues and searched all issues forKiro,Amazon Q,q developer,q cli,.amazonq,.kiro,project rules,custom agents, andmcp.json. I did not find an existing Kiro/Amazon Q render-target issue.This is distinct from:
model, but this adapter should not invent model schema in v1.Proposed target and mapping
Use
kiroas the canonical target:Recommended MVP mapping:
instructions.files~/.kiro/steering/kanon.md.kiro/steering/kanon.mdor rootAGENTS.md.kiro/steering/kanon.mdinitially to avoid duplicate-path collisions with CodexAGENTS.md.skills[]~/.kiro/skills/<name>/....kiro/skills/<name>/...renderSkills, but add Kiro-specific frontmatter validation fordescriptionand name format.mcp.servers~/.kiro/settings/mcp.json.kiro/settings/mcp.jsonmcpServersentries and preserve unmanaged Kiro settings/servers.hooks[]~/.kiro/agents/kanon.json.kiro/agents/kanon.jsonkiro; users select thekanoncustom agent.Example source:
Expected project render tree:
Rendered Kiro MCP shape:
{ "mcpServers": { "aws-docs": { "command": "uvx", "args": ["awslabs.aws-documentation-mcp-server@latest"], "env": { "FASTMCP_LOG_LEVEL": "ERROR" }, "disabled": false }, "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp" } } }Rendered
kanoncustom agent shape when hooks are present:{ "name": "kanon", "description": "Kanon-managed agent context and hooks", "prompt": "file://../steering/kanon.md", "includeMcpJson": true, "resources": [ "file://../steering/**/*.md", "skill://../skills/*/SKILL.md" ], "hooks": { "preToolUse": [ { "matcher": "execute_bash", "command": "hooks/audit-bash.sh" } ] } }Guardrails
--agent allbehavior to include Kiro until the adapter opt-in semantics from Grow beyond Codex + Claude: prioritized render-adapter roadmap (Gemini CLI, Cursor, opencode, Copilot CLI) #7/Render adapters: Cursor, opencode, Copilot CLI (+ Gemini import parity) #23 are settled.settings/mcp.json. Add aFileMergeKiroMCPstrategy that updates only Kanon-ownedmcpServersand preserves unmanaged servers and Kiro settings.command,args,env,type: http,url, andtool_timeout_secwhere compatible. Fail or warn clearly forheaders,env_headers,enabled_tools,disabled_tools, OAuth fields not represented in Kanon, and mismatched timeout semantics.enabled: falseshould renderdisabled: true; omittedenabledrendersdisabled: false.SKILL.mdfrontmatter withnameanddescription, validate Kiro's documented name constraints, and fail with the skill name and file path.toolsSettingsin v1. Those should wait for shared Kanon schema such as Add a 'native passthrough' managed-settings type to manage permissions (and other non-portable settings) without a lossy neutral schema #18, Manage model and provider defaults for agent sessions #59, Add setting-level ownership and review metadata for governed agent config #76, or a future custom-agent/native block.agentSpawn,userPromptSubmit,preToolUse,postToolUse,stop) and only simple command hooks. Fail on unsupportedasync, unsupported event names, or hook argument semantics Kanon cannot faithfully translate..kiro/steering/kanon.mdis safer than also writing rootAGENTS.mdfor Kiro.Suggested MVP scope
AgentKiroand target validation forkiro, gated by adapter opt-in/default behavior.kiroAdapter.Renderfor steering, skills, andsettings/mcp.json.FileMergeKiroMCPfor co-owned JSONmcpServerspreservation.kanon.jsonrendering only for supported Kiro hooks, or defer hooks to a second PR if the custom-agent surface needs more design.--agent kirobehavior.make verify.Use cases unlocked
.kiro/steering, skills, and MCP config generated from the same Kanon source used forAGENTS.mdandCLAUDE.md.Backward compatibility
kanon.yamlfiles are unchanged.settings/mcp.jsonfiles keep unmanaged server entries.Non-goals
.amazonqrendering in this issue unless Kiro compatibility testing proves it is still necessary.