Kiro CLI, with AGENTS.md as always-on steering
Kiro CLI treats AGENTS.md as steering that’s always included, at the workspace root and in subdirectories. Ultracite doesn’t configure Kiro’s hooks, so the agent runs ultracite fix through its shell tool when the rules tell it to, and a permission rule can approve that command ahead of time.
Kiro CLI by Amazon Web ServicesChecked against Kiro CLI 2.29.0
# Ultracite Code Standards
This project uses **Ultracite**, a zero-config preset that enforces strict code quality standards through automated formatting and linting.
## Quick Reference
- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`
Oxlint + Oxfmt (the underlying engine) provides robust linting and formatting. Most issues are automatically fixable.
…- 1
~/.kiro/steering/Global steering for every workspace. AnAGENTS.mdhere is picked up too. - 2
.kiro/steering/*.mdWorkspace steering, loaded by each file’s inclusion mode. - 3
AGENTS.mdUltraciteAt the workspace root, always included. - 4
services/api/AGENTS.mdSubdirectoryAGENTS.mdfiles load as steering alongside the rest. - 5
.amazonq/rules/Still read for projects set up with Amazon Q Developer CLI, unless the project also has a.kirofolder.
How Kiro CLI reads the rules
Kiro calls persistent instructions steering. AGENTS.md is steering without inclusion modes: it’s always loaded, next to the Markdown files in .kiro/steering/ and ~/.kiro/steering/.
- Always on
AGENTS.mdhas no inclusion modes.fileMatch,manualandautoapply only to steering files.- Conflicts
- Workspace steering wins over global steering when instructions disagree.
- File references
#[[file:path]]inAGENTS.mdpulls in a live file, resolved from thatAGENTS.md’s folder.- Amazon Q
.amazonq/ruleskeeps working until the project gets a.kirofolder; from then on.kirowins and Kiro warns you.- Starter files
- Kiro’s foundation steering files,
product.md,tech.mdandstructure.md, load in every interaction by default, likeAGENTS.md. - Team rules
- Global steering in
~/.kiro/steering/can be pushed to every developer’s machine with MDM or Group Policy.
Pre-approve the command, not the session
Ultracite doesn’t configure Kiro’s hooks yet, so ultracite fix runs because AGENTS.md tells the agent to run it. A shell rule in ~/.kiro/settings/permissions.yaml lets that command run without a prompt in every trusted workspace.
rules:
- capability: shell
match: ["npx ultracite *"]
effect: allow- 01The agent changes files with its write tools.
- 02Following
AGENTS.md, it runsnpx ultracite fixthrough its shell tool. - 03A matching
shellallow rule lets it run silently; in an untrusted workspace, Kiro asks anyway. - 04Kiro reads the output and fixes what’s left.
Worth knowing about Kiro CLI
V3 is a switch you make
Kiro CLI still runs Classic (2.x) sessions alongside 3.0 (V3), and since 2.28.0 it offers to switch when you start an interactive Classic session. V3 moved hooks into
.kiro/hooks/*.jsonand permissions intopermissions.yaml;/upgrade-agentconverts older agent configs.Untrusted workspaces ask every time
Until you trust a workspace, Kiro asks before every shell command, even one a saved rule allows, and doesn’t load the workspace’s steering files, skills or custom agents. Your decision is stored outside the repository.
Permissions a repo can’t set
Permission rules live in
~/.kiro/settings/permissions.yamland a per-workspace file under~/.kiro/workspace-roots/, both outside the repository, so a cloned repo can’t approve its own commands. Adenybeats anask, which beats anallow.The Ultracite skill
Kiro CLI loads skills from
.kiro/skills/and~/.kiro/skills/. When your project has a.kirofolder,initinstalls the Ultracite skill into.kiro/skills/as well as.agents/skills/, so Kiro finds it once the workspace is trusted.
Kiro CLI questions, answered
- Does Kiro CLI read AGENTS.md?
- Yes. Kiro loads
AGENTS.mdfrom the workspace root, from subdirectories and from~/.kiro/steering/, and always includes it: steering inclusion modes don’t apply to it. - Is Kiro CLI the same as Amazon Q Developer CLI?
- Kiro CLI replaced it. The
qandq chatcommands still work, and Kiro keeps reading a project’s.amazonqfolder until the project also has a.kiroone. - How do I let Kiro CLI run Ultracite without asking?
- Add a
shellrule matchingnpx ultracite *witheffect: allowto~/.kiro/settings/permissions.yaml, as above. In a workspace you haven’t trusted, Kiro still asks before each command. - Does Kiro CLI support hooks?
- Yes. In V3, hook files live in
.kiro/hooks/*.jsonand~/.kiro/hooks/, with triggers such asPostFileSave; CLI 2.x kept hooks inside agent configs. Ultracite doesn’t configure them yet.
Keep going
- AgentQoderAlibaba’s agentic coding platform: a desktop IDE, a JetBrains plugin and a CLI.
- AgentGitHub CopilotGitHub’s coding assistant: agent mode in editors, a CLI, and a cloud agent that opens pull requests.
- AgentCursor CLIThe Cursor agent in your terminal, interactive or headless.
- DocsAgent rulesWhat
initwrites for every agent, and how to keep it current.
Ship less slop
One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.