> ## Documentation Index
> Fetch the complete documentation index at: https://docs.weaveos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kiro

> Connect Kiro IDE to track AI-assisted development via S3 activity reports

Connect [Kiro](https://kiro.dev/) to track your team's AI-assisted development activity. Kiro is an AI-powered IDE by Amazon/AWS that exports per-user usage metrics as daily CSV files to Amazon S3. Weave ingests these reports to give you visibility into how your team uses Kiro.

## What's tracked

* **Inline suggestions** — Code suggestions displayed, accepted, and lines generated
* **Chat interactions** — Messages sent, interactions, and AI-generated code from chat
* **Inline chat** — Accepted inline chat suggestions, with their line additions and deletions
* **Code review** — Findings count, and code fixes accepted (count and lines)
* **Test generation** — Tests and lines accepted via `/test`
* **Dev command** — Code accepted via `/dev` (count and lines)

For the full list of 40+ metrics, see the [Kiro user activity report metrics](https://kiro.dev/docs/enterprise/monitor-and-track/user-activity/#legacy-user-activity-report-metrics) documentation.

## Prerequisites

* A [Kiro enterprise subscription](https://kiro.dev/docs/enterprise/getting-started/) with [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) configured
* AWS admin access to the [Kiro console](https://kiro.dev/docs/enterprise/settings/) to enable user activity reports
* An Amazon S3 bucket to receive activity report CSVs (see [bucket requirements](#s3-bucket-requirements) below)
* An IAM user with read access to the S3 bucket and IAM Identity Center permissions

## Setup

<Steps>
  <Step title="Create an S3 bucket for activity reports">
    Create an Amazon S3 bucket to hold the Kiro activity report CSV files. See [S3 bucket requirements](#s3-bucket-requirements) below for details on region, prefix, and bucket policy configuration.

    If you've already set up an S3 bucket for Kiro user activity reports, you can skip this step.
  </Step>

  <Step title="Enable Kiro user activity reports">
    In the AWS console, navigate to the Kiro console and enable user activity reports:

    1. Open the **Kiro console** in AWS
    2. Choose **Settings**
    3. Under **Kiro user activity reports**, choose **Edit**
    4. Toggle **Collect granular metrics per user**
    5. Enter the S3 URI for your bucket (e.g. `s3://my-bucket/user-activity-reports/`)

    For detailed instructions, see [Enabling user activity reports](https://kiro.dev/docs/enterprise/monitor-and-track/user-activity/#enable-csv-reports) in the Kiro documentation.

    <Note>
      You need the IAM permissions defined in [Allow administrators to configure Kiro](https://kiro.dev/docs/enterprise/iam/#policy-allow-administrators-to-configure-kiro-and-subscribe-users) to access these settings.
    </Note>
  </Step>

  <Step title="Create an IAM user for Weave">
    Create an IAM user that Weave will use to read the S3 activity reports and resolve user identities.

    1. Go to the [IAM console](https://console.aws.amazon.com/iam/)
    2. Create a new IAM user (e.g. `weave-kiro-reader`)
    3. Attach the [IAM policy](#iam-policy-for-weave) shown below

    The IAM user needs:

    * `s3:GetObject` and `s3:ListBucket` on the activity report bucket
    * `identitystore:ListUsers` and `identitystore:DescribeUser` to resolve Kiro user IDs to names and emails
  </Step>

  <Step title="Generate access keys">
    Generate access keys for the IAM user you created:

    1. Go to [IAM users](https://console.aws.amazon.com/iam#/users)
    2. Select the IAM user
    3. Go to **Security credentials** → **Access keys** → **Create access key**
    4. Choose **Third-party service** as the use case
    5. Copy the **Access key ID** and **Secret access key** — you'll need both for the next step
  </Step>

  <Step title="Find your Identity Store ID">
    Weave uses IAM Identity Center to map Kiro user IDs to names and emails.

    1. Go to the [IAM Identity Center console](https://console.aws.amazon.com/singlesignon/home)
    2. Choose **Settings**
    3. Under **Identity source**, find the **Identity Store ID** — it starts with `d-` followed by 10 characters (e.g. `d-1234567890`)
    4. Note the **Region** where your IAM Identity Center is configured
  </Step>

  <Step title="Configure in Weave">
    1. In Weave, go to **Data** → **Kiro** → **Connect**, then click **Configure S3**
    2. Enter the following details:
       * **S3 bucket name** — the bucket holding your Kiro activity reports
       * **S3 bucket region** — the AWS region of your bucket
       * **S3 bucket prefix** — the prefix you configured when enabling activity reports (e.g. `user-activity-reports/`)
       * **AWS access key ID** — from step 4
       * **AWS secret access key** — from step 4
       * **Identity store ID** — from step 5 (e.g. `d-1234567890`)
       * **Identity store region** — the AWS region of your IAM Identity Center
    3. Click **Save** — Weave will validate your credentials and bucket access
    4. Data will start syncing immediately after successful configuration
  </Step>

  <Step title="Optional: enable prompt logging">
    If you'd like Weave to also sync prompt logs (full inline suggestions and chat conversations), you can enable prompt logging in the Kiro console and configure a separate S3 bucket for it.

    See the [Kiro prompt logging documentation](https://kiro.dev/docs/enterprise/monitor-and-track/prompt-logging/) for setup instructions. In the Weave configuration form, **Enable prompt logging** is on by default for new configurations, so Weave syncs any prompt logs Kiro writes to the configured bucket. Turn it off if you don't want them synced. If prompt logs go to a separate bucket, choose **Use different bucket for prompt logs** and enter that bucket's details.
  </Step>
</Steps>

## S3 bucket requirements

The S3 bucket for Kiro user activity reports must meet these requirements (per the [Kiro documentation](https://kiro.dev/docs/enterprise/monitor-and-track/user-activity/#prepare-the-s3-bucket)):

* **Same region** as the [Kiro profile](https://kiro.dev/docs/enterprise/concepts/#kiro-profile) (created when you first subscribed users)
* **Same AWS account** where users are subscribed — cross-account buckets are not supported
* **Include a prefix** (subfolder) — Kiro cannot write reports to the bucket root
* **Bucket policy** granting Kiro write access — apply the following policy, replacing `bucketName`, `prefix`, `accountId`, and region in the ARN:

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "KiroLogsWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "q.amazonaws.com"
      },
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::bucketName/prefix/*"],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:codewhisperer:us-east-1:111122223333:*"
        }
      }
    }
  ]
}
```

<Note>
  The service principal `q.amazonaws.com` and the `codewhisperer` ARN prefix are correct — Kiro shares infrastructure with Amazon Q Developer and uses these legacy identifiers.
</Note>

Kiro writes activity reports to the following path structure:

```
s3://bucket/prefix/AWSLogs/accountId/KiroLogs/by_user_analytic/Region/year/month/day/00/accountId_by_user_analytic_timestamp.csv
```

## IAM policy for Weave

Attach the following policy to the IAM user you create for Weave. Replace `bucketName` and `prefix` with your values:

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "S3ReadAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::bucketName",
        "arn:aws:s3:::bucketName/prefix/*"
      ]
    },
    {
      "Sid": "IdentityStoreAccess",
      "Effect": "Allow",
      "Action": [
        "identitystore:ListUsers",
        "identitystore:DescribeUser"
      ],
      "Resource": "*"
    }
  ]
}
```

If you enable prompt logging with a separate S3 bucket, add `s3:GetObject` and `s3:ListBucket` permissions for that bucket as well.

## Metrics enabled

Once connected, you can track:

* **[AI code LOC](/metrics/ai-code-loc)** — Lines generated by Kiro
* **[AI output percentage](/metrics/ai-output-percentage)** — Portion of output from Kiro
* **[AI efficiency index](/metrics/ai-efficiency-index)** — Impact on productivity
* **[AI tool costs](/metrics/ai-tool-costs)** — seat-based Kiro cost

## Cost tracking

Kiro activity reports track usage, not dollar cost, so Kiro cost is **seat-based**. Enter your Kiro subscription in **Settings** → **Financial** → **Tool subscription costs** (seats × cost per user), and Weave allocates that flat cost across the engineers active in Kiro during each period.

## Sync frequency

Kiro generates activity report CSVs once per day at 02:00 UTC. Weave syncs new reports periodically throughout the day, so expect data to appear within a few hours of the daily report being generated.

## Troubleshooting

<AccordionGroup>
  <Accordion icon="key" title="Credentials validation failing">
    If Weave fails to validate your AWS credentials:

    1. Verify the **AWS access key ID** and **AWS secret access key** are correct and active
    2. Ensure the IAM user has the required permissions (see [IAM policy](#iam-policy-for-weave))
    3. Check that the S3 bucket name and region are correct
    4. Confirm the bucket policy grants write access to the `q.amazonaws.com` service principal
    5. Try regenerating the access keys if the original ones may have been compromised or deactivated
  </Accordion>

  <Accordion icon="chart-line" title="No data appearing after setup">
    If no activity data appears in Weave:

    1. Verify that **Kiro user activity reports** are enabled in the Kiro console under **Settings**
    2. Confirm users have been active in Kiro — reports are only generated for days when users interact with Kiro
    3. Check that at least one daily report CSV has been written to your S3 bucket (reports generate at 02:00 UTC)
    4. Verify the **S3 bucket prefix** in Weave matches what you configured in the Kiro console
    5. Wait up to 24 hours for the first report to be generated after enabling the setting
  </Accordion>

  <Accordion icon="users" title="Identity Store errors">
    If Weave can't resolve Kiro user IDs to names and emails:

    1. Verify the **Identity store ID** is correct. It starts with `d-` followed by 10 characters
    2. Check the **Identity store region** matches where your IAM Identity Center is configured
    3. Ensure the IAM user has `identitystore:ListUsers` and `identitystore:DescribeUser` permissions
    4. Confirm your IAM Identity Center has users provisioned — the Identity Store must contain the same users who are subscribed to Kiro
  </Accordion>

  <Accordion icon="user-slash" title="Missing users in reports">
    If some team members aren't appearing in Weave:

    1. Verify the users have active [Kiro subscriptions](https://kiro.dev/docs/enterprise/subscribe/)
    2. Ensure users are signing in via **IAM Identity Center** (not AWS Builder ID) — users on Builder ID won't appear in organization-level reports
    3. Check that the missing users have been active in Kiro during the reporting period
    4. If users are subscribed across multiple AWS accounts, note that Weave supports one Kiro configuration per organization, so it reads reports only for that configuration's AWS account (cross-account is not supported)
  </Accordion>
</AccordionGroup>

## Data privacy

Weave syncs only aggregate usage metrics from Kiro activity reports:

* Suggestion counts and acceptance rates
* Lines of code generated and accepted
* Chat message counts and interaction counts
* Code review, test generation, and `/dev` acceptance counts

**We never access:**

* Your source code content
* AI prompts or chat conversations (unless you explicitly enable prompt logging)
* Individual code suggestions or completions
* File names or project structure

<Note>
  If you enable prompt logging in Weave, full prompt and response content will be synced from the prompt log S3 bucket. This is controlled by your organization's Kiro admin and can be disabled at any time.
</Note>

## Related integrations

* [Cline](/ai-tools/cline) — VS Code extension AI assistant
* [Cursor](/ai-tools/cursor) — AI IDE alternative
* [Windsurf](/ai-tools/windsurf) — AI IDE alternative
* [Claude Code](/ai-tools/claude-code) — CLI-based AI assistant


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.