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)
Prerequisites
- A Kiro enterprise subscription with AWS IAM Identity Center configured
- AWS admin access to the Kiro console to enable user activity reports
- An Amazon S3 bucket to receive activity report CSVs (see bucket requirements below)
- An IAM user with read access to the S3 bucket and IAM Identity Center permissions
Setup
1
Create an S3 bucket for activity reports
Create an Amazon S3 bucket to hold the Kiro activity report CSV files. See 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.
2
Enable Kiro user activity reports
In the AWS console, navigate to the Kiro console and enable user activity reports:
- Open the Kiro console in AWS
- Choose Settings
- Under Kiro user activity reports, choose Edit
- Toggle Collect granular metrics per user
- Enter the S3 URI for your bucket (e.g.
s3://my-bucket/user-activity-reports/)
You need the IAM permissions defined in Allow administrators to configure Kiro to access these settings.
3
Create an IAM user for Weave
Create an IAM user that Weave will use to read the S3 activity reports and resolve user identities.
- Go to the IAM console
- Create a new IAM user (e.g.
weave-kiro-reader) - Attach the IAM policy shown below
s3:GetObjectands3:ListBucketon the activity report bucketidentitystore:ListUsersandidentitystore:DescribeUserto resolve Kiro user IDs to names and emails
4
Generate access keys
Generate access keys for the IAM user you created:
- Go to IAM users
- Select the IAM user
- Go to Security credentials → Access keys → Create access key
- Choose Third-party service as the use case
- Copy the Access key ID and Secret access key — you’ll need both for the next step
5
Find your Identity Store ID
Weave uses IAM Identity Center to map Kiro user IDs to names and emails.
- Go to the IAM Identity Center console
- Choose Settings
- Under Identity source, find the Identity Store ID — it starts with
d-followed by 10 characters (e.g.d-1234567890) - Note the Region where your IAM Identity Center is configured
6
Configure in Weave
- In Weave, go to Data → Kiro → Connect, then click Configure S3
- 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
- Click Save — Weave will validate your credentials and bucket access
- Data will start syncing immediately after successful configuration
7
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 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.
S3 bucket requirements
The S3 bucket for Kiro user activity reports must meet these requirements (per the Kiro documentation):- Same region as the 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:
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.IAM policy for Weave
Attach the following policy to the IAM user you create for Weave. ReplacebucketName and prefix with your values:
s3:GetObject and s3:ListBucket permissions for that bucket as well.
Metrics enabled
Once connected, you can track:- AI code LOC — Lines generated by Kiro
- AI output percentage — Portion of output from Kiro
- AI efficiency index — Impact on productivity
- 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
Credentials validation failing
Credentials validation failing
If Weave fails to validate your AWS credentials:
- Verify the AWS access key ID and AWS secret access key are correct and active
- Ensure the IAM user has the required permissions (see IAM policy)
- Check that the S3 bucket name and region are correct
- Confirm the bucket policy grants write access to the
q.amazonaws.comservice principal - Try regenerating the access keys if the original ones may have been compromised or deactivated
No data appearing after setup
No data appearing after setup
If no activity data appears in Weave:
- Verify that Kiro user activity reports are enabled in the Kiro console under Settings
- Confirm users have been active in Kiro — reports are only generated for days when users interact with Kiro
- Check that at least one daily report CSV has been written to your S3 bucket (reports generate at 02:00 UTC)
- Verify the S3 bucket prefix in Weave matches what you configured in the Kiro console
- Wait up to 24 hours for the first report to be generated after enabling the setting
Identity Store errors
Identity Store errors
If Weave can’t resolve Kiro user IDs to names and emails:
- Verify the Identity store ID is correct. It starts with
d-followed by 10 characters - Check the Identity store region matches where your IAM Identity Center is configured
- Ensure the IAM user has
identitystore:ListUsersandidentitystore:DescribeUserpermissions - Confirm your IAM Identity Center has users provisioned — the Identity Store must contain the same users who are subscribed to Kiro
Missing users in reports
Missing users in reports
If some team members aren’t appearing in Weave:
- Verify the users have active Kiro subscriptions
- Ensure users are signing in via IAM Identity Center (not AWS Builder ID) — users on Builder ID won’t appear in organization-level reports
- Check that the missing users have been active in Kiro during the reporting period
- 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)
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
/devacceptance counts
- 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
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.
Related integrations
- Cline — VS Code extension AI assistant
- Cursor — AI IDE alternative
- Windsurf — AI IDE alternative
- Claude Code — CLI-based AI assistant
