From aradotso-trending-skills-37
Automates AWS Builder ID account registration and switching for Kiro IDE using Playwright browser automation with proxies, bulk support, fingerprint spoofing, and anti-detection.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-1 --plugin aradotso-trending-skills-37This skill uses the workspace's default tool permissions.
```markdown
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
---
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:
# 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
# Launch interactive account switcher menu
npm run switch
The interactive menu provides:
| Parameter | Short | Default | Description |
|---|---|---|---|
--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 |
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
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);
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
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');
// 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,
});
// 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"
});
show/builderid-template.jsonTemplate for account data structure. Registered accounts follow this schema and results are appended to show/results.json.
show/results.jsonAuto-generated file storing all successfully registered account credentials and tokens.
# View saved accounts after registration
cat show/results.json
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
# Fully automated, no prompts
npm run register -- --count 3 --non-interactive --no-fingerprint
# 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
# Reinstall Playwright browser
npm run install-browser
# Or manually
npx playwright install chromium
sudoDefault paths per OS:
C:\Users\<User>\AppData\Local\Programs\Kiro\Kiro.exe/Applications/Kiro.app/usr/bin/kiro or ~/.local/bin/kiroThe tool polls for the OTP email automatically. If it times out:
lib/register.ts# 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
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.