Kiro IDE, linted on save and steered by AGENTS.md
ultracite init --editors kiro writes .vscode/settings.json and installs your toolchain’s extension from Open VSX through the kiro launcher, so Kiro formats on save and applies safe fixes as VS Code would. Kiro’s agent always loads AGENTS.md as steering, but IDE 1.0 removed its diagnostics tool, so #problems or ultracite check is how lint errors reach it.
Kiro by AWSChecked against Kiro 1.2.56
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnPaste": true,
"editor.formatOnSave": true,Format on save
"emmet.showExpandedAbbreviation": "never",
"js/ts.tsdk.path": "node_modules/typescript/lib",The project’s TypeScript
"js/ts.tsdk.promptToUseWorkspaceVersion": true,
"[astro]": {
"editor.defaultFormatter": "astro-build.astro-vscode"
},
"[css]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[graphql]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[handlebars]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[html]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[json]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[less]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[markdown]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[scss]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[typescript]": {Oxfmt formats it
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[vue-html]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[vue]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[yaml]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"editor.codeActionsOnSave": {
"source.fixAll.oxc": "explicit"Oxlint’s safe fixes
}
}init does in Kiro- 1Writes
.vscode/settings.jsonA new file, or merged into yours setting by setting, with your comments and other settings kept. - 2Installs
oxc.oxc-vscodeWithkiro --install-extension, when it creates the settings file.
- 3Open the project in Kiro. If
initcouldn’t runkiro, installoxc.oxc-vscodefrom the Extensions view, orbiomejs.biomeif you picked Biome. - 4Save a TypeScript file: Oxfmt formats it and Oxlint’s safe fixes apply.
Three toolchains, one settings.json
init writes the settings for the toolchain you pick, so Kiro formats with the same tool as ultracite fix and applies its fixes when you save.
Oxlint + OxfmtDefault
- Extension
- oxc.oxc-vscode
- Formats with
- oxc.oxc-vscode
- On save
- source.fixAll.oxc
--linter oxlint
- Extension
- biomejs.biome
- Formats with
- biomejs.biome
- On save
- source.fixAll.biomesource.organizeImports.biome
--linter biome
- Extensions
- dbaeumer.vscode-eslintesbenp.prettier-vscode
- Formats with
- esbenp.prettier-vscode
- On save
- source.fixAll.eslintsource.organizeImports
--linter eslint
Kiro runs VS Code extensions from Open VSX
Kiro reads the same .vscode/settings.json as VS Code. What differs is where its extensions come from, and how much its agent may do before you trust the workspace.
- Extensions
- Kiro installs from Open VSX, not the Visual Studio Marketplace.
oxc.oxc-vscode,biomejs.biome,dbaeumer.vscode-eslintandesbenp.prettier-vscodeare all published there. - Private registry
- An admin can point Kiro at another registry with the
ExtensionGalleryServiceUrlpolicy. Check that it carries your toolchain’s extension. - Code OSS 1.131
- Kiro has been on Code OSS 1.131 since IDE 1.1, so it reads
.vscode/settings.jsonas VS Code does. - Workspace trust
- Until you trust a workspace, Kiro skips its steering files and skills and asks before every shell command, even one a rule allows. The decision is stored outside the repository.
- Shell commands
- Without a rule, read-only
gitcommands run silently and other commands ask. Ashellrule in~/.kiro/settings/permissions.yamlcan allownpx ultracite *. - Agent autonomy
- Settings → Agent → Agent Autonomy (
kiroAgent.agentAutonomy): Autopilot goes ahead with allowed actions; Supervised asks before any action.
Lint errors reach Kiro through #problems
Kiro’s agent treats AGENTS.md as steering that’s always included, at the workspace root and in subfolders. IDE 1.0 removed the agent’s standalone diagnostics tool, so to hand it your linter’s findings, add #problems to a message or let it run ultracite check as the rules ask.
- 1
~/.kiro/steering/Global steering for every workspace, including anAGENTS.mdplaced here. Workspace steering wins when the two disagree. - 2
.kiro/steering/*.mdWorkspace steering, loaded by each file’sinclusionmode:always(the default),fileMatch,manualorauto. Skipped until you trust the workspace. - 3
AGENTS.mdUltraciteWhereinitwrites Ultracite’s rules. Always included; inclusion modes don’t apply to it. - 4
packages/ui/AGENTS.mdSubfolderAGENTS.mdfiles load as steering alongside the rest. - 5
.kiro/skills/Skills, loaded when a request matches their description. Kiro’s skill folders are this one and~/.kiro/skills/, soinitinstalls the Ultracite skill here when the project has a.kirofolder.
rules:
- capability: shell
match: ["npx ultracite *"]
effect: allow- 01The agent writes a file in your workspace.
- 02Your Oxc, Biome or ESLint extension reports problems in the editor, as it does for your own edits. Since IDE 1.0 the agent has no standalone tool for reading them.
- 03Add
#problemsto your next message to hand it those findings. - 04Or it runs
npx ultracite checkbecauseAGENTS.mdsays to. Ashellallow rule lets that run without a prompt in a trusted workspace.
Worth knowing about Kiro
Changes to .vscode always ask
Kiro asks before its agent writes anything under
.vscode/, in trusted and untrusted workspaces alike, and noallowrule removes that prompt. The agent can’t change your format-on-save settings without your approval.Hooks follow the agent, not you
Kiro’s
PostFileSavehook runs when the agent saves or modifies a file, andPostTaskExecruns after a spec task finishes. Both are for the agent’s changes; format on save covers yours. Ultracite doesn’t write Kiro hooks.Steering can read your config
A steering file can pull in a live file with
#[[file:path]], a line range with#[[file:path:12-28]]or a folder listing with#[[folder:path]]. In anAGENTS.md, paths resolve from that file’s folder, so it can point the agent at theoxlint.config.tsyou actually ship.
Kiro questions, answered
- Does Kiro use the VS Code Marketplace?
- No. Kiro installs extensions from Open VSX unless an admin sets another registry with the
ExtensionGalleryServiceUrlpolicy.oxc.oxc-vscode,biomejs.biome,dbaeumer.vscode-eslintandesbenp.prettier-vscodeare all published on Open VSX. - Does Kiro read AGENTS.md?
- Yes. Kiro loads
AGENTS.mdfrom the workspace root, from subfolders and from~/.kiro/steering/as steering that’s always included. Inclusion modes don’t apply to it. - Can Kiro’s agent see my lint errors?
- Not through a dedicated tool: IDE 1.0 removed the agent’s standalone
diagnosticstool. Add#problemsto a chat message to share the language server’s findings, or let the agent runnpx ultracite check. - Why didn’t init install the Oxlint extension in Kiro?
initrunskiro --install-extensiononly when it creates.vscode/settings.json, and only ifkirois on your PATH. Otherwise, installoxc.oxc-vscodefrom Kiro’s Extensions view, which searches Open VSX.- Can Kiro run Ultracite after every agent edit?
- Kiro can: a
PostFileSavehook in.kiro/hooks/*.jsonfires when the agent saves or modifies a matching file. Ultracite doesn’t write one, andinit --hooksdoesn’t support Kiro.
Keep going
- AgentKiro CLIAWS’s terminal coding agent, formerly Amazon Q Developer CLI, with custom agents, steering and hooks.
- EditorVS CodeMicrosoft’s code editor, with GitHub Copilot’s agent built in and extensions from the Visual Studio Marketplace.
- EditorAntigravity IDEGoogle’s AI code editor, built on Code OSS, and a separate app from the Antigravity 2.0 agent manager since May 2026.
- DocsEditor setupEvery editor
initconfigures, and the extension each toolchain needs.
Ship less slop
One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.