SignalAI

CLI

signalai is the agent-agnostic command line: any coding agent (Codex, Cursor, Aider, Gemini CLI), CI job, or shell can drive SignalAI by shelling out to it — unlike the Claude connector, it isn't tied to one agent. Every read command supports --json.

It's written in Rust and talks the backend directly; login uses the same OAuth 2.1 + PKCE browser flow as the web app.

The old Python authoring flow (signalai init a .py file, signalai submit it) has been removed — strategies are Rust now. This CLI submits Rust and inspects your account.

Install

curl -fsSL https://signal-ai-mu.vercel.app/install.sh | sh

Downloads the prebuilt signalai binary for your platform (macOS arm64, Linux x64) to ~/.local/binno Rust toolchain required. The installer verifies a SHA-256 checksum.

From source instead (needs cargo):

cargo install --path cli   # from a SignalAI repo checkout

Log in

signalai login                  # opens your browser, saves the token (0600 file)
signalai login --token <tok>    # headless: store an API token directly
signalai whoami

Headless / CI: mint a token from API tokens and set SIGNALAI_TOKEN, or pass --token.

Backtests

# submit a local Rust strategy (stored as a version, compiled + run server-side)
signalai backtests submit strategy.rs --symbols AAPL,MSFT --from 2024-01-01 --to 2024-01-31 \
  [--resolution daily|minute] [--cash 100000] [--params '{"lookback":50}']

# or run an already-saved strategy by id (no compile)
signalai backtests submit --strategy <id> --symbols AAPL --from 2024-01-01 --to 2024-01-31

signalai backtests get <id> --json
signalai backtests list --json

Signals & strategies

signalai strategies list --json
signalai strategies show <id> --json

signalai signals list --json
signalai signals show <id> --json
signalai signals history <id> [--from 2024-01-01] [--to 2024-06-01] [--limit 500] --json

--backend <url> (or SIGNALAI_BACKEND_URL) targets a non-default backend. View full backtest results at your backtests.