Docs Pricing Get live access

Command Reference

Every EdgeProof command, what it does, and its flags. Run edgeproof --help for a short version, or edgeproof <command> --help where supported.

Global

Command Description
edgeproof --version Print the installed version and exit
edgeproof --help List available commands

Setup and health

`edgeproof configure`

Interactive first-time setup wizard for the paper-first Alpaca path: probes your LLM, Alpaca paper account, and Discord source, then writes a .env (0600 permissions) to ~/.config/edgeproof/ (the EdgeProof home; override with EDGEPROOF_HOME). Never asks for a license key. Other brokers are configured afterwards via edgeproof broker setup|auth (see Configuration). See Install.

`edgeproof broker setup `

Configure and authorise a broker that uses OAuth. Currently schwab. Collects your app credentials, writes them to .env (0600), and runs the authorisation flow.

Kept separate from edgeproof configure on purpose: that wizard sets up paper trading, and Schwab has no paper environment. This command states that up front and defaults to declining.

`edgeproof broker auth `

Authorise or re-authorise a broker that uses OAuth.

`edgeproof broker verify`

Exercise the configured broker against its paper environment end to end: connect, read the account, read positions, resolve an option contract, quote it, and list orders. Add --place-order to also submit one contract at an unfillable price and cancel it, proving order submission without risking a fill. --underlying=<SYM> changes the ticker (default SPY).

It refuses to run against live, and refuses live-only brokers (Schwab, Robinhood) outright. Nothing is contacted in either case. Two deliberate exceptions:

--live-order-test=I-ACCEPT-A-REAL-ORDER (the exact phrase, typed in full) runs the order round-trip on a live-only broker: one BUY limit for 1 contract at $0.01 (priced so it cannot plausibly fill), then cancelled, with the cancellation confirmed by re-polling rather than trusted. It requires the broker's live-only acknowledgement to already be set, never sells, and uses a day order so even a failed cancel expires at the close. This is the only way to prove order submission on a broker with no paper environment.

--read-only is the exception, and the only way to exercise a live-only broker. It inspects the account (balances, positions, quotes, orders) and cannot place anything: the broker is wrapped so placeOptionOrder, closePosition and cancelOrder throw before any request is made. That is a structural guarantee rather than a flag, which is why it is allowed against a real account. It cannot be combined with --place-order.

Read the output rather than just the exit code. The cost basis and IV lines are printed for manual comparison against the broker's own UI: a per-share vs per-contract mix-up is internally consistent and passes every automated check while being 100× wrong.

IV n/a is not automatically a bug. Snapshot greeks are intermittent on some feeds (Alpaca's indicative feed returns them only sometimes), so the same contract can report a sane IV on one run and n/a on the next. Re-run before concluding the adapter maps it wrong, and treat a consistently null IV, or one that is off by 100x, as the real signal.

`edgeproof doctor`

Run all system health checks and print a report. Exit code 0 = all pass, 1 = warnings, 2 = failures. A fresh unconfigured machine shows config.load: fail until you run init.

Flag Effect
--json Emit the report as JSON (schema version 1) instead of text. Useful for scripting.
edgeproof doctor
edgeproof doctor --json > report.json

Running the supervisor

`edgeproof start`

Start all trading roles under the supervisor: monitor, positions, ledger, and (in bot mode) discord. Runs a preflight health check first (shows the same ✔/▲/✖ checklist as edgeproof doctor) and refuses to start if any check fails.

Flag Effect
--skip-preflight Start without running preflight checks. Prints a warning. Use only when you have already verified health with doctor.

`edgeproof status`

Show live supervisor status: which roles are running, their PIDs, and the current halt state.

`edgeproof stop`

Stop the supervisor and all roles gracefully. Handles stale PID files, so it is safe to run even after a crash.

Risk controls

`edgeproof halt`

Pause new trade entries within one monitor cycle. Open positions continue to be managed and exits still fire. No restart needed.

Flag Effect
--reason "<text>" Record a reason for the halt, shown in status and logs.
edgeproof halt --reason "stepping away for lunch"

`edgeproof resume`

Resume trade entries after a halt.

`edgeproof flatten`

Place market orders to close all open positions, then halt entries. Use this before going offline for an extended period. This sells real positions in live mode.

Licensing

`edgeproof license activate `

Activate a live-trading license. The key looks like EP-XXXX-XXXX-XXXX-XXXX. Stores a signed token locally; the key is masked in all output.

`edgeproof license status`

Show your plan, days until expiry, and last refresh time.

`edgeproof license refresh`

Force a token refresh from edgeproof.net instead of waiting for the automatic daily refresh. Useful right after renewing. See Licensing.

Telemetry

`edgeproof telemetry`

Show whether operational telemetry is on, and where it would be sent. Off unless you opted in during edgeproof configure; turn it on or off any time with edgeproof configure set EDGEPROOF_TELEMETRY true|false.

`edgeproof telemetry --show`

Print the exact payload: version, OS, uptime, open-position count, install id and license key. Nothing else is ever sent: no symbols, prices, quantities, P&L, credentials, or anything from your channels. Works whether or not telemetry is enabled, so you can look before deciding.

When enabled, a running monitor reports once a day. It is fire-and-forget: a failed report is dropped silently and never affects trading.

Dashboard

`edgeproof dashboard`

Serve the local ledger dashboard at http://127.0.0.1:3030. Bound to localhost only. The dashboard has two panels:

Flag Effect
--port <n> Serve on a different port. Also settable with LEDGER_PORT.
edgeproof dashboard --port 3999

Environment flags

Some behavior is controlled by environment variables rather than flags:

Variable Effect
EDGEPROOF_NO_UPDATE_CHECK=1 Disable the daily version check
LEDGER_PORT Default dashboard port
EDGEPROOF_WORKER_BASE_URL Override the license server (testing)

See the full Config reference for every variable.

Exit codes

Code Meaning
0 Success, or all health checks passed
1 Warnings present (doctor), or a handled error
2 Health-check failures (doctor, or preflight before start)

Note: flags such as --once, --dry-run, and --bypass-trading-hours exist on the internal role processes the supervisor spawns. They are for development and testing, not part of the supported user-facing surface.