Skip to content

Inbox Commands

Inbox commands let you create temporary email addresses, list existing inboxes, and manage their lifecycle.

All inbox commands support these global flags:

FlagDescription
--configConfig file (default is $HOME/.config/vsb/config.yaml)
-o, --outputOutput format: pretty, json

Create a new temporary inbox with an auto-generated email address.

Terminal window
vsb inbox create [flags]
FlagDescriptionDefault
--ttlTime-to-live duration (e.g., 1h, 24h, 7d)24h
--email-authEnable/disable SPF/DKIM/DMARC/PTR authentication checks (true or false)Server default
--encryptionRequest encryption mode (encrypted or plain)Server default
--spam-analysisEnable/disable spam analysis for this inbox (true or false)Server default
Terminal window
# Create inbox with default 24h TTL
vsb inbox create
# Create inbox with custom TTL
vsb inbox create --ttl 1h
vsb inbox create --ttl 7d
# Create inbox without email authentication checks
vsb inbox create --email-auth=false
# Create unencrypted inbox (if server policy allows)
vsb inbox create --encryption=plain
# Create inbox with spam analysis enabled
vsb inbox create --spam-analysis=true
# Combine options
vsb inbox create --ttl 7d --email-auth=true --encryption=encrypted --spam-analysis=true
# Create inbox and output JSON (useful for scripting)
vsb inbox create -o json
Inbox Ready!
Address: abc123@abc123.vsx.email
Expires: 24h
Run 'vsb' to see emails arrive live.

JSON output:

{
"email": "abc123@abc123.vsx.email",
"expiresAt": "2024-01-16T14:30:00Z",
"createdAt": "2024-01-15T14:30:00Z"
}

List all stored inboxes.

Terminal window
vsb inbox list [flags]
vsb inbox ls [flags]
FlagDescription
-a, --allInclude expired inboxes
Terminal window
# List active inboxes
vsb inbox list
vsb inbox ls
# Include expired inboxes
vsb inbox list -a
# Output as JSON
vsb inbox list -o json
EMAIL EXPIRES
> abc123@abc123.vsx.email 14h
xyz789@abc123.vsx.email expired

The > marker indicates the active inbox. Expired inboxes are shown with dimmed styling.

JSON output:

[
{
"email": "abc123@abc123.vsx.email",
"expiresAt": "2024-01-16T14:30:00Z",
"isActive": true,
"isExpired": false
}
]

Show detailed information about an inbox.

Terminal window
vsb inbox info [email]

If no email is specified, shows info for the active inbox.

ArgumentDescription
emailEmail address (optional, uses active inbox if omitted)
Terminal window
# Show info for active inbox
vsb inbox info
# Show info for specific inbox
vsb inbox info abc123@abc123.vsx.email
# Partial matching works
vsb inbox info abc123
# JSON output
vsb inbox info -o json
abc123@abc123.vsx.email ACTIVE
ID: abc123
Created: 2024-01-15 14:30
Expires: 2024-01-16 14:30 (14h)
Emails: 3

JSON output:

{
"email": "abc123@abc123.vsx.email",
"expiresAt": "2024-01-16T14:30:00Z",
"isActive": true,
"isExpired": false,
"id": "abc123",
"createdAt": "2024-01-15T14:30:00Z",
"emailCount": 3,
"syncError": "error message"
}

Note: syncError is only included when the server sync fails.


Set the active inbox for subsequent commands.

Terminal window
vsb inbox use <email>
ArgumentDescription
emailEmail address or partial match
Terminal window
# Set active inbox by full address
vsb inbox use abc123@abc123.vsx.email
# Partial matching
vsb inbox use abc123
vsb inbox use abc
# Now commands use this inbox by default
vsb email list

Delete an inbox and all its emails.

Terminal window
vsb inbox delete <email> [flags]
vsb inbox rm <email> [flags]
ArgumentDescription
emailEmail address or partial match
FlagDescription
-l, --localOnly remove from local keystore (don’t delete on server)
Terminal window
# Delete inbox
vsb inbox delete abc123@abc123.vsx.email
vsb inbox rm abc123
# Remove from local keystore only
vsb inbox delete abc123 --local
vsb inbox delete abc123 -l

Inbox webhooks receive notifications only for emails sent to a specific inbox. They work the same as global webhooks but are scoped to one inbox.

