Skip to content
Ultracite
Esc
↑↓navigate↵open⌘Jpreview

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.

…
Ultracite’s rules
Where Kiro CLI looks for instructions
  1. 1~/.kiro/steering/Global steering for every workspace. An AGENTS.md here is picked up too.
  2. 2.kiro/steering/*.mdWorkspace steering, loaded by each file’s inclusion mode.
  3. 3AGENTS.mdUltraciteAt the workspace root, always included.
  4. 4services/api/AGENTS.mdSubdirectory AGENTS.md files load as steering alongside the rest.
  5. 5.amazonq/rules/Still read for projects set up with Amazon Q Developer CLI, unless the project also has a .kiro folder.

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.md has no inclusion modes. fileMatch, manual and auto apply only to steering files.
Conflicts
Workspace steering wins over global steering when instructions disagree.
File references
#[[file:path]] in AGENTS.md pulls in a live file, resolved from that AGENTS.md’s folder.
Amazon Q
.amazonq/rules keeps working until the project gets a .kiro folder; from then on .kiro wins and Kiro warns you.
Starter files
Kiro’s foundation steering files, product.md, tech.md and structure.md, load in every interaction by default, like AGENTS.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
  1. 01The agent changes files with its write tools.
  2. 02Following AGENTS.md, it runs npx ultracite fix through its shell tool.
  3. 03A matching shell allow rule lets it run silently; in an untrusted workspace, Kiro asks anyway.
  4. 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/*.json and permissions into permissions.yaml; /upgrade-agent converts 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.yaml and a per-workspace file under ~/.kiro/workspace-roots/, both outside the repository, so a cloned repo can’t approve its own commands. A deny beats an ask, which beats an allow.

  • The Ultracite skill

    Kiro CLI loads skills from .kiro/skills/ and ~/.kiro/skills/. When your project has a .kiro folder, init installs 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.md from 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 q and q chat commands still work, and Kiro keeps reading a project’s .amazonq folder until the project also has a .kiro one.
How do I let Kiro CLI run Ultracite without asking?
Add a shell rule matching npx ultracite * with effect: allow to ~/.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/*.json and ~/.kiro/hooks/, with triggers such as PostFileSave; CLI 2.x kept hooks inside agent configs. Ultracite doesn’t configure them yet.

Ship less slop

One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.