Loading image...Kiro

Product

  • About Kiro
  • IDE
  • CLI
  • Web
  • Mobile
  • Crew
  • Pricing
  • Downloads

For

  • Enterprise
  • Startups
  • Students

Community

  • Overview
  • Ambassadors
  • Discord
  • Events
  • Powers
  • Shop
  • Showcase

Resources

  • Docs
  • Blog
  • Changelog
  • FAQs
  • Report a bug
  • Suggest an idea
  • Billing support

Social

Site TermsLicenseResponsible AI PolicyLegalPrivacy PolicyCookie Preferences
Loading image...Kiro
  • CLI
  • Web
  • Enterprise
  • Pricing
  • Docs
SIGN INDOWNLOADS
Loading image...Kiro

Get Started

InstallationAuthenticationYour first project

Models

OverviewAvailable modelsReasoning effort

Features

How Kiro works
Specs
Steering
Hooks
MCP
Permissions
Custom agents
Agent Skills
Powers
Cloud sessionsCompactionKiroignoreCheckpoints and rewind
Built-in tools
Configuration scopes

IDE 1.x

What's new in 1.0
Setup & First Run
Editor
Chat
Experimental
Troubleshooting0.x reference

CLI

What's new in 3.0
Migration guide
Upgrading agent configs
Permissions migration
Hooks migration
Agent config changes
New features in 3.0
Tangent
Setup & First Run
Terminal UI
Chat
Voice modeHeadless modeACPAuto complete
Experimental
2.x reference

Crew

Quick startInstallationRunning 24/7
Chat
Agent Capabilities
Features
Interfaces
Apps
System & storageConfigurationSecurityTroubleshooting

Web

Setup & First RunIdentity Center
Connect your repositories
Working with the agent
Autonomous modeAutomationsMemoryConfiguration Sync
Sandbox

Mobile - Preview

Overview

Commands and Reference

CLI commandsSlash commandsBuilt-in toolsExit codesSettings

Billing

OverviewManaging your subscriptionUpgrading your planDowngrading your planCancelling your planPurchasing add-on creditsManaging your paymentsManaging usage notificationsManaging your taxesContacting billing supportDeleting your accountRelated questions

Enterprise

ConceptsOnboarding quickstart
Connecting your identity provider
Deployment optionsSubscribe your teamManage subscriptions
Governance
Monitor and track
SettingsManaged updatesBillingIAMSupported regions

Privacy and Security

OverviewData protectionCode referencesCompliance validationInfrastructure securityIAM permissionsFirewalls, proxies, and data perimetersVPC endpoints (AWS PrivateLink)

Guides

Overview
Language support
Learn by playing

Migration

Migrating from Q DeveloperMigrating from VSCodeUpgrading from Q CLI
  1. Docs
  2. CLI
  3. What's new in 3.0
  4. Agent config changes
View as Markdown

Agent config changes

View as Markdown

Agent profiles are backward-compatible — existing configs continue to work. The unified agent harness adds new optional fields and a Markdown format option.

Old format

.kiro/agents/my-agent.json:

json
{ "name": "my-agent", "description": "A development agent", "prompt": "file://resources/MY_PROMPT.md", "model": "claude-sonnet-4", "tools": ["fs_read", "fs_write", "execute_bash", "grep", "glob", "code"], "toolsSettings": { "execute_bash": { "allowedCommands": ["^git status$", "^cargo build[^&;]*$"], "deniedCommands": ["^rm -rf"], "denyByDefault": false }, "fs_read": { "allowedPaths": ["src/**", "docs/**"], "deniedPaths": [".env", "secrets/**"] }, "fs_write": { "allowedPaths": ["src/**"], "deniedPaths": ["*.lock"] } }, "resources": ["file://AGENTS.md"], "hooks": { "agentSpawn": [{ "command": "git status", "description": "Add git context" }] }, "welcomeMessage": "Hello! How can I help?" }

Both formats are supported. Use Markdown when your system prompt is long or benefits from human readability; JSON works well for programmatically generated configs. There's no functional difference — fields are identical across formats.

New Markdown format

.kiro/agents/backend-dev.md:

markdown
--- name: backend-dev description: Backend development agent model: claude-sonnet-4-20250514 tools: ["read", "write", "shell", "web"] excludedTools: ["knowledge"] includeMcpJson: true includePowers: false mcpServers: postgres: command: npx args: ["-y", "@modelcontextprotocol/server-postgres"] env: DATABASE_URL: "${DATABASE_URL}" resources: - file://./ARCHITECTURE.md - skill://backend-patterns permissions: rules: - capability: shell match: ["npm *", "node *"] effect: allow welcomeMessage: "Ready to work on backend code." --- You are a backend developer focused on Node.js and TypeScript. Always use async/await. All database queries must be parameterized.

Tags vs Capabilities

V3 separates tool visibility from tool authorization into two distinct systems.

Tags (in the tools field) control which tools the agent can see and invoke. Use short category names — new tools added to a category become available automatically:

TagTools included
readread_file, read_files, list_directory, file_search, grep_search, code
writefs_write, str_replace, delete_file
shellexecute_bash, control_bash_process
webweb_fetch, web_search
subagentSubagent delegation tools
knowledgeKnowledge base tools
todo_listTask tracking tools
@mcpAll MCP server tools
@builtinAll built-in tools
*All tools (no filtering)

Capabilities (in the permissions field) control what those tools can do at invocation time — auto-approved, blocked, or requiring confirmation. They use capability names (fs_read, fs_write, shell, etc.) which don't map 1:1 to tags.

Example: tools: ["web"] gives the agent both web_fetch and web_search tools. But in permissions, these are separate capabilities — you can allow web_fetch for docs while deny-ing web_search.

New fields reference

FieldTypeDescription
excludedToolsstring[]Tools to exclude even if tools allows them
includeMcpJsonbooleanInclude workspace .kiro/settings/mcp.json servers
includePowersbooleanInclude IDE-installed powers
resourcesstring[]URIs to load into context: file://./path, skill://name
permissionsobjectInline policy rules (agent scope, supports all effects)
welcomeMessagestringCustom greeting on session start
hooksobjectCLI only — inline hook definitions (same schema as .kiro/hooks/)

Note: Kiro checks an agent's model: value against the available model list when the session starts. If it is unavailable, Kiro uses the saved default model when available, otherwise the service default.

Note: toolsSettings is removed in V3 — migrate per-tool rules to the unified permissions block. See Permissions migration →.

MCP server config

Supports stdio and HTTP transports. Stdio servers accept a timeout field (milliseconds). HTTP servers accept headers. Both expand environment variables at runtime using ${VAR} syntax.

Agent config migration is complete. If your agents used embedded hooks, continue to hooks migration →.

Page updated: September 11, 2026
Hooks migration
New features in 3.0