NEW
Business

CLI for AI Agents
Built for Automation

A command-line tool designed for AI agents and headless browsers. Create disposable identities, wait for emails, and extract verification codes in a single pipeline.

Business

CLI for
AI Agents

Automate signups with Playwright, Puppeteer, or any headless browser

Device Authorization

Authenticate with a one-time code. The CLI requests a device code, you approve in your browser, and the API key is saved automatically.

CLIdna auth login
ABCF-KXNREnter at /cli/auth
BrowserWaiting...

Automation Pipeline

Create an identity, automate the signup, extract the verification code, and clean up. All from the terminal.

$ dna create --label signup --json
  ✓ Identity created: bot4kx@748392.best

$ playwright test signup.spec.ts ✓ Filled email + password ✓ Submitted registration form
$ dna verify ai_Kp9x --timeout 30 --quiet ⏳ Waiting for email... 847293
$ dna delete ai_Kp9x ✓ Identity deleted

Browser Automation

Works with Playwright, Puppeteer, or any headless browser. Fill forms with disposable credentials in your test suite.

app.example.com/signup
Email
Password
Create Account

Get Started

Install the CLI globally and start automating email verification in under a minute.

$npm install -g @buun_group/dna
Device auth flow
Smart code extraction
JSON output mode
LLM-ready docs via /llms.txt
View CLI Documentation

10 Commands

Everything your agent needs. Create identities, wait for emails, extract codes, and clean up when done.

Smart Extraction

13+ built-in patterns detect verification codes, OTPs, and confirmation links. Each match is ranked by confidence.

dna verify ai_Kp9x --json
6-digit OTP8472930.95
Prefixed codeG-8472930.90
AlphanumericA8K3-WXYZ0.85
Spaced digits8 4 7 2 9 30.80
Verify linkverify?token=e8f2a...0.75
Custom regex--pattern 'CODE:(\w+)'0.70

Structured Output

Every command supports --json for structured parsing. Pipe results into jq, env vars, or your agent's decision loop.

dna create --json
{
  "id": "ai_Kp9x",
  "email": "bot4kx@748392.best",
  "password": "••••••••••••",
  "expires_at": "2026-02-27T13:00:00Z",
  "status": "active"
}

See It
in Action

Create a disposable identity, automate signup, extract the verification code, and save to vault, all from the terminal

Agent
Personas

Fictional identities for automated form filling across 17 countries

Persona Generation

Generate fictional but structurally valid identities for any country. Names, addresses, phone numbers, all ready for form filling.

Jessica Martinez@jessica_martinez_91
US
+1 555-482-7365
1991-06-14
agentx7k4@748392.best
4721 Oak Street, Austin, TX 78701

17 Countries

Culturally appropriate names, real city/state/zip combinations, country-specific phone formats, and correct address ordering.

US
UK
AU
CA
DE
FR
JP
BR
IN
ES
IT
NL
KR
MX
SE
PL
NZ
United StatesWestern names, 5-digit zip, +1 555-xxx

Autofill Any Form

Every persona field maps to a standard form input. Your agent fills the entire signup form in seconds.

Create Account
Full NameJessica Martinez
Email 
Phone 
Address 
Create Account

Structured Response

Every persona returns a typed JSON object. Parse it in any language and feed it directly into your automation pipeline.

POST/api/agent/identitiespersona: true
{
  "persona": {
    "fullName": "Jessica Martinez",
    "country": "US",
    "phone": "+1 555-482-7365",
    "address": "4721 Oak Street, Austin, TX 78701"
  }
}

Built for
Every Workflow

Cross-platform binaries, flexible config, and Unix-native piping

Cross-Platform Binaries

Pre-built for every major platform and architecture. No Go toolchain required. Install from npm and run.

Linux x64
Linux arm64
macOS x64
macOS arm64
Windows x64
Distributed via npm, zero build step

Config Resolution

Four-level priority chain resolves your API key from environment variables, CLI flags, config files, or device auth.

1
DESTROY_API_KEYEnvironment variable
active
2
--api-keyCLI flag
3
~/.config/dna/config.jsonConfig file
4
dna auth loginDevice auth

CI/CD Integration

Set one secret and the CLI runs non-interactively. Pre-built binaries work on GitHub Actions, GitLab CI, and any Docker runner.

GitHub Actions
# .github/workflows/e2e.yml
env:
  DESTROY_API_KEY: ${{ secrets.DNA_KEY }}

steps: - name: Create identity run: dna create --json > id.json - name: Run E2E tests run: playwright test signup.spec.ts - name: Verify email run: dna verify $(jq -r .id id.json) --quiet - name: Cleanup run: dna delete $(jq -r .id id.json)

Shell Piping

Compose pipelines with jq, xargs, and your favourite Unix tools. Every command outputs clean, parseable data.

$dna create --json|jq .email
Extract email from JSON

Plan Tiers

Pro for individuals. Business for teams and heavy automation. Both include full CLI access with different limits.

