Run your bots. Locally. On paper.

Private bots run on your machine through the TradeY CLI. Your strategy file, your infrastructure — TradeY is never in the execution path. In Beta 0 every run is a paper run: live market prices, simulated fills.

How private bots work

Build it once, export it, run it yourself. TradeY never executes the strategy and never touches your funds.

Build in the editor

Author your strategy in the readable strategy language or in TypeScript. The same bot file format works for both surfaces.

Export as a bot file

Export to a single JSON file you own. It validates against the TradeY bot schema, so the CLI refuses a malformed file before anything runs.

Run with the CLI

Hand the file to tradey run --dry-run on your own machine. The CLI streams live market prices, runs your strategy on every closed candle with the same engine as the backtester, and writes an append-only journal of every simulated fill.

Safe by default

The CLI is built to refuse to do the wrong thing. In Beta 0 the strongest guarantee is the simplest one: this build cannot place a real order.

Beta 0 never asks for exchange keys

Paper trading uses public market data, so there is nothing to connect. When live trading returns, keys will be sealed with an Argon2id-derived key and AES-256-GCM (OWASP 2024 parameters) and the passphrase will never be persisted.

No withdraw scope, ever

When key storage returns with live trading, tradey keys add will refuse keys whose advertised permissions include withdrawal, and the runner will check the key's permissions with the exchange before it starts.

No live trading in Beta 0

tradey run --dry-run paper-trades on live market prices with simulated fills. In Beta 0 a bot bound to a real exchange refuses to start, whatever flags you pass — it stops and tells you to paper-trade instead. This build cannot place a real order.

One process per bot

Each running bot is its own OS process with its own client-order-id space and its own journal, so a crash in one bot does not take down another.

The CLI in seven commands

Everything you need to validate, backtest, paper-trade and inspect. tradey help <command> prints every flag and exit code.

tradey validate <bot.json>

Schema + sanity checks for TypeScript and BotScript bots. Refuses bots without a script and public bots without an embedded backtest snapshot.

tradey backtest <bot.json> --candles <ohlcv>

Deterministic offline backtest against a local OHLCV file. --write embeds the resulting snapshot back into the bot file.

tradey keys add <exchange>

Coming soon — not in Beta 0, which never asks for exchange keys. When it returns it stores encrypted credentials in ~/.tradey/keys/, rejects withdraw permissions, and never accepts secrets on the command line.

tradey run <bot.json> --dry-run

Paper trading on live public market data with the backtest engine's fills — the only way to run a bot in Beta 0. Bound the session with --max-candles for smoke tests.

tradey run <bot.json> --allow-experimental-live

Not available in Beta 0. Live execution is disabled in this build and the flag has no effect. It returns, still behind an explicit opt-in, in a later beta.

tradey logs <run-id> --follow

Streams the append-only order journal. Filter by lifecycle, queued, submitted, filled, canceled, or failed.

tradey status

Lists running and recent runs derived from the journals, including runs that stopped unexpectedly.

Build it. Backtest it. Paper-trade it.

Beta 0 is free and paper trading only. Live trading, the marketplace and vaults are not part of it — see the roadmap.