Loading image...Kiro

Product

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

For

  • Enterprise
  • Startups
  • Students

Community

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

Resources

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

Social

Site TermsLicenseResponsible AI PolicyLegalPrivacy PolicyCookie Preferences
Kiro
  • Agents
  • Enterprise
  • Pricing
  • Docs
SIGN INDOWNLOADS
Kiro

Get Started

InstallationAuthenticationYour first project

Models

OverviewAvailable modelsReasoning effortAWS GovCloud (US) models

Features

How Kiro worksLocal command sandboxACP integrations
Specs
Steering
Hooks
MCP
Permissions
Custom agents
Workflows
Agent Skills
Powers
Cloud sessionsMemoryCompactionKiroignoreCheckpoints 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 V3
Setup & First Run
Terminal UI
Chat
Fullscreen modeVoice 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 modeScheduleConfiguration 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 updatesTLS inspection compatibilityBillingIAMSupported regions
AWS GovCloud (US)

Privacy and Security

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

Guides

OverviewRunning Kiro in the cloud
Language support
Learn by playing

Migration

Migrating from Q DeveloperMigrating from VSCodeUpgrading from Q CLI
  1. Docs
  2. Commands and Reference
  3. Settings
View as Markdown

Settings

View as Markdown

Kiro CLI provides extensive customization through settings. You can configure everything from telemetry to chat behavior, key bindings, and feature toggles.

Accessing settings

Manage settings directly from the command line. Settings saved through interactive /settings menus are available through kiro-cli settings as well; both surfaces use the CLI settings stored in ~/.kiro/settings/cli.json.

bash
# List all configured settings kiro-cli settings list # List all available settings with descriptions kiro-cli settings list --all # View a specific setting kiro-cli settings telemetry.enabled # Set a setting kiro-cli settings telemetry.enabled true # Delete a setting kiro-cli settings --delete chat.defaultModel # Open settings file in editor kiro-cli settings open

Settings scopes

Without a scope flag, kiro-cli settings writes or deletes global settings in ~/.kiro/settings/cli.json. Pass --workspace to store a value for the current project instead:

bash
# Set a global default kiro-cli settings --global chat.defaultAgent default # Override it in the current workspace kiro-cli settings --workspace chat.defaultAgent my-project-agent

When both scopes define a workspace-overridable setting, the workspace value takes precedence in that project's terminal UI sessions. Delete the workspace value to reveal the global value again. Some settings are global-only — including chat.uiMode and chat.terminalTitle — and cannot be overridden per workspace.

Output formats

bash
# Plain text (default) kiro-cli settings list # JSON kiro-cli settings list --format json # Formatted JSON kiro-cli settings list --format json-pretty

Settings reference

Telemetry and privacy

SettingTypeDescriptionExample
telemetry.enabledbooleanEnable/disable telemetry collectionkiro-cli settings telemetry.enabled true
telemetryClientIdstringClient identifier for telemetrykiro-cli settings telemetryClientId "client-123"

Chat interface

