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
  • 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
CompactionKiroignoreCheckpoints 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
Headless modeACPAuto complete
Experimental
2.x reference

Crew

Quick startInstallationRunning 24/7
Chat
Agent Capabilities
Features
Subagents
Scheduling
Artifacts
Multi-instance
Task Runner
Memory
Knowledge
Snapshot & restore
Interfaces
Apps
ConfigurationSecurityTroubleshooting

Web - Preview

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

Mobile - Preview

Overview

Commands and Reference

CLI commandsSlash commandsBuilt-in toolsExit codesSettingsIDE keyboard shortcuts

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
Subscribe 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. Crew
  3. Features
  4. Artifacts

Web / Artifact Deploy


Ship what the agent built. Artifact Deploy takes a kind: "webapp" artifact from your library and puts it live at a global public HTTPS URL — in your own AWS account, with a default TTL, automatic cleanup, and a promote-to-persistent path.

Crew orchestrates the deploy; your account pays only for what the site actually serves.

The 4-step flow

  1. Enable the Artifact Deploy app (App Store → Artifact Deploy), open it from the sidebar, and register an AWS profile (a named profile from ~/.aws/config). Click Verify to confirm access.
  2. Ask the agent to build something — apps saved with kind: "webapp" appear in the Artifacts gallery with a live local preview.
  3. Click Deploy on the artifact card. A deploy session opens; the agent proposes a plan (resources, region, cost estimate); you confirm in the console.
  4. You get a CloudFront URL. The card flips to Live with the link, TTL countdown, architecture summary, and a Tear down button.

What gets deployed

Three tiers, chosen by the agent based on the artifact's needs:

TierResources in your accountExample
StaticS3 (per-site prefix) + shared CloudFront distributionLanding page, three.js demo
Fullstack+ Lambda Function URL behind /api/*API-backed demo
Stateful+ DynamoDB tableApp with persistence

The base stack

The first deploy in an account creates a shared base stack (kirocrew-deploy-base: S3 bucket + CloudFront distribution). This takes ~5–15 min while CloudFront propagates globally.

Every subsequent deploy reuses the base stack and completes in seconds.

TTL and the reaper

ModeBehavior
Finite TTL (default 72h)Requires the reaper stack (install-reaper.sh) — an in-account Lambda that removes expired deployments. Without it, finite-TTL deploys are refused (409).
Persistent (ttl_hours: 0)No reaper required. Tear down manually from the card or console.

The reaper only ever touches resources that carry the kirocrew:site + kirocrew:managed tags and match the managed naming scheme. It cannot delete anything else in your account.

The artifact card

Every artifact's card in the dashboard renders one of these states:

  • Not deployed — Deploy button + AWS profile picker
  • Deploying — progress log with resource creation events
  • Live — URL, TTL countdown, architecture rows, cost pills, Tear down button
  • Expired — tombstone card + Redeploy button

Live preview

The card renders your app inside a browser-framed preview. It prefers the local copy (served through a token-gated gateway channel, sandboxed, works even before deploying). Deployed sites can render the remote CloudFront page directly when the gateway confirms it's framable.

The preview channel is deny-by-default: token-gated, sandboxed to an opaque origin, path-traversal and symlink hardened, and every response is scanned so credential-bearing files are refused rather than served.

Cost pills

The card shows what-if traffic scenarios:

1,000 views · $0.05 100,000 views · $5.00

These are estimates, not a bill. You pay only for actual usage. Estimates are labelled explicitly to avoid confusion.

The Artifact Deploy console

Sidebar → Artifact Deploy. One place for everything deployed:

SectionWhat it does
ProfilesRegister / create AWS profiles, set the default, Verify access (STS read — Crew never stores credentials)
StatsProfiles, active deployments, ready-to-deploy artifacts, estimated cost (labelled not a bill)
FleetEvery active deployment: URL, TTL, profile, health, tear down / persist
SetupIAM policy generator + reaper install guidance

Security model

Three invariants hold:

  1. Crew never writes IAM. The deploy policy and permissions boundary are generated for you, but you apply them in your own account. Any error that needs an operator action fails loudly with the exact command to run.
  2. Tag-gated mutations. Deploy actions only apply to resources tagged kirocrew:managed=true. The reaper enforces the same on cleanup.
  3. Deny-by-default preview. The local preview channel is token-gated and sandboxed. Path traversal, symlinks, and credential-bearing files are refused.

AWS setup

Before your first deploy:

bash
# 1. Register the AWS profile from ~/.aws/config in the Artifact Deploy console # 2. Apply the generated IAM policy to that profile (the console shows the command) # 3. Install the reaper stack in each region you'll deploy to ./install-reaper.sh --profile my-profile --region us-east-1

The IAM policy generator produces a least-privilege policy scoped to kirocrew:managed=true tagged resources. Apply it yourself; Crew won't do it for you.

Tearing down

Every deployed artifact card has a Tear down button. It:

  1. Removes the S3 objects under the site's prefix
  2. Removes the CloudFront invalidation
  3. Removes any Lambda / DynamoDB tier resources
  4. Marks the deploy expired

For persistent deploys (ttl_hours: 0), this is the only way to remove them — the reaper doesn't touch persistent sites.

Promote to persistent

For a deploy you want to keep:

  • Card menu → Promote to persistent
  • The reaper skips it on future sweeps
  • The card no longer shows a TTL countdown; only the manual Tear down button remains

Redeploying

If a deploy expired or you want to update it:

  • Expired — the card shows a Redeploy button
  • Live — deploy again from the artifact card; existing site is updated in place (S3 objects replaced, CloudFront invalidated)

Troubleshooting

SymptomCause / fix
Finite-TTL deploy returns 409Reaper stack missing — run install-reaper.sh for that profile/region, or use ttl_hours: 0
Blank remote preview on the cardDeployed site's headers pre-date the current base stack. Any next deploy updates the stack in place; until then, the card shows the status fallback with a plain link
Card stuck on "Not deployed" after a script deployScript-path deploys don't auto-update the artifact yet — ask the agent to back-fill the deploy metadata (the audited API path does this automatically)

Not the same as artifacts

Artifact Deploy is one thing you can do with artifacts. Every artifact — not just webapps — has a stable identity, versions, and a live preview. See Artifacts & widgets for the model.

Page updated: August 4, 2026
Scheduling
Multi-instance