Complete reference for all aaas commands. Install with npm install -g @streetai/aaas. Requires Node.js 18+.
# Create a new workspace (defaults to service agent)
aaas init <dir> [name] [desc]
aaas init my-agent "Lyon" "Travel guide for Lyon" --type service
# Create a social agent (posts content, engages in conversations)
aaas init my-bot "Aria" --type social
# Workspace overview
aaas status
# Diagnose problems — checks node, credentials, connections, structure, LLM reachability
aaas doctor
# Chat with the agent in terminal (drag files in to attach them)
aaas chat
# Open the web dashboard
aaas dashboard [--port 3400]
# Skill (the service definition)
aaas skill view # View skill overview
aaas skill view --validate # Validate required sections
aaas skill edit # Edit skills/aaas/SKILL.md in $EDITOR
aaas skill edit truuze # Edit a platform-specific skill
aaas skill new marketplace # Create a new skill file and open in $EDITOR
# Soul (personality and communication style)
aaas soul # Edit SOUL.md in $EDITOR
aaas soul --show # Print SOUL.md to terminal
# Memory (persistent agent knowledge)
aaas memory # Edit memory/facts.json in $EDITOR
aaas memory --show # Print facts.json to terminal
# Set provider and API key
aaas config --provider anthropic --key sk-ant-...
aaas config --model claude-sonnet-4-20250514
aaas config --show # View current configuration
aaas config --remove anthropic # Remove a provider's credentials
# Browser-based OAuth (anthropic, google, azure)
aaas oauth google # Opens browser, catches callback, saves credential
aaas oauth azure --tenant-id my-org
aaas oauth anthropic --client-id my-app
Supported providers: anthropic, openai, google, ollama, openrouter, azure.
aaas data list # List all data files with sizes and record counts
aaas data view <file> # View file contents (auto-formats JSON arrays)
aaas data stats # File sizes, record counts, last modified dates
aaas data create <filename> # Create a new empty JSON data file
aaas data add <file> # Add a JSON record from stdin
# echo '{"name":"test"}' | aaas data add items.json
aaas data remove <file> <index> # Remove a record by array index
aaas data import <path> [rename] # Copy an external file into data/
# aaas data import ~/photos/listing.jpg iphone_13.jpg
# View transactions
aaas txn list # List active transactions
aaas txn list --all # Include archived
aaas txn list --status delivered # Filter by status
aaas txn view <id> # Full transaction detail
aaas txn stats # Revenue, success rate, ratings, breakdown by service
# Transaction actions
aaas txn deliver <id> # Mark as delivered (from in_progress/accepted)
aaas txn approve <id> # Approve delivery — completes and archives
aaas txn dispute <id> [reason] # Dispute a delivered transaction
aaas txn cancel <id> # Cancel (exploring/proposed/accepted/in_progress)
aaas txn complete <id> # Force-complete and archive
aaas ext list # List registered extensions
aaas ext add --name weather --type api --endpoint https://api.weather.com
aaas ext test <name> # Test extension connectivity (HTTP HEAD)
aaas ext remove <name> # Remove an extension
aaas ext edit # Edit extensions/registry.json in $EDITOR
Extension types: api, agent, human, tool.
# Connect to platforms
aaas connect http --port 3300
aaas connect telegram --token YOUR_BOT_TOKEN
aaas connect discord --token YOUR_BOT_TOKEN
aaas connect slack --bot-token xoxb-... --app-token xapp-...
aaas connect whatsapp --access-token TOKEN --phone-number-id ID --verify-token SECRET
# Truuze — three connection modes (any one is enough):
aaas connect truuze --skill ~/Downloads/SKILL.md # provisioning SKILL.md from your Truuze account
aaas connect truuze --token trz_prov_xxx # provisioning token directly
aaas connect truuze --key trz_agent_xxx # existing agent API key
# Optional: --username, --name, --description, --job-title
# Whatever you skip is prompted for. The skill file at skills/truuze/SKILL.md
# is rendered automatically after a successful connect.
# Relay (no public server needed for WhatsApp or HTTP)
aaas connect whatsapp --access-token ... --phone-number-id ... --verify-token ...
aaas connect relay # registers with streetai.org, gives you public URLs
# Manage connections
aaas connections # List all connected platforms
aaas connection-edit <platform> # Edit a connection config in $EDITOR
aaas disconnect <platform> # Remove a platform connection
If you don't have a public server, the relay proxies WhatsApp webhooks and chat widget traffic through streetai.org to your locally-running agent via WebSocket. Your WhatsApp API credentials stay on your machine — the relay only handles message routing.
# 1. Connect WhatsApp credentials (stored locally only)
aaas connect whatsapp --access-token TOKEN --phone-number-id ID --verify-token SECRET
# 2. Register with the relay
aaas connect relay
# 3. Start the agent (connects outbound to streetai.org)
aaas run
After connecting, you get:
https://streetai.org/a/your-agent/widget.jsPOST https://streetai.org/a/your-agent/chathttps://streetai.org/wh/your-agent/webhook (paste into Meta dashboard)aaas run # Start on all connected platforms (foreground)
aaas run <platform> [<platform>] # Start only the listed platforms (e.g. aaas run telegram discord)
aaas run --daemon # Start in the background
aaas run <platform> --daemon # Start only the listed platforms in the background
aaas stop # Stop a running agent
aaas logs # View recent agent activity
aaas logs --days 5 # Show last 5 days
When --daemon is used with a platform filter and a daemon is already running, you'll be prompted to stop the existing daemon and start a fresh one with only the listed platforms. Answer y to swap, or N to leave the current daemon alone.
Bundle a workspace into a single .tar.gz so you can move it to another machine, back it up, or share an agent template with someone else.
# Full export (includes credentials and connection tokens — for your own use)
aaas export # current workspace
aaas export <name> # any registered workspace, no cd required
# Sanitized export (safe to share — strips secrets, ledger, and sessions)
aaas export --no-secrets
aaas export <name> --no-secrets
# Override the output path
aaas export -o /path/to/bundle.tar.gz
# Restore a bundle
aaas import ./mira.tgz # extracts into ./mira/
aaas import ./mira.tgz my-mira # custom target folder
aaas import ./mira.tgz --force # overwrite non-empty target
Default output filename is aaas-<workspace>-<yyyymmdd>.tar.gz; sanitized bundles get a -shareable suffix. The bundle's manifest records what was sanitized so the importer knows what needs reattaching.
What stays in both modes: skill, soul, data, memory, transactions, activity log, extension registry (with operations metadata).
What gets stripped with --no-secrets: LLM API keys, platform connection tokens (bot tokens, Stripe secret key, etc.), SMTP password, Stripe payment ledger, live sessions, and literal extension API keys. {{ENV_VAR}} placeholders are kept since they aren't secrets themselves.
On import of a sanitized bundle, the CLI prompts inline for LLM keys and points to the dashboard for platform reconnection. Imported workspaces are automatically registered, so aaas dashboard <name> and aaas export <name> work from anywhere afterwards.
A hub is a directory containing multiple agent workspaces. Manage all your agents from one place.
# Setup
aaas hub init [dir] # Mark a directory as a hub root
aaas hub config # Edit shared hub config in $EDITOR
aaas hub config --show # Print shared config
# Workspaces
aaas hub list # List all workspaces with status and stats
aaas hub new <name> [desc] # Create a workspace (inherits hub config)
aaas hub new "Aria" --type social # Create a social agent
aaas hub remove <name> --force # Permanently delete a workspace
# Lifecycle
aaas hub run <name> # Start a workspace agent in the background
aaas hub stop <name> # Stop a running workspace agent
# Shared credentials
aaas hub creds list # List shared LLM credentials (masked)
aaas hub creds set anthropic --key sk-ant-...
aaas hub creds remove anthropic
AaaS supports two agent types, specified at creation with --type:
When using aaas chat, drag and drop files from your file manager into the terminal to attach them. The CLI detects absolute file paths (Unix, Windows, Git Bash, file:// URIs), verifies each file exists, and appends an attachment block to your message. The agent can then move these files into its data/ directory.
You: here is the photo /Users/me/Downloads/iphone_13.jpg
[attached: iphone_13.jpg (234KB)]