SettingTypeDescriptionExample
chat.defaultModelstringDefault AI model for conversationskiro-cli settings chat.defaultModel "claude-sonnet-4.6"
chat.defaultAgentstringDefault agent configurationkiro-cli settings chat.defaultAgent "my-agent"
chat.diffToolstringExternal diff tool for viewing code changes (classic only)kiro-cli settings chat.diffTool "delta"
chat.greeting.enabledbooleanShow greeting message on chat startkiro-cli settings chat.greeting.enabled false
chat.editModebooleanEnable Vi edit mode (classic only)kiro-cli settings chat.editMode true
chat.enableNotificationsbooleanEnable desktop notificationskiro-cli settings chat.enableNotifications true
chat.notificationMethodstringNotification method: auto, bel, or osc9kiro-cli settings chat.notificationMethod "osc9"
chat.disableMarkdownRenderingbooleanDisable markdown formatting (classic only)kiro-cli settings chat.disableMarkdownRendering false
chat.disableWrapbooleanEmit chat output without hard line breaks for clean copy-paste; terminal soft-wrap still applies.kiro-cli settings chat.disableWrap true
chat.disableAutoCompactionbooleanDisable automatic conversation summarizationkiro-cli settings chat.disableAutoCompaction true
compaction.excludeMessagesnumberMinimum message pairs to retain during compactionkiro-cli settings compaction.excludeMessages 2
compaction.excludeContextWindowPercentnumberMinimum % of context window to retain during compactionkiro-cli settings compaction.excludeContextWindowPercent 2
chat.enablePromptHintsbooleanShow startup hints with tips and shortcuts (v1.26.0+, default: true)kiro-cli settings chat.enablePromptHints false
chat.enableHistoryHintsbooleanShow conversation history hints (classic only)kiro-cli settings chat.enableHistoryHints true
chat.uiModestringUI mode: structured for classic sessions or tui for public modern sessions; lite is not generally availablekiro-cli settings chat.uiMode "tui"
chat.historyModestringPrompt history scope: session (per-session, default) or global (shared across sessions). Set via /settings history; applies on next sessionkiro-cli settings chat.historyMode global
chat.sessionDashboard.scopestringV3 /sessions directory scope: current lists sessions from the current directory, all lists every workspace (default: current). Kiro updates it when you toggle the current workspace only filterkiro-cli settings chat.sessionDashboard.scope all
chat.sessionDashboard.indexResponsesboolean/sessions search scope: true for Prompts and agent responses, false for Prompts only (default: true). Titles and your prompts are always indexed and tool output never is. Set via /settings → Session searchkiro-cli settings chat.sessionDashboard.indexResponses false
chat.uistringTerminal UI implementation: tui (default) or classickiro-cli settings chat.ui "classic"
chat.disableGranularTrustbooleanDisable tiered trust options for tool approvals (terminal UI only)kiro-cli settings chat.disableGranularTrust true
chat.autoExpandToolOutputbooleanAuto-expand tool output instead of collapsed previews. File-write cards otherwise show up to 40 diff rows; press Ctrl+O or enable this setting to reveal the complete diff while it continues updatingkiro-cli settings chat.autoExpandToolOutput true
chat.modelDefaultsobjectPer-model default settings (e.g., effort level) that apply across new sessionsSee Effort
chat.enableContextUsageIndicatorbooleanShow context usage percentage in prompt (classic only)kiro-cli settings chat.enableContextUsageIndicator true
Info

Once the model list is available, a new V3 terminal UI session checks chat.defaultModel. If that model is unavailable, Kiro uses the service-provided default and shows a notice. The setting is not rewritten. Choose an ID from Available models or /model tab completion. A workspace value in .kiro/settings/cli.json overrides the global value in ~/.kiro/settings/cli.json; /model set-current-as-default changes only the global value.

Display and accessibility (terminal UI)

These settings control how the terminal UI renders output. You can toggle animation, ASCII art, icons, screen reader support, and thinking display from within a session with /settings display.

SettingTypeDefaultDescriptionExample
chat.outputStylestringAgent defaultV3 response style selected under /settings display; a workspace value takes precedence over the global valuekiro-cli settings chat.outputStyle concise
chat.allowAnimationsbooleantrueAnimated spinners and shimmers. When false, indicators show static frameskiro-cli settings chat.allowAnimations false
chat.allowAsciiArtbooleantrueUnicode/braille symbols and box-drawing. When false, falls back to plain ASCIIkiro-cli settings chat.allowAsciiArt false
chat.allowIconsbooleantrueStatus indicator icons (●, ○, ⚠). When false, uses text-only labelskiro-cli settings chat.allowIcons false
chat.showThinkingbooleantrueShow the agent's reasoning (thinking) blocks in chat output (v2.5.0+). Startup-onlykiro-cli settings chat.showThinking false
chat.terminalTitlebooleanfalseSet the terminal window title: a name given with /title, else the session's title, else the workspace folder name. In Kiro CLI 2.33 or later, a V3 session shows its session title; before 2.33, a V3 session fell back to the workspace folder name. Global only; also toggled from /settings display → Terminal titlekiro-cli settings chat.terminalTitle true
chat.preserveScrollbackbooleantruePreserve terminal history when the interface redraws. Set to false to restore clear-and-repaint behaviorkiro-cli settings chat.preserveScrollback false
chat.screenReaderstringautoFull terminal UI screen reader support: auto, on, or off. auto turns on only when VoiceOver is detected on a local Mac. Global only. When active, IME input may move. See Screen reader supportkiro-cli settings chat.screenReader on
Info

