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 inita.pyfile,signalai submitit) 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/bin — no 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.