Create a webhook for a specific inbox.

Terminal window
vsb inbox webhook create <url> [flags]
ArgumentDescription
urlThe webhook endpoint URL
FlagDescriptionRequired
--eventEvent type to subscribe to (repeatable)Yes
--inboxInbox to attach webhook to (uses active if omitted)No
--templateBuilt-in template: slack, discord, teams, genericNo
--custom-templatePath to custom Go template fileNo
--content-typeContent-Type for custom templateNo
--descriptionOptional descriptionNo
--filter-fromFilter by sender email/patternNo
--filter-toFilter by recipient email/patternNo
--filter-subjectExact subject matchNo
--filter-subject-containsSubject contains textNo
--filter-subject-regexSubject regex patternNo
--filter-domainFilter by sender domainNo
--filter-modeFilter logic: all (AND) or any (OR)No
--require-authRequire email passes SPF/DKIM/DMARCNo
Terminal window
# Create webhook for active inbox
vsb inbox webhook create https://example.com/webhook --event email.received
# Create webhook for specific inbox
vsb inbox webhook create https://example.com/webhook \
--event email.received \
--inbox test@abc123.vsx.email
# Create Slack webhook with filters
vsb inbox webhook create https://hooks.slack.com/services/xxx \
--event email.received \
--template slack \
--filter-subject-contains "verify"

List webhooks for an inbox.

Terminal window
vsb inbox webhook list [flags]
vsb inbox webhook ls [flags]
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
Terminal window
# List webhooks for active inbox
vsb inbox webhook list
# List webhooks for specific inbox
vsb inbox webhook list --inbox test@abc123.vsx.email
# Output as JSON
vsb inbox webhook list -o json

Get detailed information about an inbox webhook.

Terminal window
vsb inbox webhook get <webhook-id> [flags]
ArgumentDescription
webhook-idWebhook ID
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
Terminal window
vsb inbox webhook get wh_abc123
vsb inbox webhook get wh_abc123 -o json

Update an inbox webhook.

Terminal window
vsb inbox webhook update <webhook-id> [flags]
ArgumentDescription
webhook-idWebhook ID
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
--urlChange webhook endpoint URL
--eventReplace events (repeatable)
--templateChange to built-in template
--custom-templateChange to custom template
--content-typeContent-Type for custom template
--descriptionUpdate description
--enableEnable webhook
--disableDisable webhook
--clear-filtersRemove all filters
--filter-fromFilter by sender email/pattern
--filter-toFilter by recipient email/pattern
--filter-subjectExact subject match
--filter-subject-containsSubject contains text
--filter-subject-regexSubject regex pattern
--filter-domainFilter by sender domain
--filter-modeFilter logic: all (AND) or any (OR)
--require-authRequire email passes SPF/DKIM/DMARC
Terminal window
# Disable webhook
vsb inbox webhook update wh_abc123 --disable
# Change URL and add filter
vsb inbox webhook update wh_abc123 \
--url https://new-endpoint.com \
--filter-subject-contains "important"

Delete an inbox webhook.

Terminal window
vsb inbox webhook delete <webhook-id> [flags]
vsb inbox webhook rm <webhook-id> [flags]
ArgumentDescription
webhook-idWebhook ID
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
-f, --forceSkip confirmation prompt
Terminal window
vsb inbox webhook delete wh_abc123
vsb inbox webhook rm wh_abc123 -f

Rotate the signing secret for an inbox webhook.

Terminal window
vsb inbox webhook rotate <webhook-id> [flags]
ArgumentDescription
webhook-idWebhook ID
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
-f, --forceSkip confirmation prompt
Terminal window
vsb inbox webhook rotate wh_abc123
vsb inbox webhook rotate wh_abc123 -f

Test an inbox webhook endpoint.

Terminal window
vsb inbox webhook test <webhook-id> [flags]
ArgumentDescription
webhook-idWebhook ID
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
Terminal window
vsb inbox webhook test wh_abc123
vsb inbox webhook test wh_abc123 -o json

Chaos engineering commands let you inject various failure scenarios for testing email delivery resilience. Use these to simulate real-world issues like network latency, connection drops, and error responses.

Enable and configure chaos engineering scenarios for an inbox.