Setting the KIRO_ASCII_MODE=1 environment variable forces ASCII mode regardless of chat.allowAsciiArt. See Thinking display for more on chat.showThinking. The Terminal title toggle in /settings display writes chat.terminalTitle; see In-session settings for the toggle.

Busy indicators

The terminal UI shows a busy indicator while Kiro works. Set chat.enableCustomSpinnerVerbs to true to use the verb pool in chat.spinnerVerbs.

SettingTypeDefaultDescription
chat.enableCustomSpinnerVerbsbooleanfalseApply the custom verb pool from chat.spinnerVerbs
chat.spinnerVerbsobjectNot setA verb pool with append or replace mode

Run kiro-cli settings open, then merge these properties into the top-level object in ~/.kiro/settings/cli.json. Do not replace existing settings:

json
{ "chat.enableCustomSpinnerVerbs": true, "chat.spinnerVerbs": { "mode": "append", "verbs": [ "Checking...", "Reading documentation <https://docs.example.com>" ] } }

Use append to add your verbs to Kiro's built-in pool. Use replace to use only your verbs. An empty replace list falls back to the built-in busy indicator. A verb can end with a space and an http or https URL in angle brackets. Kiro shows the verb text and makes it a terminal hyperlink when the terminal supports hyperlinks.

Knowledge base

SettingTypeDescriptionExample
chat.enableKnowledgebooleanEnable knowledge base functionalitykiro-cli settings chat.enableKnowledge true
chat.enableCodeIntelligencebooleanEnable V3 code intelligencekiro-cli settings chat.enableCodeIntelligence true
knowledge.defaultIncludePatternsarrayDefault file patterns to includekiro-cli settings knowledge.defaultIncludePatterns '["*.py", "*.js"]'
knowledge.defaultExcludePatternsarrayDefault file patterns to excludekiro-cli settings knowledge.defaultExcludePatterns '["*.log", "node_modules"]'
knowledge.maxFilesnumberMaximum files for indexingkiro-cli settings knowledge.maxFiles 1000
knowledge.chunkSizenumberText chunk size for processingkiro-cli settings knowledge.chunkSize 512
knowledge.chunkOverlapnumberOverlap between text chunkskiro-cli settings knowledge.chunkOverlap 50
knowledge.indexTypestringType of knowledge indexkiro-cli settings knowledge.indexType "fast"
Info

V3 enables knowledge and code intelligence by default. Set chat.enableKnowledge or chat.enableCodeIntelligence to false to turn either tool off. The V1 and V2 engines keep their existing knowledge behavior.

Key bindings (classic only)

These key bindings apply to the classic interface only and have no effect in the terminal UI.

SettingTypeDescriptionExample
chat.skimCommandKeycharKey for fuzzy search commandkiro-cli settings chat.skimCommandKey "f"
chat.autocompletionKeycharKey for autocompletion hint acceptancekiro-cli settings chat.autocompletionKey "Tab"
chat.tangentModeKeycharKey for tangent mode togglekiro-cli settings chat.tangentModeKey "t"
chat.delegateModeKeycharKey for delegate commandkiro-cli settings chat.delegateModeKey "d"

Key bindings (terminal UI)

Override the terminal UI shortcuts for cancelling a response, closing overlay menus, and quitting the session. Values use ctrl+, shift+, and alt+/meta+ modifiers with a single key (for example ctrl+shift+q, esc). Invalid values fall back to the built-in default.

SettingTypeDefaultDescriptionExample
chat.keybindings.cancelStreamstringescCancel the current agent response while it streamskiro-cli settings chat.keybindings.cancelStream "ctrl+x"
chat.keybindings.closeMenustringescClose overlay panels and pickerskiro-cli settings chat.keybindings.closeMenu "ctrl+["
chat.keybindings.quitstringctrl+cExit the chat sessionkiro-cli settings chat.keybindings.quit "ctrl+shift+q"

Tool Search

