feat(user-agent): Attribute the Kiro IDE agent - #10584
Open
seshubaws wants to merge 1 commit into
Open
Conversation
hssyoo
self-requested a review
August 20, 2026 20:34
hssyoo
reviewed
Aug 21, 2026
| # Kiro IDE, distinct from the Kiro CLI above. The IDE agent drives an | ||
| # integrated terminal and does not export KIRO_SESSION_ID, so its traffic | ||
| # was previously unattributed. | ||
| ('KIRO_AGENT', 'AGENTIC_CALLER_KIRO_IDE', None), |
Contributor
There was a problem hiding this comment.
Are there docs that reference KIRO_AGENT? When prompting Kiro to check runtime environment variables on Kiro IDE v1.0.337, there's no match on KIRO_AGENT.
Contributor
There was a problem hiding this comment.
Kiro service must export KIRO_AGENT for this to report, matching how Cursor behaves today. Setting this up for when it does.
I missed this in the description. I don't think we should ship code that depends on future work by the Kiro team. The user agent won't track Kiro IDE usage with or without this PR.
hssyoo
reviewed
Aug 21, 2026
Comment on lines
+131
to
+133
| # Kiro IDE, distinct from the Kiro CLI above. The IDE agent drives an | ||
| # integrated terminal and does not export KIRO_SESSION_ID, so its traffic | ||
| # was previously unattributed. |
Contributor
There was a problem hiding this comment.
nit: We can remove comment. These values are documented internally where we define feature ids.
Author
|
ack, cut a ticket to kiro team internally |
The agentic caller env var signals are already collected to populate the AGENTIC_CALLER_* metrics in the User-Agent, but they are only reachable through private helpers. Callers that want to adapt behavior when an agent is driving them -- for example suppressing interactive prompts that would otherwise block with no one to answer -- have to reimplement the table and then drift from it as new agents are added. Expose is_agentic_caller() so those callers stay in sync with what the SDK already reports. No change to the User-Agent itself.
seshubaws
force-pushed
the
feature/kiro-ide-user-agent
branch
from
August 25, 2026 20:28
3fd35d2 to
09bc857
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Kiro IDE and Kiro CLI are separate products with separate app bundles. Only the CLI exports KIRO_SESSION_ID, so commands driven by the IDE's agent were reported as ordinary human-run commands and its traffic was unattributed.
Add AGENTIC_CALLER_KIRO_IDE (AX), keyed on KIRO_AGENT. The variable is scoped to agent activity rather than to the editor being open, following CURSOR_AGENT and ANTIGRAVITY_AGENT.
Something like TERM_PROGRAM=kiro was rejected since the IDE's integrated terminal is also human-driven, so it would attribute a person's typing as agentic and make the metric non-comparable with the other AGENTIC_CALLER_* rows. Kiro service must export KIRO_AGENT for this to report, matching how Cursor behaves today. Setting this up for when it does.
Also expose is_agentic_caller() so callers that adapt behavior for agents (for example, suppressing interactive prompts) use the same signals the User-Agent already reports instead of reimplementing the table.
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.