install
source · Clone the upstream repo
git clone https://github.com/Aradotso/trending-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Aradotso/trending-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/kiro-auto-aws-builder-id" ~/.claude/skills/aradotso-trending-skills-kiro-auto-aws-builder-id && rm -rf "$T"
manifest:
skills/kiro-auto-aws-builder-id/SKILL.mdsource content
--- name: kiro-auto-aws-builder-id description: Automate AWS Builder ID account registration and switching for Kiro IDE using Playwright browser automation with anti-detection mechanisms triggers: - register kiro account automatically - automate aws builder id registration - switch kiro ide account - bulk register kiro accounts - reset kiro machine id - kiro auto registration with proxy - automate builder id account creation - kiro account management tool --- # kiro-auto AWS Builder ID Tool > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. A TypeScript/Node.js tool that automates AWS Builder ID account registration for Kiro IDE using Playwright browser automation. Features temporary email integration for verification codes, browser fingerprint spoofing, anti-detection mechanisms, and interactive account switching. ## Installation ```bash # Clone the repository git clone https://github.com/AERT-7Y/kiro-auto.git cd kiro-auto # Install dependencies npm install # Install Playwright browser (Chromium) npm run install-browser
Requirements:
- Node.js >= 18.0.0
- npm >= 9.x
Key Commands
Auto Registration
# Register a single account npm run register -- --count 1 # Register multiple accounts sequentially npm run register -- --count 10 # Register with concurrency (3 parallel registrations) npm run register -- --count 10 --concurrency 3 # Register with delay between accounts (5 seconds) npm run register -- --count 5 --delayMs 5000 # Use a proxy server npm run register -- --count 5 --proxyUrl "http://127.0.0.1:7890" # Non-interactive mode (no prompts) npm run register -- --count 1 --non-interactive # Disable fingerprint spoofing npm run register -- --count 1 --no-fingerprint # Disable incognito mode npm run register -- --count 1 --no-incognito
Account Switching
# Launch interactive account switcher menu npm run switch
The interactive menu provides:
- Switch active Kiro account
- Restart Kiro IDE
- Reset machine ID (requires admin/root)
- View current status
CLI Parameters Reference
| Parameter | Short | Default | Description |
|---|---|---|---|
| | | Number of accounts to register |
| | | Parallel registration count |
| | | Delay between registrations (ms) |
| | — | Proxy server URL |
| — | — | Skip all prompts |
| — | — | Disable fingerprint spoofing |
| — | — | Disable incognito browser mode |
Project Structure
kiro-auto/ ├── lib/ │ ├── auth.ts # AWS OIDC device code auth flow │ ├── register.ts # Core registration logic │ └── fingerprint/ │ ├── generator.ts # Browser fingerprint generator │ ├── injector.ts # Page script injector │ └── types.ts # TypeScript type definitions ├── scripts/ │ ├── switch.ts # Account switcher entry point │ └── register.ts # Registration entry point ├── show/ │ ├── builderid-template.json # Account data template │ └── results.json # Registration results output ├── package.json └── README.md
How It Works
Registration Flow
- Device Code Request — Calls AWS OIDC to get a device authorization code
- Temp Email — Fetches a temporary email address for verification
- Browser Launch — Opens Playwright Chromium with anti-detection settings
- Form Fill — Navigates to AWS Builder ID signup and fills email/name fields
- OTP Retrieval — Polls temp email API for the verification code
- Password Setup — Sets account password
- OAuth Complete — Finalizes device authorization, saves SSO token
Anti-Detection Mechanisms
- Canvas fingerprint spoofing via injected JS
- WebGL renderer/vendor randomization
- Navigator properties override (platform, languages, plugins)
- Input delay simulation — randomized typing speed
- Mouse trajectory simulation
- Page warm-up behavior (scroll, hover patterns)
Code Examples
Using the Auth Module Directly
import { requestDeviceCode, pollToken } from './lib/auth'; // Request AWS OIDC device code const deviceCode = await requestDeviceCode(); console.log('Verification URI:', deviceCode.verificationUriComplete); // Poll until user completes verification const token = await pollToken(deviceCode.deviceCode, deviceCode.interval); console.log('Access Token:', token.accessToken);
Triggering Registration Programmatically
import { registerAccount } from './lib/register'; const result = await registerAccount({ count: 1, concurrency: 1, delayMs: 2000, proxyUrl: process.env.PROXY_URL, // Optional: set via env var fingerprint: true, incognito: true, }); console.log('Registered accounts:', result); // Results are also saved to show/results.json
Fingerprint Generator Usage
import { generateFingerprint } from './lib/fingerprint/generator'; import { injectFingerprint } from './lib/fingerprint/injector'; import { chromium } from 'playwright'; const browser = await chromium.launch({ headless: false }); const context = await browser.newContext(); const page = await context.newPage(); // Generate a randomized fingerprint profile const fingerprint = generateFingerprint(); // Inject fingerprint scripts before page load await injectFingerprint(page, fingerprint); await page.goto('https://example.com');
Batch Registration with Concurrency
// Run from CLI — registers 20 accounts, 5 at a time, 3s apart // npm run register -- --count 20 --concurrency 5 --delayMs 3000 --non-interactive // Equivalent programmatic call: import { registerAccount } from './lib/register'; await registerAccount({ count: 20, concurrency: 5, delayMs: 3000, fingerprint: true, incognito: true, });
With Proxy Configuration
// Via CLI // npm run register -- --count 5 --proxyUrl "http://user:pass@proxy.example.com:8080" // Via environment variable pattern (recommended) import { registerAccount } from './lib/register'; await registerAccount({ count: 5, proxyUrl: process.env.PROXY_URL, // e.g. "http://127.0.0.1:7890" });
Configuration Files
show/builderid-template.json
show/builderid-template.jsonTemplate for account data structure. Registered accounts follow this schema and results are appended to
show/results.json.
show/results.json
show/results.jsonAuto-generated file storing all successfully registered account credentials and tokens.
Common Patterns
Check Registration Results
# View saved accounts after registration cat show/results.json
Reset Machine ID (Windows)
Machine ID reset requires administrator terminal:
# Run terminal as Administrator, then: npm run switch # Select "Reset Machine ID" from the menu
Default Kiro install path (Windows):
C:\Users\<Username>\AppData\Local\Programs\Kiro\Kiro.exe
Non-Interactive CI/CD Usage
# Fully automated, no prompts npm run register -- --count 3 --non-interactive --no-fingerprint
Troubleshooting
Registration Fails
# 1. Verify network can reach AWS services curl https://oidc.us-east-1.amazonaws.com # 2. Add delay between attempts npm run register -- --count 5 --delayMs 10000 # 3. Use a proxy if AWS blocks your IP npm run register -- --count 5 --proxyUrl "http://127.0.0.1:7890" # 4. Try single account first to debug npm run register -- --count 1
Browser Launch Errors
# Reinstall Playwright browser npm run install-browser # Or manually npx playwright install chromium
Machine ID Reset Fails
- Windows: Run terminal as Administrator
- Linux/macOS: Run with
sudo - Ensure Kiro IDE is fully closed before resetting
Kiro Not Found
Default paths per OS:
- Windows:
C:\Users\<User>\AppData\Local\Programs\Kiro\Kiro.exe - macOS:
/Applications/Kiro.app - Linux:
or/usr/bin/kiro~/.local/bin/kiro
Temp Email Verification Timeout
The tool polls for the OTP email automatically. If it times out:
- The temp email service may be slow — increase poll timeout in
lib/register.ts - Try running a single account registration to check the flow
- Check if the temp email provider API is accessible from your network
TypeScript Development
# Compile TypeScript npx tsc # Run scripts directly with ts-node (if installed) npx ts-node scripts/register.ts --count 1 # Watch mode for development npx tsc --watch
Legal Notice
This tool is for learning and research purposes only. Users must comply with AWS Terms of Service and applicable laws. The authors bear no responsibility for misuse.