V3 loads MCP tools on demand by default. It reads saved toolSearch.* values in interactive runs. Kiro CLI 2.31.1 and later also applies them to non-interactive V3 runs. V2 remains opt-in. See Tool Search for details.

SettingTypeDescriptionExample
toolSearch.enabledbooleanControl Tool Search. V2 default: false. V3 loads tools on demand when no value is savedkiro-cli settings toolSearch.enabled true
toolSearch.minPctnumberActivate when MCP tool specs exceed this context-window percentage. V2 default: 5. V3 reads this only when toolSearch.enabled is also savedkiro-cli settings toolSearch.minPct 0
toolSearch.minTokensnumberActivate when MCP tool specs exceed this token count. V2 default: 50000. V3 reads this only when toolSearch.enabled is also savedkiro-cli settings toolSearch.minTokens 0

Feature toggles

SettingTypeDescriptionExample
chat.enableThinkingbooleanEnable the thinking tool for complex reasoning (distinct from chat.showThinking, which displays the model's own reasoning blocks)kiro-cli settings chat.enableThinking true
chat.enableTangentModebooleanEnable tangent mode feature (classic only)kiro-cli settings chat.enableTangentMode true
introspect.tangentModebooleanAuto-enter tangent mode for introspect (classic only)kiro-cli settings introspect.tangentMode true
chat.enableTodoListbooleanEnable the todo list feature in Classic; V3 does not provide todo_list, so this setting has no effect therekiro-cli settings chat.enableTodoList true
chat.enableCheckpointbooleanEnable checkpoint feature (classic only)kiro-cli settings chat.enableCheckpoint true
chat.enableDelegatebooleanEnable delegate tool (classic only)kiro-cli settings chat.enableDelegate true
chat.enableWorkflowsbooleanEnable declarative workflows when available for your account; restart Kiro CLI after changing itkiro-cli settings chat.enableWorkflows true
chat.workflowLaunchstringChoose when V3 starts Workflows: when-asked (default), large-tasks, or delegate-allkiro-cli settings chat.workflowLaunch large-tasks
chat.enableAutoAgentUpgradebooleanUpgrade V2-format agents in the scanned agent directories to the V3 format when a V3 session starts. In Kiro CLI 2.37 or later, unset means on; an explicit false turns it off, and interactive V3 launches then show a notice while any agents still need upgrading. Global only; a workspace's .kiro/settings/cli.json cannot override itkiro-cli settings chat.enableAutoAgentUpgrade false
app.disableAutoupdatesbooleanDisable background auto-updateskiro-cli settings app.disableAutoupdates true
app.warnOnElevatedPrivilegesbooleanShow a warning when Kiro CLI starts as root (macOS and Linux) or as Administrator (Windows). This setting is on by default and is global; a workspace's .kiro/settings/cli.json cannot override itkiro-cli settings app.warnOnElevatedPrivileges false

API and service

SettingTypeDescriptionExample
api.timeoutnumberOverall timeout in seconds for a streaming response (default 3600). Counts the full duration of the response, so the hour-long default gives long responses room to finish; set a lower value to enforce a shorter limitkiro-cli settings api.timeout 600
api.streamIdleSoftTimeoutnumberSeconds of response-stream silence before a stall warning is shown (default 60)kiro-cli settings api.streamIdleSoftTimeout 120
api.streamIdleHardTimeoutnumberSeconds of response-stream silence before the stalled request is cancelled (default 300)kiro-cli settings api.streamIdleHardTimeout 600
api.subagentTimeoutnumberSeconds a subagent can sit idle before it times out, instead of stalling the parent turn (default 3600)kiro-cli settings api.subagentTimeout 1800

Transient request failures — throttling, 5xx errors, and connection drops (including mid-stream resets) — are retried automatically with backoff; no setting is required.

Model context protocol (MCP)

SettingTypeDescriptionExample
mcp.initTimeoutnumberMCP server initialization timeout in milliseconds (default 5000)kiro-cli settings mcp.initTimeout 10000
mcp.noInteractiveTimeoutnumberMCP initialization timeout in milliseconds for non-interactive runs (default 30000)kiro-cli settings mcp.noInteractiveTimeout 60000
mcp.loadedBeforebooleanTrack previously loaded MCP serverskiro-cli settings mcp.loadedBefore true

Agent Client Protocol (ACP)

SettingTypeDescriptionExample
acp.agentEnginestringEngine for kiro-cli acp: v1, v2, or v3 (Kiro CLI 2.36 or later). The --agent-engine flag overrides it; v2 when neither is set. chat.agentEngine does not apply to kiro-cli acp. See Choose the enginekiro-cli settings acp.agentEngine v3

Common configuration examples

Basic setup

bash
# Enable telemetry kiro-cli settings telemetry.enabled true # Set default chat model kiro-cli settings chat.defaultModel "claude-sonnet-4.6" # Disable greeting message kiro-cli settings chat.greeting.enabled false

Knowledge base configuration

bash
# Enable knowledge base kiro-cli settings chat.enableKnowledge true # Set file patterns to include kiro-cli settings knowledge.defaultIncludePatterns '["*.py", "*.js", "*.md", "*.txt"]' # Set file patterns to exclude kiro-cli settings knowledge.defaultExcludePatterns '["*.log", "node_modules", ".git", "*.pyc"]' # Set maximum files to index kiro-cli settings knowledge.maxFiles 2000

Enable experimental features

bash
# Enable thinking tool kiro-cli settings chat.enableThinking true # Enable tangent mode kiro-cli settings chat.enableTangentMode true # Enable todo lists kiro-cli settings chat.enableTodoList true # Enable checkpoints kiro-cli settings chat.enableCheckpoint true # Configure key bindings kiro-cli settings chat.tangentModeKey "t" kiro-cli settings chat.delegateModeKey "d"

Performance tuning

bash
# Cap streaming responses at 10 minutes instead of the 60-minute default kiro-cli settings api.timeout 600 # Give slow connections more room before a stall warning kiro-cli settings api.streamIdleSoftTimeout 120 # Adjust knowledge base chunk size kiro-cli settings knowledge.chunkSize 1024 # Disable auto-compaction for long conversations kiro-cli settings chat.disableAutoCompaction true

Troubleshooting settings

Invalid setting values

Boolean values: Use true or false (lowercase)

bash
kiro-cli settings telemetry.enabled true # ✓ Correct kiro-cli settings telemetry.enabled True # ✗ Wrong

Array values: Use JSON format with single quotes

bash
kiro-cli settings knowledge.defaultIncludePatterns '["*.py", "*.js"]' # ✓ Correct

String values: Use quotes for strings with spaces

bash
kiro-cli settings chat.defaultModel "claude-sonnet-4.6" # ✓ Correct

Resetting settings

Delete individual settings:

bash
kiro-cli settings --delete setting.name

Open settings file for manual editing:

bash
kiro-cli settings open

View current settings to identify issues:

bash
kiro-cli settings list --all

Settings file issues

If the settings file becomes corrupted:

  1. Back up current settings:

    bash
    kiro-cli settings list --format json > backup.json
  2. Open the settings file:

    bash
    kiro-cli settings open
  3. Verify JSON syntax or restore from backup

Settings file location

Settings are stored in ~/.kiro/settings/cli.json.

You can edit this file directly, but using kiro-cli settings commands is recommended for validation.

Environment variables

VariableDescription
KIRO_HOMESet an absolute path to keep separate Kiro profiles, such as work and personal. In V3, it overrides the global Kiro directory for configuration, sign-ins, sessions, and agent state. A filesystem root, your home directory, one of its ancestors, or a relative path falls back to ~/.kiro.
KIRO_LOG_NO_COLORSet to 1 to disable colored log output
NO_COLORSet to any value to disable all color output in the terminal UI
KIRO_SCREEN_READERSet to auto, on, or off to override chat.screenReader for one launch
KIRO_ACP_RECORD_PATHPath to a JSONL file for recording TUI ACP wire traffic. Useful for debugging agent communication protocol issues.
KIRO_CLI_TOOL_SEARCH_MATCHING_THRESHOLDMinimum relevance score for V2 Tool Search keyword results (default: 1.5)

Next steps

  • Configure custom agents
  • Workflows
  • Set up MCP servers
  • Configure custom diff tools
  • Enable experimental features
  • CLI Commands Reference
Page updated: November 2, 2026
Exit codes
Billing