Terminal window
vsb inbox chaos set [flags]
FlagDescriptionDefault
--inboxSpecify inbox (uses active inbox if omitted)
--expiresAuto-disable after duration (e.g., 1h, 30m) or timestamp

Simulate network latency by adding delays to email processing.

FlagDescriptionDefault
--latencyEnable latency injectionfalse
--min-delayMinimum delay in milliseconds500
--max-delayMaximum delay in milliseconds10000
--no-jitterUse fixed delay (max-delay) instead of randomfalse
--probabilityProbability of applying latency (0.0-1.0)1.0

Simulate network connection failures.

FlagDescriptionDefault
--connection-dropEnable connection droppingfalse
--drop-probabilityProbability of dropping a connection (0.0-1.0)1.0
--abruptUse abrupt close (RST) instead of graceful (FIN)false

Generate random error responses.

FlagDescriptionDefault
--random-errorEnable random error generationfalse
--error-rateProbability of returning error (0.0-1.0)0.1
--error-typesError types to inject: temporary, permanenttemporary

Simulate email greylisting behavior.

FlagDescriptionDefault
--greylistEnable greylisting simulationfalse
--retry-windowRetry window in milliseconds300000
--max-attemptsNumber of attempts before accepting2
--track-byTrack greylisting by: ip, sender, ip_senderip_sender

Silently drop emails without response.

FlagDescriptionDefault
--blackholeEnable blackhole modefalse
--trigger-webhooksStill trigger webhooks in blackhole modefalse
Terminal window
# Enable latency injection (500-5000ms delay)
vsb inbox chaos set --latency --min-delay 500 --max-delay 5000
# Enable latency with 50% probability
vsb inbox chaos set --latency --min-delay 1000 --max-delay 5000 --probability 0.5
# Enable connection drops (30% of connections)
vsb inbox chaos set --connection-drop --drop-probability 0.3
# Enable abrupt connection drops
vsb inbox chaos set --connection-drop --drop-probability 0.5 --abrupt
# Enable random errors (20% temporary errors)
vsb inbox chaos set --random-error --error-rate 0.2 --error-types temporary
# Enable greylisting
vsb inbox chaos set --greylist --max-attempts 3 --retry-window 600000
# Enable blackhole mode (drop all emails)
vsb inbox chaos set --blackhole
# Blackhole with webhooks still firing
vsb inbox chaos set --blackhole --trigger-webhooks
# Set chaos with auto-expiration
vsb inbox chaos set --latency --min-delay 500 --expires 1h
# Set chaos on specific inbox
vsb inbox chaos set --inbox user@example.vsx.email --latency --min-delay 1000
# Combine multiple chaos types
vsb inbox chaos set \
--latency --min-delay 500 --max-delay 2000 --probability 0.3 \
--connection-drop --drop-probability 0.1 \
--random-error --error-rate 0.05

Display the current chaos configuration for an inbox.

Terminal window
vsb inbox chaos get [flags]
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
--outputOutput format: json or pretty-print
Terminal window
# Get chaos config for active inbox
vsb inbox chaos get
# Get chaos config for specific inbox
vsb inbox chaos get --inbox user@example.vsx.email
# Output as JSON
vsb inbox chaos get -o json
Chaos Configuration
Status: enabled
Expires: 2024-01-15 16:30 (1h)
Latency:
Delay: 500-2000ms (jitter enabled)
Probability: 0.3
Connection Drop:
Probability: 0.1

JSON output:

{
"enabled": true,
"expiresAt": "2024-01-15T16:30:00Z",
"latency": {
"enabled": true,
"minDelayMs": 500,
"maxDelayMs": 2000,
"jitter": true,
"probability": 0.3
},
"connectionDrop": {
"enabled": true,
"probability": 0.1,
"graceful": true
}
}

Disable all chaos engineering scenarios for an inbox.

Terminal window
vsb inbox chaos disable [flags]
FlagDescription
--inboxSpecify inbox (uses active inbox if omitted)
-f, --forceSkip confirmation prompt
--outputOutput format: json or pretty-print
Terminal window
# Disable chaos for active inbox (prompts for confirmation)
vsb inbox chaos disable
# Force disable without confirmation
vsb inbox chaos disable -f
vsb inbox chaos disable --force
# Disable for specific inbox
vsb inbox chaos disable --inbox user@example.vsx.email