CLI Reference
Comprehensive reference for the Suzi command-line interface — agent management, execution, debugging, and more.
The Suzi CLI (suzi) is the primary tool for managing the agent lifecycle, monitoring performance, and interacting with the Suzi platform. It supports both interactive development and automated headless execution.
Install via npm:
npm install -g suzi-cliGlobal Options
| Option | Description |
|---|---|
-V, --version | Output the version number. |
-h, --help | Display help for any command. |
--json | Available on most commands. Outputs structured JSON instead of formatted text. Useful for scripting, CI/CD pipelines, and LLM-driven automation. |
--no-input | Disables interactive prompts. If a command requires user input, it will fail instead of prompting. Use this in non-interactive environments like CI or automated scripts. |
Authentication
suzi login
Authenticates the CLI with your Suzi account. Opens your default browser to sign in with Google. Once authenticated, the CLI stores your access and refresh tokens locally at ~/.suzi/config.json.
After a successful login, the CLI automatically:
- Installs Suzi skills into the default local skill directories (
~/.claude/skills,~/.codex/skills, and~/.agents/skills) - Sets up shell hooks for context injection
- Prompts you to choose a default AI provider
- Displays your wallet deposit address with a QR code for funding
| Flag | Description |
|---|---|
--headless | Authenticate without a browser. Reads SUZI_SANDBOX_REFRESH_TOKEN from the environment and exchanges it with the backend for an access token. Use this in CI/CD pipelines, E2B sandboxes, or remote servers where no browser is available. |
--invite <code> | Provide an invite code for new account signups. |
--api-url <url> | Override the API base URL. Used for local development and testing. |
--web-url <url> | Override the web app URL. Used for local development and testing. |
# Standard login (opens browser)
suzi login
# Headless login for CI/CD or sandboxed environments
export SUZI_SANDBOX_REFRESH_TOKEN="your_refresh_token"
suzi login --headlessAnyone with a valid SUZI_SANDBOX_REFRESH_TOKEN can seed a CLI session — the token is exchanged with the backend for an access token that authenticates all subsequent commands.
suzi logout
Signs out and clears stored credentials (access token, refresh token, and user data) from ~/.suzi/config.json. Your active account selection is preserved, so logging back in reconnects you to the same account.
suzi logoutsuzi whoami
Displays the current authenticated user, active account ID, and associated wallet addresses (SVM and EVM). Useful for verifying your session is valid. LLMs and automated tools can use this command to check whether the CLI is authenticated before running other commands.
suzi whoamiAccounts
Each account is a named pair of wallets (SVM and EVM). You can create separate accounts for different purposes — for example, one for trading on prediction markets, another for providing liquidity, and so on. This makes it easier to track balances, positions, and agent activity in isolation.
suzi accounts
| Subcommand | Description |
|---|---|
list | List all accounts with their IDs and wallet addresses. |
show | Show wallet addresses for the currently active account. |
fund | Display deposit addresses and QR codes for funding the active account. |
switch <name> | Switch the active account by name. All subsequent commands operate against this account. |
create <name> | Create a new account with fresh SVM and EVM wallets. |
rename <name> <newName> | Rename an existing account. |
delete <name> | Delete an account. Use --force to skip confirmation. |
# List all accounts
suzi accounts list
# Create a new account for prediction market trading
suzi accounts create pm-trading
# Switch to it
suzi accounts switch pm-trading
# Show deposit addresses with QR codes
suzi accounts fundAgent Management
suzi agents list
Lists all your deployed agents with their ID, title, status, and creation date.
suzi agents listsuzi agents view [id]
Shows detailed information about an agent. You can pass an agent ID, ID prefix, or name (case-insensitive). If the match is ambiguous, an interactive picker is shown.
Displays:
- ID, status, description and created/updated timestamps
- Agent spec — version, declared triggers, and resource requirements
- Wallet resources — allocated SVM and EVM addresses (if activated)
# View by name
suzi agents view my-trader
# View by ID prefix
suzi agents view abc12suzi agents code [id]
Displays the deployed source code of an agent.
suzi agents code my-tradersuzi agents delete [id]
Permanently deletes an agent. Asks for confirmation before proceeding.
| Flag | Description |
|---|---|
-f, --force | Skip the confirmation prompt. |
suzi agents delete my-traderDeploy & Validate
suzi agents deploy [file]
Deploys a TypeScript agent file to the Suzi platform. If no file is specified, the CLI looks for a default agent file in the current directory, checking in order: agent.ts, src/agent.ts, index.ts, src/index.ts.
The file must contain a defineAgent() call. The CLI extracts meta.name and meta.description from the agent definition to set the agent's title and description on the platform.
| Flag | Description |
|---|---|
--update <agentId> | Update an existing agent's code instead of creating a new one. |
--activate | Immediately activate the agent after deployment. |
# Deploy from current directory (auto-detects agent file)
suzi agents deploy
# Deploy a specific file
suzi agents deploy ./my-agent.ts
# Update an existing agent and activate it
suzi agents deploy ./my-agent.ts --update abc123 --activatesuzi agents validate [file]
Validates an agent file without deploying it. Sends the code to the API for full validation, including trigger schema checks. Uses the same file resolution as deploy if no file is specified.
suzi agents validate ./my-agent.tsActivation & Execution
suzi agents activate [id]
Activates a deployed agent — this is the "start button." A deployed agent is just code on the platform; activating it makes it live. Once active, the agent subscribes to all its declared triggers (cron schedules, event listeners, etc.) and will begin executing when those triggers fire.
suzi agents activate my-tradersuzi agents deactivate [id]
Stops a running agent and unsubscribes from all its triggers. The agent's code and configuration remain on the platform — you can reactivate it at any time.
| Flag | Description |
|---|---|
-f, --force | Skip the confirmation prompt. |
suzi agents deactivate my-tradersuzi agents execute [id] [trigger]
Manually fires a specific trigger on an agent. The trigger argument is the key name from the agent's triggers object (e.g. manual, rebalance, check_prices).
If no trigger is specified:
- Single trigger — auto-selected
- Multiple triggers — interactive picker is shown
# Auto-selects the only trigger
suzi agents execute my-trader
# Fire a specific trigger by name
suzi agents execute my-trader rebalanceAgent Logs
suzi agents logs [id]
Shows logs emitted by the agent's own code — calls to ctx.log(), ctx.warn(), ctx.error() inside trigger handlers and lifecycle hooks. The agent decides what to log and when.
| Flag | Description |
|---|---|
-n, --limit <n> | Number of log entries to show (default: 20). |
--level <level> | Filter by log level: info, warn, error, debug. |
# Show last 20 logs
suzi agents logs my-trader
# Show only errors, last 50
suzi agents logs my-trader --level error -n 50Agent Config & Store
suzi agents config get [id]
Displays the configuration schema and current values for an agent. These are the config fields declared in the agent's defineAgent() definition — typed settings (number, string, boolean) with defaults, min/max constraints, and descriptions.
suzi agents config get my-tradersuzi agents config set [args...]
Updates configuration values for an agent using key=value pairs. Config values act as variables inside agent code — accessible via ctx.config.get('key') — and can be changed without redeploying. If the agent is active, Suzi automatically deactivates, applies the update, and reactivates it.
# Set a single config value
suzi agents config set my-trader maxBet=50
# Set multiple values at once
suzi agents config set my-trader maxBet=50 minOdds=0.6suzi agents store
Manage an agent's persistent key-value store. The store acts as a local database for the agent — it can read and write data that persists across runs. Agents use this to track state like positions, last processed orders, counters, or any data that needs to survive between trigger executions.
Config vs Store: Config values are parameters you set before the agent runs (like maxBet=50). Store is data the agent itself writes during execution (like lastOrderId, totalPnl).
| Subcommand | Description |
|---|---|
list [id] | List all keys in the agent's store. |
get <id> <key> | Get the value of a specific key. |
set <id> <key> <value> | Set a key-value pair. Value is JSON-parsed. |
delete <id> <key> | Delete a key from the store. |
# List all stored keys
suzi agents store list my-trader
# Check a specific value
suzi agents store get my-trader lastOrderId
# Manually set a value (JSON-parsed)
suzi agents store set my-trader maxExposure 1000Sharing & Import
suzi share create [agentId]
Creates a shareable link for an agent. When someone uses the link, the agent (including its code) is cloned into their account as a new agent. If no agent ID is provided, an interactive picker is shown.
| Flag | Description |
|---|---|
-s, --slug <slug> | Custom slug for the share URL. |
-e, --expires <days> | Number of days before the share link expires. |
-t, --telegram | Generate a share link that opens inside @suziclawbot on Telegram. |
# Create a share link with a custom slug
suzi share create my-trader --slug market-maker --expires 30
# Generate a Telegram share link
suzi share create my-trader --telegramFor the Telegram-first workflow, see Claw: Share & Import.
suzi share list
Lists all share links you've created, with their slugs, clone counts, and expiry status.
suzi share update <agentId>
Update the slug or expiry on an existing share.
suzi share revoke <snapshotId>
Disables a share link. Anyone who already cloned the agent keeps their copy, but the link stops working for new users.
suzi import <slug>
Imports a shared agent by its slug. Shows a preview of the agent (title, description, version, clone count, and required resources) before cloning it into your account.
This is also used by the Telegram bot (@suziclawbot) — when a user opens a share link in Telegram, the bot runs import behind the scenes and passes the agent info to the LLM.
suzi import market-makerFor the user-facing Telegram flow around this, see Claw: Share & Import.
Action Execution & Discovery
suzi agents run <action>
Executes a protocol action directly from the CLI. The action name must be in protocol.action_name format. This is the main way to run one-off actions — testing before writing agent code, or performing quick operations without deploying an agent.
Parameters can be passed as --key value flags (kebab-case is auto-converted to camelCase) or as a JSON string.
| Flag | Description |
|---|---|
--json <params> | Pass all parameters as a JSON string instead of individual flags. |
--dry-run | Preview the request payload without executing. |
--output <format> | Output format: pretty (default) or json. |
# Pass params as flags
suzi agents run polymarket.get_market_price --token-id 0x123
# Pass params as JSON
suzi agents run polymarket.place_order --json '{"tokenId":"0x123","side":"buy","size":"10"}'
# Preview what would be sent
suzi agents run polymarket.place_order --token-id 0x123 --side buy --dry-runIf the action name doesn't match any known action, the CLI suggests similar names.
suzi list-actions (alias: actions)
Lists all available protocol actions. Results are cached locally for performance.
| Flag | Description |
|---|---|
--protocol <name> | Filter actions by protocol (e.g. polymarket, solana). |
--verbose | Show full action signatures with parameter details. |
--schema <actions> | Output the JSON schema for specific actions (comma-separated) or "all". |
# List all protocols and their action counts
suzi actions
# Show all Polymarket actions with full signatures
suzi actions --protocol polymarket --verbose
# Get the JSON schema for a specific action
suzi actions --schema polymarket.place_orderUse suzi list-actions reload to force-refresh the local cache from the API.
suzi list-triggers (alias: triggers)
Lists all available event triggers that agents can subscribe to.
| Flag | Description |
|---|---|
--protocol <name> | Filter triggers by protocol. |
--verbose | Show config fields for each trigger. |
--schema <trigger> | Output the JSON schema for a specific trigger (requires --protocol). |
suzi triggers --protocol polymarket --verbosePortfolio & Finance
suzi portfolio
Displays a complete overview of your account — balances, open positions, and USD values across all protocols and chains (SVM and EVM).
| Flag | Description |
|---|---|
--all-balances | Include dust and low-value balances (hidden by default). |
--svm-wallet <address> | Override the SVM wallet address to query. |
--evm-wallet <address> | Override the EVM wallet address to query. |
suzi portfolio
# Include small balances
suzi portfolio --all-balancessuzi portfolio snapshots
View historical portfolio snapshots over time.
| Flag | Description |
|---|---|
--since <datetime> | Start date filter (ISO 8601, e.g. 2026-03-01). |
--until <datetime> | End date filter (ISO 8601). |
-n, --limit <n> | Number of snapshots (default: 168, max: 1000). |
--order <dir> | Sort order: newest (default) or oldest. |
suzi portfolio snapshots --since 2026-03-01 --limit 50suzi orders [agentId]
View orders, fills, and positions placed by an agent through protocol actions. If no agent ID is given, an interactive picker is shown.
The default view shows all three (orders, fills, and positions) together.
| Subcommand | Description |
|---|---|
list [agentId] | Show only orders. Filterable by --protocol, --status, -n --limit. |
fills [agentId] | Show only fill executions with prices and fees. Filterable by --protocol, -n --limit. |
positions [agentId] | Show only positions with net size, total bought/sold. Filterable by --protocol, --status. |
# Show everything for an agent
suzi orders my-trader
# Show only open orders on Polymarket
suzi orders list my-trader --protocol polymarket --status opensuzi transactions (alias: txns)
View all on-chain transactions going through the Suzi platform — not limited to agents. Covers orders, swaps, bridges, transfers, and more across your account.
| Flag | Description |
|---|---|
-n, --limit <n> | Number of transactions to show (default: 15). |
--type <type> | Filter by type: order, cancel, transfer, swap, bridge, liquidity. |
--protocol <name> | Filter by protocol. |
--agent <id> | Filter by a specific agent. |
--cursor <id> | Pagination cursor from a previous page. |
# Show recent transactions
suzi txns
# Show only swaps for a specific agent
suzi txns --type swap --agent my-traderEnvironment Variables
suzi env
Manage environment variables. These are used to store user-provided keys and secrets — for example, your Claude OAuth token, third-party API keys for use with the HTTP action, or any credentials agents need at runtime. Variables are encrypted at rest and accessible inside agent code via ctx.env.MY_API_KEY.
Variables can be scoped to your account (available to all agents) or to a specific agent.
Running suzi env with no subcommand opens an interactive menu.
| Subcommand | Description |
|---|---|
list | Show all environment variables (values are masked). |
set <key> | Set a variable. Value is prompted as a masked input for security. |
remove <key> | Delete a variable. |
| Flag | Description |
|---|---|
--agent <id> | Scope the variable to a specific agent instead of your account. |
--reveal | Show actual decrypted values instead of masked output. |
Variable names must be uppercase with underscores (e.g. MY_API_KEY).
# Set an account-level API key
suzi env set OPENAI_API_KEY
# Set a variable scoped to a specific agent
suzi env set WEBHOOK_URL --agent my-trader
# List all variables (masked)
suzi env list
# List with decrypted values
suzi env list --revealObservability & Debugging
The debug namespace gives you deep backend observability. While suzi agents logs shows what the agent self-reported (via ctx.log()), the debug commands show the full picture from Datadog and the database — including backend errors, execution internals, and infrastructure issues that the agent code itself may not be aware of. All logs are attributed by agent ID.
suzi debug logs [agentId]
Fetch raw Datadog logs for an agent.
| Flag | Description |
|---|---|
--status <level> | Filter by log level: error, warn, info, debug. |
--time-range <range> | Lookback window (default: now-1h). Examples: now-15m, now-1d. |
--limit <n> | Max results, 1–1000 (default: 25). |
--query <q> | Raw Datadog query to append for advanced filtering. |
--cursor <cursor> | Pagination cursor from a previous response. |
# Last hour of errors
suzi debug logs my-trader --status error
# Last 24 hours, custom query
suzi debug logs my-trader --time-range now-1d --query "timeout"suzi debug aggregate [agentId]
Aggregates Datadog log counts, optionally grouped by a field. Instead of individual log lines, you get totals — useful for pattern recognition like "how often is my agent erroring?"
| Flag | Description |
|---|---|
--group-by <field> | Group results by a field (e.g. status, service). |
--time-range <range> | Lookback window (default: now-1h). |
--query <q> | Raw Datadog query to append. |
suzi debug aggregate my-trader --group-by status --time-range now-1hsuzi debug db-logs [agentId]
Same data source as suzi agents logs (self-reported ctx.log() calls from the database) but with more control:
- Filter by
--run-idto isolate logs from a single execution run - Server-side cursor pagination (
--cursor) for scrolling through large volumes - Higher default limit (50 vs 20)
- Shows Run ID column so you can correlate logs to specific runs
| Flag | Description |
|---|---|
--level <level> | Filter by level: info, warn, error, debug. |
--run-id <id> | Show logs only from a specific run. |
-n, --limit <n> | Number of entries (default: 50). |
--cursor <cursor> | Pagination cursor from a previous response. |
# Isolate logs from a single run
suzi debug db-logs my-trader --run-id abc123suzi debug executions [agentId]
Shows every action your agent called and what happened — from the action_executions table. Each row shows the action name, status, run ID, and error (if any). For failed executions, the full input and output are displayed so you can see exactly what the agent tried and what came back.
Use this when an agent logged "placing order" but nothing happened — check executions to see if the action was actually called and why it failed.
| Flag | Description |
|---|---|
--status <status> | Filter by status (e.g. completed, failed). |
-n, --limit <n> | Number of entries. |
suzi debug executions my-trader --status failedsuzi debug runs [agentId]
The highest-level view — each row is one complete agent invocation. Shows when it started, which trigger fired, how many action executions succeeded or failed, and the overall outcome.
Key columns:
- Status:
running,completed,failed— the lifecycle state. - Outcome:
success,degraded,failed— the logical result. An agent can "complete" but have a "degraded" outcome if some actions failed. - Exec Fails: ratio like
2/5meaning 2 of 5 action executions failed. - Trigger: which trigger fired (
manual,cron, event name).
| Flag | Description |
|---|---|
--status <status> | Filter runs by status. |
--status-mode <mode> | effective (default) treats "completed but degraded" as failure. raw shows only actual lifecycle failures. |
-n, --limit <n> | Number of entries. |
suzi debug runs my-trader --status failedAI & Tooling Integration
suzi start [dir]
Launches an AI-assisted coding session using Claude Code or Codex. Opens a session in the specified directory (or current directory) where you can build an agent interactively with AI help.
Session locking: Creates a .suzi-lock file to prevent concurrent modifications. If you return to a directory with an active session, the CLI will offer to resume it. Use --force to bypass the lock and start fresh.
| Flag | Description |
|---|---|
--ai <provider> | Choose AI provider: claude or codex. |
--set-default <provider> | Set your default AI provider for future sessions. |
--id <agentId> | Clone mode — fetches an existing agent's code and opens a session to edit it locally. |
--no-scaffold | Skip creating the agent.ts template file. |
--force | Bypass existing session lock and start a new session. |
# Start a new session
suzi start
# Start with Codex
suzi start --ai codex
# Clone an existing agent and edit it
suzi start --id abc123
# Set Claude as default provider
suzi start --set-default claudesuzi resume
Reconnects to an active AI session, preserving the full conversation context. Use --id <sessionId> to target a specific session, or run without arguments for an interactive picker.
suzi resume
suzi resume --id session_abc123suzi skills
Manage Suzi skills. Skills are installed locally and provide specialized context and capabilities during AI sessions.
| Subcommand | Description |
|---|---|
| (default) | List all available skills with their install status. |
show <name> | View a skill's details and files. |
add [name] | Install a skill. |
sync | Force refresh and reinstall all installed skills from the registry. |
| Flag | Description |
|---|---|
--dir <path> | Custom output directory for skill files. |
# List available skills
suzi skills
# Install a skill
suzi skills add suzi-guide
# Install to a custom directory instead of the default targets
suzi skills add suzi-guide --dir ./tmp/skills
# Reinstall all skills
suzi skills syncsuzi install-hooks
Installs pre-made Claude Code hooks that inject dynamic Suzi context into every session automatically. This gives Claude Code awareness of your agents, account state, and available actions without you having to explain it each time.
| Flag | Description |
|---|---|
--preferences | Also create a starter preferences.md file. |
suzi install-hooksPreferences
suzi preferences
View and manage user settings.
| Subcommand | Description |
|---|---|
set <key> <value> | Update a setting. Supported keys: api-url, web-url. |
telegram | Generate a link to connect your Telegram account to Suzi Claw. |
# Set a custom API URL (for local development)
suzi preferences set api-url http://localhost:3001
# Connect Telegram
suzi preferences telegramFor the full Telegram setup flow, see Claw: Getting Started.
Utilities
suzi update
Check for and install CLI updates.
| Flag | Description |
|---|---|
--check | Show the latest available version without updating. |
-y, --yes | Update immediately without prompting. |
--manager <manager> | Package manager to use: npm, yarn, pnpm, or bun. |
--no-prompt | Print the update command instead of running it. |
# Check for updates
suzi update --check
# Update immediately
suzi update -ysuzi feedback
Submit feedback directly to the Suzi team — bug reports, feature requests, or general comments. Includes recent CLI context automatically for better debugging.
suzi feedback