Skip to content

CLI

The acteon-cli binary provides a command-line interface for interacting with the Acteon gateway. It shares the same operations layer as the MCP Server, so every capability exposed to AI agents is also available from the terminal.

Installation

cargo build -p acteon-cli

Configuration

# Minimal — connects to localhost:8080
acteon-cli health

# Custom endpoint
acteon-cli --endpoint http://acteon.internal:8080 health

# With API key
acteon-cli --api-key your-key health

Environment Variables

Variable Flag Default Description
ACTEON_ENDPOINT --endpoint http://localhost:8080 Gateway base URL
ACTEON_API_KEY --api-key (none) API key for authentication

Output Format

All commands support --format text (default) or --format json for machine-readable output:

acteon-cli --format json rules list

Commands

health

Check gateway health:

acteon-cli health

dispatch

Send an action through the gateway:

# Inline JSON payload
acteon-cli dispatch \
  --tenant prod \
  --provider slack \
  --type send_alert \
  --payload '{"channel": "#ops", "message": "Deploy complete"}'

# Payload from file
acteon-cli dispatch \
  --tenant prod \
  --provider email \
  --type send_email \
  --payload @payload.json

# With metadata labels
acteon-cli dispatch \
  --tenant prod \
  --provider webhook \
  --type notify \
  --payload '{"url": "https://example.com"}' \
  --metadata severity=critical \
  --metadata team=infra

# Dry-run mode (preview without executing)
acteon-cli dispatch \
  --tenant prod \
  --provider slack \
  --type send_alert \
  --payload '{"message": "test"}' \
  --dry-run
Flag Required Description
--namespace no Namespace (default: default)
--tenant yes Tenant identifier
--provider yes Target provider
--type yes Action type
--payload yes JSON string or @file path
--metadata no Key=value pairs (repeatable)
--dry-run no Preview without executing

audit

Query the audit trail:

# Recent records for a tenant
acteon-cli audit --tenant prod

# Filter by outcome
acteon-cli audit --tenant prod --outcome suppressed

# Filter by provider and limit
acteon-cli audit --tenant prod --provider slack --limit 50
Flag Required Description
--tenant no Filter by tenant
--namespace no Filter by namespace
--provider no Filter by provider
--action-type no Filter by action type
--outcome no Filter by outcome
--limit no Max records (default 20)

rules

Manage routing rules:

# List all rules
acteon-cli rules list

# Enable a rule
acteon-cli rules enable block-spam

# Disable a rule
acteon-cli rules disable noisy-alerts

events

Manage stateful events:

# List events for a tenant
acteon-cli events list --namespace alerts --tenant prod

# Filter by state
acteon-cli events list --namespace alerts --tenant prod --status open

# Acknowledge an event
acteon-cli events manage \
  --fingerprint abc123 \
  --namespace alerts \
  --tenant prod \
  --action acknowledged

# Resolve an event
acteon-cli events manage \
  --fingerprint abc123 \
  --namespace alerts \
  --tenant prod \
  --action resolved

JSON Output

Use --format json for scripting and piping:

# Get rules as JSON and pipe to jq
acteon-cli --format json rules list | jq '.[].name'

# Dispatch and capture outcome
OUTCOME=$(acteon-cli --format json dispatch \
  --tenant prod --provider slack --type alert \
  --payload '{"msg": "test"}')
echo "$OUTCOME" | jq '.status'

What's Next?