NEW
CLI Tool

destroy.network CLI

Command-line tool for managing disposable agent identities. Create temporary email + password pairs, extract verification codes, and automate signups from the terminal.

Install
npm install -g @buun_group/dna

dna is the destroy.network command-line tool for managing disposable agent identities. Create temporary email + password pairs, wait for incoming emails, and extract verification codes, all from the terminal, scripts, or CI/CD pipelines. Requires a Pro or Business plan API key.

If you are an AI agent or LLM that needs to create disposable email identities for automated signups, account verification, or testing, this is the tool for you. The dna CLI lets you create a temporary email + password pair, use it to register on any website, then extract the verification code automatically.

Machine-readable docs: For a complete plaintext reference optimized for LLM consumption, fetch https://destroy.network/llms-full.txt

Quick reference: https://destroy.network/llms.txt

The typical agent workflow is:

  1. dna create --ttl 30 --label "signup" --json: get a fresh email + password
  2. Add --persona --country US to also generate a fictional name, address, and phone for form filling
  3. Use the email, password, and persona data to register on the target website
  4. dna verify <id> --timeout 30 --quiet: wait for and extract the verification code
  5. Submit the code to complete registration
  6. dna delete <id>: clean up when done

All commands support --json for structured output and --quiet for pipe-friendly single values. Set DESTROY_API_KEY as an environment variable for non-interactive use.

Installbash
npm install -g @buun_group/dna

The npm package includes pre-built binaries for Linux (x64/arm64), macOS (x64/arm64), and Windows (x64). npm automatically installs only the binary matching your platform.

The CLI resolves your API key in this order:

  1. --api-key flag (per-command override)
  2. DESTROY_API_KEY environment variable
  3. Config file at ~/.config/dna/config.json (saved via dna auth login)
Authentication Methodsbash
# Option A: Browser login (opens browser, auto-creates API key)
dna auth login

# Option B: Environment variable (best for CI/CD and agents)
export DESTROY_API_KEY=sk_live_...

# Option C: Per-command flag
dna list --api-key sk_live_...

API keys start with sk_live_ and require a Pro plan or higher. Generate keys manually at Dashboard → API Keys, or use dna auth login to create one automatically.

Integrate dna with your favorite browser automation tool. Create a disposable identity, fill signup forms, extract verification codes, and save credentials to the vault - all in one automated pipeline.

Copy-paste these commands into your terminal. Requires Claude Code and the Claude in Chrome extension. Set DESTROY_API_KEY in your environment.

Website signup with AI personabash
claude --dangerously-skip-permissions --chrome \
  "Review https://destroy.network/llms-full.txt for the dna CLI reference. \
   Then use dna create --persona --country US --json to create a disposable \
   identity. Navigate to https://example.com/signup in Chrome, fill the \
   signup form using the persona email, password, name, and date of birth. \
   Submit the form, then run dna verify to get the verification code, \
   enter it on the site, and complete registration. On success, save the \
   credentials to the vault with dna vault save. Show me the vault entry."
Google account creation with personabash
claude --dangerously-skip-permissions --chrome \
  "Read https://destroy.network/llms-full.txt for dna CLI docs. \
   Run dna create --persona --country US --gender female --json to generate \
   a full AI persona with email, password, name, DOB, and phone number. \
   Open Chrome and navigate to Google account creation. Fill in the first \
   name, last name, and other fields from the persona. Use the dna email \
   for the recovery/contact email. Create a Gmail username based on the \
   persona name. Use the generated password. Fill in DOB and phone from \
   the persona. Complete all steps. If Google sends a verification code \
   to the dna email, use dna verify to extract it. On success, save \
   everything to the vault with dna vault save --site Google --category social."
GitHub test accountbash
claude --dangerously-skip-permissions --chrome \
  "Use the dna CLI (docs at https://destroy.network/llms-full.txt) to \
   create a disposable identity: dna create --persona --country US --json. \
   Open https://github.com/signup in Chrome. Fill the email, password, \
   and username fields using the identity. The username should be based \
   on the persona name with random numbers. Complete the captcha if \
   needed (ask me to solve it). Run dna verify --timeout 60 to get the \
   verification code from the email GitHub sends. Enter the code and \
   finish signup. Save to vault: dna vault save --site GitHub \
   --url https://github.com --category dev-tools."