Pro
Identities10
Poll timeout30s
Rate limit60 / min
Custom patterns-
Webhooks-
Business
Identities50
Poll timeout120s
Rate limit300 / min
Custom patterns
Webhooks

Environment Variables

Configure everything via env vars. Perfect for containers, CI runners, and headless environments.

DESTROY_API_KEYAuthenticate all commands
DESTROY_API_URLCustom API endpoint
NO_COLORDisable colour output
DNA_TUIToggle interactive mode

Output Modes

Structured JSON for parsing, quiet mode for piping, plain text for logs. Same command, three formats.

--jsonStructured--quietValue only--no-colorPlain text
$dna verify ai_Kp9x --json
{ "code": "847293", "confidence": 0.95 }

The dna CLI gives your AI agent a disposable email identity in a single command. Each identity comes with a unique address and an encrypted password, ready to be typed into any form by Playwright, Puppeteer, or any other automation framework.

After the agent fills out a signup form, it calls dna verify to wait for the confirmation email and extract the verification code automatically. 13+ built-in extraction patterns detect OTP codes, tokens, and verification links with confidence scoring . No retry loops or sleep timers needed.

For testing and automation only. Generated personas are fictional identities for automated testing, QA workflows, and development. Do not use them for identity fraud, impersonation, scamming, or any illegal activity. We are not responsible for misuse of generated data. By using this feature you agree to our Acceptable Use Policy.

Agent-First Design

JSON output, exit codes, environment variable auth, and non-interactive mode. Every decision is optimised for machine consumption.

Smart Code Extraction

13+ built-in patterns detect OTPs, alphanumeric tokens, and verification links with confidence scoring. Custom regex is supported too.

Long-Polling Built In

Block until an email arrives or a verification code is found. No polling loops, no sleep timers, no wasted API calls.

Encrypted Credentials

Each identity includes an encrypted password stored at rest. Only the authenticated owner can decrypt and retrieve it.

CLI Capabilities

  • 11 commands: auth, config, create, list, get, delete, extend, verify, messages, message, wait
  • Structured output with --json, --quiet, and --no-color flags for machine-readable pipelines
  • Device authorization flow: the agent requests a code, the user approves in-browser, and the CLI receives an API key
  • Pre-built binaries for Linux, macOS, and Windows (x64 and arm64) distributed via npm
  • Long-polling with plan-based timeouts (Pro: 30s, Business: 120s) for email wait and verification
  • Custom verification patterns via --pattern flag with first capture group as the extracted value
  • Config defaults via 'dna config set defaults.persona true' so every create includes a persona automatically

Frequently Asked Questions

How do I use the CLI with Playwright or Puppeteer?
Run 'dna create --json' to generate a disposable email and password. Parse the JSON output to get the credentials, then use your automation framework to fill in the signup form. After submission, run 'dna verify <id> --timeout 30 --quiet' to wait for the confirmation email and receive the verification code on stdout.
Does the CLI work in headless CI environments?
Yes. Set the DESTROY_API_KEY environment variable and every command runs non-interactively. The CLI ships pre-built binaries for Linux x64 and arm64, so it works on GitHub Actions, GitLab CI, and any Docker-based runner without additional dependencies.
How does verification code extraction work?
The CLI analyses the email body text and HTML using 13+ built-in patterns. It detects six-digit OTP codes, alphanumeric tokens, prefixed codes like G-847293, spaced digits, and verification links. Each match receives a confidence score from 0 to 0.95. You can also supply a custom regex with the --pattern flag.
What plans support the CLI?
The CLI requires a Pro or Business plan API key. Pro plans support up to 10 agent identities with 30-second polling timeouts. Business plans remove the identity limit and extend timeouts to 120 seconds.
Can I use environment variables instead of interactive login?
Yes. Set DESTROY_API_KEY to your API key and optionally DESTROY_API_URL if you use a custom endpoint. The CLI also supports a --api-key flag on any command and reads from ~/.config/dna/config.json as a fallback.
What are agent personas?
Personas generate fictional but structurally valid identity data (name, address, phone, date of birth) alongside each disposable email. Pass --persona to dna create and the response includes a full persona object. Supported countries include US, UK, AU, CA, DE, FR, JP, BR, IN, ES, IT, NL, KR, MX, SE, PL, and NZ. Use --country and --gender to control the output. Requires a Pro or Business plan.
Can I make --persona the default for every create?
Yes. Run 'dna config set defaults.persona true' and every subsequent 'dna create' will include a persona automatically. You can also set 'defaults.country' and 'defaults.gender' to lock in a specific country or gender. The --no-persona flag overrides the default when you don't need one. Environment variables DESTROY_DEFAULT_PERSONA, DESTROY_DEFAULT_COUNTRY, and DESTROY_DEFAULT_GENDER work too.

Automate Signups in Minutes

Install the CLI, create a disposable identity, and extract your first verification code in under 60 seconds.