kiro-piis an independent project. It is not affiliated with Kiro, AWS, Sanrio, orMasuRii/pi-kiro-provider. The frog mark is original project artwork and is not official Keroppi artwork.
- Pi with a compatible Pi 0.74–0.81 runtime
- Node.js 20 or newer
- Kiro authentication through Pi OAuth, or an explicit
KIRO_ACCESS_TOKEN
Kiro CLI is optional. Install it if you want account-visible model discovery from existing local CLI credentials.
pi install npm:kiro-piRestart Pi, then reload extensions if needed:
/reload
Install directly from GitHub instead:
pi install git:github.com/igun997/kiro-pigit clone https://github.com/igun997/kiro-pi.git
cd kiro-pi
npm install
npm run check
pi install -l .Run checkout directly during development:
pi -e ./index.tsKiro CLI is not required for Pi prompts. It enables read-only reuse of local CLI authentication for model discovery.
Use the official Kiro CLI installation guide. Quick installs:
macOS or Linux
curl -fsSL https://cli.kiro.dev/install | bashWindows PowerShell
irm 'https://cli.kiro.dev/install.ps1' | iexAuthenticate after installation:
kiro-cli --version
kiro-cliFor Ubuntu .deb, AppImage, zip, ARM64, or musl Linux instructions, follow the official guide.
Authenticate with Pi, then select Kiro:
/login kiro
/model kiro/auto
Supported login labels include AWS Builder ID, Google, and GitHub. You can also select Kiro from the command line:
pi --provider kiro --model autoSet any discovered model with:
/model kiro/<model-id>
auto remains available as a fallback. Model IDs depend on Kiro account entitlements and region.
Inspect your Kiro credit balance, plan, and reset date without leaving Pi:
/kiro-usage
The agent can also read the same data through the kiro_usage tool (ask it something like "how many Kiro credits do I have left?"). Both surfaces call Kiro's GetUsageLimits API, mirroring the kiro-cli /usage card, and report:
- Subscription plan (e.g. KIRO FREE, KIRO PRO) and type
- Monthly credits used, limit, remaining, and percent with a progress bar
- Reset date and days remaining
- Overage status, rate, and cap when the plan supports overages
- Bonus / free-trial credits when present
Usage lookups reuse the same credential selection as model discovery: Pi's managed kiro OAuth credential first, then read-only local Kiro CLI state. The bearer token is sent only to Kiro's endpoint and is never logged.
- Streaming Kiro responses through Pi's provider API
- Text and image input, including image-only turns
- PNG, JPEG/JPG, GIF, and WebP image payloads
- Streamed reasoning text, signatures, and redacted reasoning replay
- Tool calls and fragmented tool input handling
- Token usage, cache usage, rate metadata, and metering diagnostics
- Account credit usage checks via the
/kiro-usagecommand andkiro_usagetool - AWS Builder ID, Google, and GitHub OAuth flows
- Optional Kiro profile ARN support
- Authorization-header hardening so configured headers cannot override managed credentials
- File-only debug logging when explicitly enabled
Prompt requests use one of these credential sources:
- Pi's stored
kiroOAuth credential. - Explicit
$KIRO_ACCESS_TOKENor another configured API key.
Kiro CLI credentials are read-only and currently used for live model discovery. They are not automatically substituted for Pi prompt-request credentials. Provider reads valid local CLI state from:
~/.aws/sso/cache/kiro-auth-token.json~/.local/share/kiro-cli/data.sqlite3
Provider never writes or refreshes Kiro CLI files. If CLI authentication expires, authenticate again with kiro-cli or use /login kiro for Pi. When default Builder ID settings are used, Pi reads account-specific Builder ID start_url and region from local Kiro CLI metadata so Pi login targets same account; it never reuses CLI bearer tokens.
When network discovery is available, kiro-pi calls Kiro's regional management endpoint and imports account-visible model IDs, display names, context limits, reasoning levels, and rate metadata. Discovery refreshes at provider startup, session start/reload, and multi-auth readiness events. If discovery fails or runs without valid local CLI or event-provided auth, the last-known or built-in fallback models remain available.
Discovery sends the bearer token to Kiro's management endpoint. Credential values are never logged.
Runtime configuration is optional. Copy the example file into the extension root:
cp config/config.example.json config.jsonCommon options:
| Option | Description |
|---|---|
enabled |
Enable or disable provider registration. |
debug |
Write file-only diagnostics under debug/debug.log. |
upstreamUrl |
CodeWhisperer or Amazon Q streaming endpoint. |
endpoint |
codewhisperer or amazonq; inferred when omitted. |
apiKey |
Explicit token reference; defaults to $KIRO_ACCESS_TOKEN. |
requestTimeoutMs |
Streaming/OAuth request timeout. |
profileArn |
Optional Kiro profile ARN. |
headers |
Additional non-authorization headers. |
oauth |
OAuth endpoint and sign-in configuration. |
models |
Optional replacement model catalog. |
modelDefaults |
Defaults applied to configured models. |
Authorization headers in global, model-default, or model-specific configuration are intentionally ignored. Managed provider credentials remain authoritative.
npm install
npm run check
npm run package:dry-runnpm run check runs typecheck, lint, tests, and build validation.
kiro-pi began from MasuRii/pi-kiro-provider and now follows its own repository, branding, model discovery, Kiro CLI integration, tests, and maintenance workflow. Upstream MIT attribution remains in LICENSE, with historical references in CHANGELOG.md.