Trending-skills kiro-auto-aws-builder-id

```markdown

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.md
source 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

ParameterShortDefaultDescription
--count
-n
1
Number of accounts to register
--concurrency
-c
1
Parallel registration count
--delayMs
-d
0
Delay between registrations (ms)
--proxyUrl
--proxy
Proxy server URL
--non-interactive
Skip all prompts
--no-fingerprint
Disable fingerprint spoofing
--no-incognito
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

  1. Device Code Request — Calls AWS OIDC to get a device authorization code
  2. Temp Email — Fetches a temporary email address for verification
  3. Browser Launch — Opens Playwright Chromium with anti-detection settings
  4. Form Fill — Navigates to AWS Builder ID signup and fills email/name fields
  5. OTP Retrieval — Polls temp email API for the verification code
  6. Password Setup — Sets account password
  7. 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

Template for account data structure. Registered accounts follow this schema and results are appended to

show/results.json
.

show/results.json

Auto-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:
    /usr/bin/kiro
    or
    ~/.local/bin/kiro

Temp Email Verification Timeout

The tool polls for the OTP email automatically. If it times out:

  1. The temp email service may be slow — increase poll timeout in
    lib/register.ts
  2. Try running a single account registration to check the flow
  3. 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.