Kiro supports several authentication providers across all surfaces:
| Provider | IDE | CLI | Web | Mobile |
|---|---|---|---|---|
| GitHub | ✓ | ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ | ✓ | |
| AWS Builder ID | ✓ | ✓ | ✓ | ✓ |
| AWS IAM Identity Center | ✓ | ✓ | ✓ | ✓ |
| External identity provider | ✓ | ✓ | ✓ | ✓ |
| API key (CI/headless) | ✓ |
The providers work the same way everywhere, and sign-in completes in the browser:
How you launch the flow differs per surface:
When a session you signed in to with AWS IAM Identity Center or AWS Builder ID expires, Kiro IDE shows Your Kiro session expired. Reconnect to followed by your Start URL or AWS Builder ID. Select Reconnect to sign in again with the same connection. You do not choose a sign-in method or re-enter the Start URL and AWS Region; you only complete the browser step.
Kiro offers to reconnect only after an IAM Identity Center or AWS Builder ID sign-in. GitHub, Google, and external identity provider sign-ins do not get this prompt, and signing in with one of them clears any remembered IAM Identity Center or AWS Builder ID connection. Running Kiro: Sign Out also clears it, so no reconnect prompt appears after you sign out on purpose.
When running Kiro CLI on a remote machine (via SSH, SSM, containers, etc.), authentication works differently since the remote machine cannot open a browser.
Builder ID, IAM Identity Center, Google, and GitHub support device flow authentication in remote environments. The CLI displays a URL and a one-time code that you enter in any browser - no port forwarding required.
Your organization can turn off device flow sign-in for a Kiro profile. The CLI hides that profile during device flow login and profile switching. If no available profile remains, run kiro-cli login on a machine that can complete browser sign-in. Browser sign-in is not affected.
kiro-cli login and select your sign-in method (for example, Use with Builder ID, Use with Google, Use with GitHub, or Use with Your Organization).For CI/CD pipelines and automation scripts, you can authenticate using an API key instead of interactive sign-in.
Set the KIRO_API_KEY environment variable and run Kiro CLI in non-interactive mode:
export KIRO_API_KEY=ksk_xxxxxxxx kiro-cli chat --no-interactive "your prompt here"
On Windows:
$env:KIRO_API_KEY = "ksk_xxxxxxxx" kiro-cli chat --no-interactive "your prompt here"
API key authentication supports all Kiro CLI features available in non-interactive mode. For interactive sessions, use browser-based sign-in instead. For CI/CD pipelines, automation scripts, and detailed headless usage, see Headless mode.
When multiple credentials are available, Kiro CLI uses this precedence order:
kiro-cli login)KIRO_API_KEY environment variableTo check which authentication method is active, run kiro-cli whoami. Credits consumed using the API key are decremented from your subscription credits.
Connect your GitHub account to give the agent access to your repositories:
You must have write permissions on repositories for the agent to create branches and open pull requests.
How repository access works: Kiro Web shows all repositories where both conditions are met:
This means you see repositories from personal accounts, shared repositories, and organizations - as long as both your GitHub user and the Kiro Agent app have access.
See the GitHub integration guide for detailed setup instructions.
To use Kiro with AWS GovCloud (US):
https://start.us-gov-home.awsapps.com/directory/d-XXXXXXXXXXTo sign out of Kiro IDE, open the command palette and run Kiro: Sign Out. To learn how signing out affects reconnecting, see Reconnect after your session expires.
If you encounter problems during the authentication process, such as browser redirect failures or sign-in errors, check the troubleshooting guide for platform-specific solutions and common fixes.
Authentication