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
Sessions
Message controls
Prompt optimizer
Voice
Rich output & widgets
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. Crew
  3. Chat
  4. Message controls
View as Markdown

Message controls

View as Markdown

Chat isn't a one-way stream — every message and every reply has controls attached. Once you know them, you can iterate on complex prompts without starting over.

Send

The basics:

  • Enter: send the message
  • Shift+Enter: add a line break
  • Cmd+Shift+Enter (macOS) / Ctrl+Shift+Enter (Windows and Linux): run the prompt optimizer
  • @filename: search and attach from the active project
  • ./path or ../path: browse and attach from that directory
  • Cmd+Up (macOS) / Ctrl+Up, with the composer empty: edit your last message
  • ! <command>: review and run a shell command in the project terminal; see Chat

Quote a message

Hover a message and choose Quote, or right-click it and choose Quote message, to carry the whole message into your next send. A quote card appears in the composer. After you send, the card in the transcript jumps back to the original message when selected.

One quote is staged at a time. Quoting another message replaces it, and switching to another session drops it.

Steer or Queue while a turn is running

When the agent is working, the send button splits:

  • Steer delivers your message to the current turn
  • Queue stores it for the next turn

The selection is remembered per session and shared with that session's Side Chat. With Enter configured to send, Cmd+Enter on macOS or Ctrl+Enter elsewhere performs the opposite action once. If a steer cannot reach an active turn, Kiro Crew demotes it to a visible queue card instead of dropping it.

Interrupt

While the agent is streaming a response click ⏹ Stop on the tab header. The current turn is cancelled. Any partial response and completed tool calls are preserved; the next queued message runs next.

In Slack, the !stop command does the same.

Edit and resend

Hover any user message and click Edit. The message becomes editable in place.

  • Changing the text and pressing Enter replays the conversation from that point — everything after is discarded and regenerated
  • Cancelling leaves the conversation untouched
  • The original text is kept in local history so you can compare drafts

Use this to iterate on a prompt: send a first attempt, see how the agent responded, edit and refine.

Regenerate

Hover the last agent response and click ⟳ Regenerate to retry the turn.

Regenerated replies are stored as variants on the same message. Use the ◀ ▶ arrows on the reply to flip between attempts.

  • Variants share the same input message
  • Only the currently-displayed variant is part of the conversation the agent sees
  • Deleting a variant deletes it from the local history

Combine with model selection to compare responses across models: switch model, regenerate, flip variants.

Reply tables

Hover a table in an agent reply to show its actions. Widen spreads the table into the pane's spare width; the same control reads Narrow while the table is widened. Drag the edge of a header cell to resize that column. The copy-as-Markdown and copy-as-CSV actions sit beside it.

Hand a Side Chat answer to the main chat

When a Side Chat answer is complete, choose Add to main chat to place the answer in the main composer. Nothing is sent until you send it, so you can edit it first. If a side turn stops responding, stop it from the Side Chat.

Fork

Fork clones the current session into a new tab.

  • Fork with full context — the new tab starts from the current state with the entire conversation carried over
  • Fork tail-only — only the recent messages are carried over (useful when you want the context of the last exchange but not the whole thread)

The forked tab is fully independent from that point — messages sent in one don't reach the other.

Undo / redo tool calls

When a tool call completes, its result appears in the timeline. Hover the tool call:

  • ↶ Undo — for file writes and other reversible operations, restore the pre-tool state
  • ↷ Redo — reapply an undone operation
  • Copy result — copy the tool output to the clipboard

Some tool categories aren't undoable (execute_bash, network calls). Those show a disabled undo button.

Approve / reject tool calls

When approval is required (interactive mode, not auto or trusted):

  • Approve — run the tool call
  • Reject — refuse the tool call; the agent sees the rejection and can try a different approach
  • Trust this command — session-scoped auto-approval for this exact tool + args
  • Trust this tool — session-scoped auto-approval for the tool with any args
  • Yolo — global auto-approval for a configurable duration (6 hours by default)

More on trust levels in Security.

Question cards

Some tool calls — specifically AskUserQuestion — render as structured option cards rather than free-text responses. Click a card to answer; your choice is fed back to the agent as the tool result.

Slash commands

Type / at the start of a message to see the slash command menu:

CommandEffect
/agentSwitch or manage the active agent
/changelogShow the release changelog
/chatSave or load a chat session
/clearClear conversation history
/codeOpen code intelligence tools
/compactCompact conversation to free context
/contextManage context files and token usage
/editorCompose your prompt in an external editor
/exitExit the chat session

Full slash command reference: CLI reference.

Editing agent messages

You can also edit agent responses, but with a caveat: this is a local edit only — the LLM's understanding of the conversation still uses the original response until you /compact or the session is reset. Use this to correct a formatting issue in something you're going to copy out, not to change what the agent "thinks" it said.

Injected messages

Some messages arrive from automated sources — cron notifications, subagent completions, or workflow injections. These are marked in the UI:

  • Cron notification — a scheduled job sent a message that triggers an agent turn
  • Subagent completion — a background subagent finished and injected its result
  • Context injection — silent background context added by a hook or app

Injected messages are treated as automated input, not user input.

Widget events

Interactive mcwidgets can send events back to the session:

  • Widget JavaScript calls window.parent.postMessage({type: 'kirocrew:action', ...}, '*')
  • The parent session receives a [Widget action event] message
  • The agent can respond, update the widget, or trigger further tool calls

This lets you build small interactive UIs (buttons, forms, dashboards) that live inside the chat and drive further agent work.

Page updated: October 20, 2026
Sessions
Prompt optimizer