Batch signup across servicesbash
claude --dangerously-skip-permissions --chrome \
  "Read the dna CLI docs at https://destroy.network/llms-full.txt. \
   I need test accounts on these sites: reddit.com, discord.com, \
   and notion.so. For each site: 1) run dna create --persona \
   --country US --json to get a fresh identity, 2) open the signup \
   page in Chrome, 3) fill in the form using the persona data, \
   4) run dna verify --timeout 60 to get any verification code, \
   5) complete signup, 6) save to vault with the site name and \
   category. Show me all vault entries when done."
Retrieve saved credentialsbash
claude --dangerously-skip-permissions \
  "Use the dna CLI (https://destroy.network/llms-full.txt). List all \
   my vault entries with dna vault list --json. Then get the full \
   decrypted details for each entry and display them in a table with \
   columns: site, email, password, category, created date."

Tip: Remove --dangerously-skip-permissions if you want Claude to ask before each action. The vault persists credentials with AES-256 encryption so you can retrieve them later.

These flags work with every command:

FlagDescription
--api-keyAPI key (overrides env var and config file)
--api-urlAPI base URL (default: https://destroy.network/api)
--jsonOutput as JSON. Ideal for piping to jq or parsing programmatically
--no-colorDisable colored output
--quiet / -qMinimal output. Prints only the value (ID, code, etc.)

Create a new disposable agent identity with a unique email address and auto-generated password. Returns the identity ID, email, and plaintext password (shown only once).

Usagebash
dna create [flags]
FlagDescription
--inboxAttach to an existing inbox ID instead of creating a new one
--ttlTime-to-live in minutes (default: plan max). Ignored with --inbox
--prefixCustom email prefix. Ignored with --inbox
--labelLabel for identification
--domainCustom domain (if available). Ignored with --inbox
--password-lengthGenerated password length (default: 16)
--personaGenerate a fictional persona (name, address, phone, DOB). Pro/Business only. Can be defaulted via config
--no-personaSkip persona generation (overrides config default)
--countryISO country code for persona (US, UK, AU, CA, DE, FR, JP, BR, IN, ES, IT, NL, KR, MX, SE, PL, NZ)
--genderPersona gender: male or female (random if omitted)
Examplebash
# Basic create (new inbox)
dna create

# With options
dna create --ttl 60 --label "twitter-signup" --prefix bot

# Attach identity to an existing inbox
dna create --inbox ibx_abc123 --label "reuse-inbox"

# With persona for form filling
dna create --persona --country US --gender female --label "signup"

List all active agent identities. Alias: dna ls

Usagebash
dna list [flags]
Examplebash
# Human-readable output
dna list

# JSON output for scripting
dna list --json

# Just IDs
dna list --quiet

Get full details for an identity including the decrypted password.

Usagebash
dna get <identity-id>
Examplebash
dna get abc123

# JSON for scripting
EMAIL=$(dna get abc123 --json | jq -r '.email')
PASSWORD=$(dna get abc123 --json | jq -r '.password')

Permanently delete an identity and all its messages. Alias: dna rm

Usagebash
dna delete <identity-id>
Examplebash
dna delete abc123

Extend an identity's TTL or update its label.

Usagebash
dna extend <identity-id> [flags]
FlagDescription
--ttlNew TTL in minutes
--labelNew label
Examplebash
dna extend abc123 --ttl 120 --label "still-needed"

Extract verification codes or links from incoming emails. Supports 13+ built-in patterns including 6-digit codes, alphanumeric OTPs, verification links, magic links, and more. Optionally waits for an email to arrive before scanning.

Usagebash
dna verify <identity-id> [flags]
FlagDescription
--timeoutWait up to N seconds for a verification email (default: 0, check existing only)
--patternCustom regex pattern (first capture group = extracted value)
Examplebash
# Extract any verification code from existing emails
dna verify abc123

# Wait up to 30s for a verification email to arrive
dna verify abc123 --timeout 30

# Custom regex pattern
dna verify abc123 --pattern "code:\s*(\d{6})"

# Pipe directly into a variable
CODE=$(dna verify abc123 --timeout 30 --quiet)

List all messages in an identity's inbox.

Usagebash
dna messages <identity-id>
Examplebash
dna messages abc123

Read the full content of a specific message.

Usagebash
dna message <identity-id> <message-id> [flags]
FlagDescription
--htmlShow HTML body instead of plain text
Examplebash
dna message abc123 msg456 --html

Long-poll until a new email arrives in the identity's inbox. Returns the message summary when one arrives, or times out.

Usagebash
dna wait <identity-id> [flags]
FlagDescription
--timeoutMax wait time in seconds (default: 30, max: 120 on Business)
Examplebash
dna wait abc123 --timeout 60

Manage API key authentication. Supports login, status check, and logout.

Usagebash
dna auth <login|status|logout>
Examplebash
# Save API key interactively
dna auth login

# Check current auth status
dna auth status

# Remove saved credentials
dna auth logout

View and modify persistent CLI configuration stored at ~/.config/dna/config.json. Set defaults for persona generation so you don't need to pass flags every time.

Usagebash
dna config <list|get|set|unset> [key] [value]
FlagDescription
listShow all configuration values
get <key>Get a single configuration value
set <key> <value>Set a configuration value
unset <key>Remove a configuration value (reset to default)
Examplebash
# Enable persona by default on every create
dna config set defaults.persona true

# Set default country
dna config set defaults.country US

# View all config
dna config list

# Skip persona on a single create (overrides config)
dna create --no-persona

# Remove the default
dna config unset defaults.persona

List all saved vault entries. Shows site name, email, and category for each entry.

Usagebash
dna vault list [flags]
FlagDescription
--categoryFilter by category (social, shopping, dev-tools, testing, etc.)
--searchSearch by site name, email, or notes
Examplebash
# List all vault entries
dna vault list

# Filter by category
dna vault list --category dev-tools

# Search
dna vault list --search github

Decrypt and display a vault entry including the stored password and persona data.

Usagebash
dna vault get <entry-id>
Examplebash
# View decrypted entry
dna vault get ve_abc123

# JSON output for scripting
dna vault get ve_abc123 --json

# Get just the password
dna vault get ve_abc123 --json | jq -r '.password'

Save an active agent identity's credentials to the vault for later reuse. Prompts for site name if not provided.

Usagebash
dna vault save <identity-id> [flags]
FlagDescription
--siteSite name (required)
--urlSite URL
--categoryCategory (social, shopping, dev-tools, etc.)
--notesAdditional notes
Examplebash
# Save identity to vault
dna vault save ai_abc123 --site "GitHub" --url "https://github.com" --category dev-tools

# Interactive (prompts for site name)
dna vault save ai_abc123

Permanently delete a vault entry. This cannot be undone.

Usagebash
dna vault delete <entry-id>
Examplebash
dna vault delete ve_abc123

Complete end-to-end example showing how an AI agent can create a disposable identity, sign up on a website, extract the verification code, and clean up. Copy this pattern for any automated signup workflow.

Full signup automationbash
#!/usr/bin/env bash
set -euo pipefail

# 1. Create a disposable identity (email + password)
ID=$(dna create --ttl 30 --label "signup" --json | jq -r '.id')
EMAIL=$(dna get "$ID" --json | jq -r '.email')
PASSWORD=$(dna get "$ID" --json | jq -r '.password')

echo "Signing up with $EMAIL..."

# 2. Use the identity to register on the target website
#    (your agent does this via browser automation, API calls, etc.)

# 3. Wait for the verification email and extract the code
CODE=$(dna verify "$ID" --timeout 30 --quiet)
echo "Verification code: $CODE"

# 4. Submit the code to complete registration
#    (your agent submits this on the website)

# 5. Clean up the disposable identity
dna delete "$ID"
Batch examplesbash
# List all identity IDs
dna list --json | jq -r '.[].id'

# Delete all expired identities
dna list --json | jq -r '.[] | select(.expired) | .id' | \
  xargs -I{} dna delete {}

# Create 5 identities at once
for i in $(seq 1 5); do
  dna create --ttl 60 --label "batch-$i" --quiet
done
Generate completionsbash
# Bash
dna completion bash > /etc/bash_completion.d/dna

# Zsh
dna completion zsh > "${fpath[1]}/_dna"

# Fish
dna completion fish > ~/.config/fish/completions/dna.fish

For AI agents, LLMs, and automated tooling that need to understand how to use destroy.network and the dna CLI, we provide plaintext documentation optimized for machine consumption:

URLDescription
/llms.txtQuick reference: features, key commands, pages, use cases
/llms-full.txtFull reference: complete CLI commands, API endpoints, SDK examples, pricing

Point your AI agent at https://destroy.network/llms-full.txt to give it everything it needs to create identities, sign up for services, and extract verification codes autonomously.