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
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 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. 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:

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

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-3-sonnet"
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 variant to usekiro-cli settings chat.uiMode "compact"
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.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 collapsing (terminal UI only)kiro-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

Display and accessibility (terminal UI)

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

SettingTypeDefaultDescriptionExample
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.preserveScrollbackbooleantruePreserve terminal history when the interface redraws. Set to false to restore clear-and-repaint behaviorkiro-cli settings chat.preserveScrollback false
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 feature is toggled from /settings display → Terminal title (not available as a CLI setting).

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
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"

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

Configure on-demand MCP tool discovery. See Tool Search for details.

SettingTypeDescriptionExample
toolSearch.enabledbooleanEnable Tool Search for on-demand MCP tool discovery (default: false)kiro-cli settings toolSearch.enabled true
toolSearch.minPctnumberActivate when MCP tool specs exceed this % of context window (default: 5)kiro-cli settings toolSearch.minPct 0
toolSearch.minTokensnumberActivate when MCP tool specs exceed this token count (default: 50000)kiro-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 todo list feature (classic only)kiro-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
app.disableAutoupdatesbooleanDisable background auto-updateskiro-cli settings app.disableAutoupdates true

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

Common configuration examples

Basic setup

bash
# Enable telemetry kiro-cli settings telemetry.enabled true # Set default chat model kiro-cli settings chat.defaultModel "claude-3-sonnet" # 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-3-sonnet" # ✓ 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_HOMEOverrides the ~/.kiro directory used for global agents, prompts, skills, steering, settings, and sessions. Useful for keeping multiple independent Kiro profiles on the same machine.
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_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 Tool Search keyword results (default: 1.5)

Next steps

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