CLI reference
Generated by scripts/docgen/cli-ref. Do not edit by hand. Run make docs-regen after changing internal/cli/cli.go or internal/cli/catalog.go.
canary is one binary with 43 subcommands, listed here in registry order. canary status comes first on purpose: when anything else fails, it is the command that says whether the daemon is running and the gateway is reachable. Running canary with no arguments prints the grouped command summary.
Add --json to a data command for machine-readable output instead of a table. Commands that accept --watch redraw on an interval set by --rate, as in canary account --watch --rate 1s. Color is on for terminals and off for pipes; NO_COLOR=1 turns it off, and CANARY_COLOR=always or CANARY_COLOR=never forces it either way.
The flag tables below come from the shared command catalog. Run canary <command> --help for the flags a command parses today, with their help text. That output is the authority if the two ever disagree.
The guard column says what a command does: read-only reads and prints, local writes local setup or configuration state, and confirm reaches something a human has to decide first. Where subcommands carry different guards, the summary shows the strictest one and the command's own section lists the split. The guard is documentation of behavior, not the mechanism that enforces it. The real gates live in the CLI. Standard builds have no broker-write path compiled in at all; they still preview orders, which creates no order. The separate trading build adds that path, and it still requires a verified gateway session, a submit-eligible preview token where one applies, a local journal entry, daemon authorization, and trading.freeze set to false. Nothing on this page grants any of that.
The group column is the heading a command appears under in canary --help: Desk is the account, its positions, orders and risk; Markets is broad-market regime and named-symbol technical evidence; System is running Canary itself. It is a reading aid for a long command list and says nothing about what a command may do — that is the guard.
Command summary
| Command | Group | Summary | Guard | MCP tool |
|---|---|---|---|---|
canary status |
Desk | Check Canary and the broker connection | read-only |
yes |
canary data |
Markets | Check data availability and freshness | read-only |
yes |
canary account |
Desk | Account summary snapshot (NLV, BP, cash, margin, daily P&L) | read-only |
yes |
canary positions |
Desk | List open stock, option, bill and bond positions | read-only |
yes |
canary strategies |
Desk | Group option legs and close or reduce them as one guaranteed combo | confirm |
yes |
canary portfolio |
Desk | Signed allocation by asset class and GICS sector, with coverage; plan reads the next portfolio action | read-only |
yes |
canary market |
Markets | Observed quotes, price history and a daily price/breadth/volume tape | read-only |
yes |
canary technical |
Markets | Trend, relative strength, ATR, and liquidity from daily bars | read-only |
yes |
canary locks |
Desk | Keep hedges and core holdings out of every bulk or automatic reduction; places no orders | local |
CLI only |
canary watchlist |
Markets | View and edit your saved watchlist; no orders or risk-limit changes | local |
CLI only |
canary add |
Desk | Plan a stock addition or opening and review it through existing order confirmation | read-only |
yes |
canary setups |
Markets | Review volume signals, find standard call options and check prices after entry; no orders or risk-limit changes | read-only |
CLI only |
canary chains |
Markets | Daily option-chain snapshots the recorder kept: coverage per run and a CSV export of quotes, IV, greeks and open interest | read-only |
CLI only |
canary calendar |
Markets | Official exchange sessions, holidays, early closes, and coverage bounds | read-only |
yes |
canary macro |
Markets | Public economic calendar, official publications and source coverage | read-only |
yes |
canary regime |
Markets | Detailed broad-market regime across volatility, credit, funding, FX, gamma, and breadth | read-only |
yes |
canary stress |
Desk | Portfolio stress with margin, exposure, concentration, options, protection, and source evidence | read-only |
yes |
canary mandate |
Desk | Mandate risk budget: the book's ex-ante volatility against the owner's budget, what drives it, gap and index stresses, and whether additions are open | read-only |
yes |
canary core |
Desk | Core sleeve target: the month's trend and volatility decision, the target shares, the holding, the band and what the rule would trade; live, the month's row waiting for your confirmation and the last decision. Reads only | read-only |
yes |
canary strategy |
Desk | A registered strategy's target by its id in the strategy register: its month's decision, target, paper position and what its rule would trade, in the core's shape; with --replay, its rule run over the month-ends FROM TO on the daemon's own history, the table the lab's replay-compare reads; read-only, no orders |
read-only |
yes |
canary brief |
Desk | Combined post- and pre-trade operator brief with disclosed source degradation | read-only |
yes |
canary edge |
Desk | Review past trading decisions using broker records; replay long-option exit rules over your own option trades | read-only |
yes |
canary scorecard |
Desk | Score past decisions per strategy against the underlying's own history, with sequential evidence and gates | read-only |
yes |
canary short-interest |
Desk | Screen FINRA short positions across US equities | read-only |
yes |
canary lending |
Desk | Read lending income, borrowing fees and stock market context | read-only |
yes |
canary rules |
Desk | Advisory daily trading rule checklist, hardest breach first, against limits you can set | read-only |
yes |
canary policy |
Desk | Every policy and setting in force, capital/drawdown state, plausibility check, overrides (human-only writes) | confirm |
CLI only |
canary recon |
Desk | Post-trade reconciliation: broker statement flows vs the declared capital ledger | confirm |
CLI only |
canary reporting |
Desk | IBKR statement reporting status, performance series and execution costs for Recon and Edge | read-only |
yes |
canary proposals |
Desk | Review proposals to close or reduce positions | confirm |
yes |
canary opportunities |
Desk | Review option exercise opportunities | confirm |
yes |
canary trading |
Desk | Check trading permissions and what blocks orders | read-only |
yes |
canary settings |
System | View settings and change supported preferences | confirm |
yes |
canary orders |
Desk | Read current-context local order lifecycle state without transmitting orders | read-only |
yes |
canary order |
Desk | Preview, place, change, cancel or check orders | confirm |
yes |
canary app |
System | Run the paired mobile app | confirm |
CLI only |
canary mcp |
System | Run Canary’s connection for AI assistants (MCP) | local |
CLI only |
canary daemon |
System | Run the background broker connection (usually starts automatically) | local |
CLI only |
canary setup |
System | Set up an AI assistant, the mobile app or broker statements | local |
CLI only |
canary update |
System | Install the latest Canary release | confirm |
CLI only |
canary restart |
System | Restart Canary and any running mobile app server | confirm |
CLI only |
canary stop |
System | Stop Canary and the mobile app server | confirm |
CLI only |
canary version |
System | Print version, commit, build date | local |
CLI only |
canary status
Check Canary and the broker connection.
Guard read-only. Also available as an MCP tool.
canary status [--json] [--gateway-diagnostics]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--json |
no | - |
canary data
Check data availability and freshness.
Guard read-only. Also available as an MCP tool.
canary data health [--offset N --limit N --revision ID] [--json]
canary data check [--json]
Subcommands: health, check.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--offset |
yes | - |
--limit |
yes | - |
--revision |
yes | - |
--json |
no | - |
canary account
Account summary snapshot (NLV, BP, cash, margin, daily P&L).
Guard read-only. Also available as an MCP tool.
canary account [--watch --rate 1s] [--json]
canary account --settlement-probe --json
canary account --currency-settlement-probe --json
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--watch |
no | - |
--rate |
yes | - |
--json |
no | - |
--settlement-probe |
no | - |
--currency-settlement-probe |
no | - |
canary positions
List open stock, option, bill and bond positions.
Guard read-only. Also available as an MCP tool.
canary positions [--symbol SYM] [--type stk|opt] [--sort alpha|pnl|value] [--quotes] [--by underlying] [--watch --rate 1s] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--symbol |
yes | - |
--type |
yes | stk, opt |
--sort |
yes | alpha, pnl, value |
--quotes |
no | - |
--by |
yes | underlying |
--view |
yes | full, risk |
--watch |
no | - |
--rate |
yes | - |
--json |
no | - |
canary strategies
Group option legs and close or reduce them as one guaranteed combo.
Guard confirm. Also available as an MCP tool.
canary strategies list [--json]
canary strategies close ID REVISION [--limit PRICE] [--submit]
canary strategies reduce ID REVISION --units N [--limit PRICE] [--submit]
Subcommands
| Subcommand | Guard |
|---|---|
list |
read-only |
close |
confirm |
reduce |
confirm |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--units |
yes | - |
--limit |
yes | - |
--timeout |
yes | - |
--submit |
no | - |
--json |
no | - |
canary portfolio
Signed allocation by asset class and GICS sector, with coverage; plan reads the next portfolio action.
Guard read-only. Also available as an MCP tool.
canary portfolio [plan] [--json]
Subcommands: plan.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--json |
no | - |
canary market
Observed quotes, price history and a daily price/breadth/volume tape.
Guard read-only. Also available as an MCP tool.
canary market [--symbol SYMBOL --range 1D] [--json]
canary market tape [--history] [--before YYYY-MM-DD] [--sessions 5] [--explain] [--json]
Subcommands: tape.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--watch |
no | - |
--symbol |
yes | - |
--range |
yes | 1D, 5D, 1M, 6M, YTD, 1Y, 5Y |
--sessions |
yes | - |
--explain |
no | - |
--history |
no | - |
--before |
yes | - |
--exchange |
yes | - |
--type |
yes | STK, IND, CASH, BILL, BOND |
--currency |
yes | - |
--json |
no | - |
canary technical
Trend, relative strength, ATR, and liquidity from daily bars.
Guard read-only. Also available as an MCP tool.
canary technical SYM[,SYM...] [--benchmark SPY] [--market us|de|uk] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--benchmark |
yes | - |
--market |
yes | us, de, uk |
--lookback-days |
yes | - |
--exchange |
yes | - |
--primary |
yes | - |
--currency |
yes | - |
--json |
no | - |
canary locks
Keep hedges and core holdings out of every bulk or automatic reduction; places no orders.
Guard local. CLI only, with no MCP tool: owner keep list for bulk and automatic reductions; owner CLI and console only, no model tool.
canary locks list [--json]
canary locks lock|unlock SYMBOL --con-id ID [--role hedge|core] [--expected-revision N] [--request-id ID] [--json]
Subcommands
| Subcommand | Guard |
|---|---|
list |
read-only |
lock |
local |
unlock |
local |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--con-id |
yes | - |
--role |
yes | - |
--expected-revision |
yes | - |
--request-id |
yes | - |
--json |
no | - |
canary watchlist
View and edit your saved watchlist; no orders or risk-limit changes.
Guard local. CLI only, with no MCP tool: owner-managed local preferences; typed read-only client and owner CLI, no model mutation tool.
canary watchlist list [--json]
canary watchlist add|remove SYMBOL [--con-id ID] [--expected-revision N] [--request-id ID] [--json]
canary watchlist replace --spec PATH|- [--json]
Subcommands
| Subcommand | Guard |
|---|---|
list |
read-only |
add |
local |
remove |
local |
replace |
local |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--spec |
yes | - |
--con-id |
yes | - |
--expected-revision |
yes | - |
--request-id |
yes | - |
--json |
no | - |
canary add
Plan a stock addition or opening and review it through existing order confirmation.
plan checks a stock addition or opening; preview creates an exact order review for separate owner confirmation through the existing order path. Neither places an order. Choose exactly one of --quantity or --max. An optional --stop-price applies only to added shares, uses GTC regular-session instructions, and stays held until the entry fills completely. Existing protection requires a separate review.
canary add plan SYNA --currency USD --limit 100 --quantity 3
canary add preview SYNA --currency USD --limit 100 --quantity 3 --stop-price 90 --json
market and call-plan read exactly one JSON object from standard input and always return JSON, even without --json. Unknown fields, extra objects, positional arguments and stock-only flags are rejected. These are read-only broker requests. The examples below use synthetic identities: replace the stock symbol and use the exact returned call contract, including its broker identity.
Stock quotes and call discovery
canary add market --json <<'JSON'
{
"underlying": {
"symbol": "SYNA",
"sec_type": "STK",
"currency": "USD",
"exchange": "SMART"
},
"discover": true
}
JSON
| Request field | Meaning |
|---|---|
underlying |
Required stock contract: symbol, sec_type: "STK", uppercase three-letter currency, exchange: "SMART"; optional known con_id. |
discover |
Optional boolean, default false. Discover call candidates for a USD stock. Omit for stock quotes alone. |
selected |
Optional exact call contract returned by discovery; refresh that selection. |
refresh |
Optional array of up to four {"horizon_days": 30, "contract": {...}} objects. Horizons must be unique and one of 14, 30, 60 or 120. Cannot be combined with discover: true. |
Calls require USD. Each selected or refreshed contract must match the underlying symbol and carry its resolved con_id, sec_type: "OPT", currency: "USD", exchange: "SMART", expiry, positive strike, right: "C", multiplier: 100 and trading_class. Copy the returned contract rather than assembling a broker identity.
The response includes the resolved underlying, stock quote, price_increments, and optional calls or selected rows. Read option_mode (live, planning, or unavailable), options_session, and each row's planning or unavailable evidence. Closed-session planning prices are not executable quotes. Discovery grants no order authority or risk capacity.
Size a selected call
canary add call-plan --json <<'JSON'
{
"contract": {
"symbol": "SYNA",
"con_id": 10001,
"sec_type": "OPT",
"currency": "USD",
"exchange": "SMART",
"expiry": "20300118",
"strike": 100,
"right": "C",
"multiplier": 100,
"trading_class": "SYNA"
},
"limit_price": 5.5,
"budget": 5000,
"round_size": false
}
JSON
| Request field | Meaning |
|---|---|
contract |
Required exact USD SMART call returned by market; same contract fields as above, with expiry YYYYMMDD more than seven days away. |
limit_price |
Required positive premium per underlying share in USD; each standard contract represents 100 shares. |
budget |
Required positive total USD debit including the broker fee bound, at most 1000000000. |
round_size |
Optional boolean, default false. Round to the nearest five contracts while retaining quantities of one or two. Rounding can exceed the budget. |
The options session must be open. Read quantity, debit, fee_bound, and over_budget before using a result; debit includes the fee bound. Sizing returns no submission token and reserves no money. An exact order preview and separate owner confirmation are still required.
MCP exposes stock planning through canary_stock_add; market, call-plan and preview are CLI surfaces, not MCP tools.
Guard read-only. Also available as an MCP tool.
canary add plan|preview SYMBOL --currency CCY --limit PRICE (--quantity N|--max) [--con-id ID] [--stop-price PRICE] [--json]
canary add market [--json] < request.json
canary add call-plan [--json] < request.json
Subcommands: plan, preview, market, call-plan.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--limit |
yes | - |
--stop-price |
yes | - |
--quantity |
yes | - |
--max |
no | - |
--currency |
yes | - |
--con-id |
yes | - |
--exchange |
yes | - |
--adaptive-priority |
yes | Normal, Patient, Urgent |
--json |
no | - |
canary setups
Review volume signals, find standard call options and check prices after entry; no orders or risk-limit changes.
options reads in three steps: listed expiries; with --expiry, up to 21 listed call strikes around the underlying price, which carry no prices (status: not_requested); with --strike, the exact call. Only that exact call carries a quote, read once within 5 seconds on a market-data line opened for this request: status: quoted with bid, ask, as_of and data_type when both sides are finite and positive, the bid is at most the ask, as_of is no more than 60 seconds old, and the broker labelled the data live, delayed, frozen or delayed-frozen. Anything else is status: missing with no prices. A missing quote never fails the selection, and the order preview still prices any order.
Guard read-only. CLI only, with no MCP tool: owner-configured entry observations ship through CLI and the typed host client first; no model tool or automatic playbook activation.
canary setups evaluate --spec PATH|- --symbol SYMBOL [--con-id ID] [--at RFC3339] [--json]
canary setups options --symbol SYMBOL --con-id ID [--expiry YYYYMMDD] [--strike N] [--json]
canary setups coverage [--session YYYY-MM-DD] [--symbol SYMBOL] [--json]
canary setups markouts [--order-ref REF] [--since YYYY-MM-DD] [--symbol SYMBOL] [--json]
Subcommands: evaluate, options, coverage, markouts.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--spec |
yes | - |
--symbol |
yes | - |
--con-id |
yes | - |
--at |
yes | - |
--expiry |
yes | - |
--strike |
yes | - |
--session |
yes | - |
--order-ref |
yes | - |
--since |
yes | - |
--json |
no | - |
canary chains
Daily option-chain snapshots the recorder kept: coverage per run and a CSV export of quotes, IV, greeks and open interest.
Guard read-only. CLI only, with no MCP tool: research panel of recorded option chains: bulk CSV export and run coverage for the owner, not a decision input; read-only CLI and RPC only.
canary chains recorded [--symbol SYM] [--date YYYY-MM-DD] [--limit N] [--json|--csv]
Subcommands: recorded.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--symbol |
yes | - |
--date |
yes | - |
--limit |
yes | - |
--json |
no | - |
--csv |
no | - |
canary calendar
Official exchange sessions, holidays, early closes, and coverage bounds.
Guard read-only. Also available as an MCP tool.
canary calendar [--market us|us-options|de|uk|jp|hk] [--date YYYY-MM-DD] [--at RFC3339] [--days N] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--market |
yes | us, us-options, de, uk, jp, hk |
--date |
yes | - |
--at |
yes | - |
--days |
yes | - |
--json |
no | - |
canary macro
Public economic calendar, official publications and source coverage.
Guard read-only. Also available as an MCP tool.
canary macro [--window-start DATE --window-end DATE] [--details] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--details |
no | - |
--window-start |
yes | - |
--window-end |
yes | - |
--json |
no | - |
canary regime
Detailed broad-market regime across volatility, credit, funding, FX, gamma, and breadth.
Recorded readings from stale authority are explicit. --explain includes observation times, thresholds, calibration, and source diagnostics. JSON preserves detailed measurements; --profiles opts into large gamma arrays.
Guard read-only. Also available as an MCP tool.
canary regime [--explain] [--json [--view full|monitor] [--profiles]]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--explain |
no | - |
--view |
yes | full, monitor |
--profiles |
no | - |
--json |
no | - |
canary stress
Portfolio stress with margin, exposure, concentration, options, protection, and source evidence.
The default view separates findings from coverage gaps. --details includes quiet evidence and diagnostics. Required-input failures remain nonzero exits, with full error detail available explicitly.
Guard read-only. Also available as an MCP tool.
canary stress [--details] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--details |
no | - |
--json |
no | - |
canary mandate
Mandate risk budget: the book's ex-ante volatility against the owner's budget, what drives it, gap and index stresses, and whether additions are open.
Guard read-only. Also available as an MCP tool.
canary mandate [--refresh] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--refresh |
no | - |
--json |
no | - |
canary core
Core sleeve target: the month's trend and volatility decision, the target shares, the holding, the band and what the rule would trade; live, the month's row waiting for your confirmation and the last decision. Reads only.
Guard read-only. Also available as an MCP tool.
canary core [--refresh] [--json]
canary core resolve [--isin ISIN] [--currency CCY] [--json]
Subcommands: resolve.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--refresh |
no | - |
--isin |
yes | - |
--currency |
yes | - |
--json |
no | - |
canary strategy
A registered strategy's target by its id in the strategy register: its month's decision, target, paper position and what its rule would trade, in the core's shape; with --replay, its rule run over the month-ends FROM TO on the daemon's own history, the table the lab's replay-compare reads; read-only, no orders.
Guard read-only. Also available as an MCP tool.
canary strategy ID [--refresh] [--json]
canary strategy ID --replay FROM TO [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--refresh |
no | - |
--replay |
no | - |
--json |
no | - |
canary brief
Combined post- and pre-trade operator brief with disclosed source degradation.
The default view prioritizes assessment completeness, findings, dated context, and coverage gaps. --details retains the full Review/Ready evidence and input diagnostics; JSON retains all typed rows and the daemon-authored overview.
Guard read-only. Also available as an MCP tool.
canary brief [--details] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--details |
no | - |
--json |
no | - |
canary edge
Review past trading decisions using broker records; replay long-option exit rules over your own option trades.
Guard read-only. Also available as an MCP tool.
canary edge [--window 90d|365d] [--horizon 1|5|20] [--limit N] [--change ID] [--option ID] [--option-offset N] [--option-limit N] [--all-options] [--json]
canary edge replay [--from YYYY-MM-DD] [--to YYYY-MM-DD] [--rules A,B,C,D,loss_exit,...] [--json]
Subcommands: replay.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--window |
yes | 90d, 365d |
--horizon |
yes | 1, 5, 20 |
--limit |
yes | - |
--change |
yes | - |
--option |
yes | - |
--option-offset |
yes | - |
--option-limit |
yes | - |
--all-options |
no | - |
--from |
yes | - |
--to |
yes | - |
--rules |
yes | - |
--json |
no | - |
canary scorecard
Score past decisions per strategy against the underlying's own history, with sequential evidence and gates.
Guard read-only. Also available as an MCP tool.
canary scorecard [--sleeve S] [--horizon 5|10|21] [--limit N] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--sleeve |
yes | - |
--horizon |
yes | 5, 10, 21 |
--limit |
yes | - |
--json |
no | - |
canary short-interest
Screen FINRA short positions across US equities.
Guard read-only. Also available as an MCP tool.
canary short-interest screen [--listed-only] [--min-average-volume SHARES] [--min-days-to-cover N] [--min-price USD] [--min-avg-dollar-volume-20d USD] [--sort-by FIELD] [--sort-dir asc|desc] [--limit N] [--exclude SYMBOL,...] [--json]
Subcommands: screen.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--min-price |
yes | - |
--min-avg-dollar-volume-20d |
yes | - |
--min-average-volume |
yes | - |
--min-days-to-cover |
yes | - |
--sort-by |
yes | symbol, short_interest_shares, days_to_cover, change_pct, average_daily_volume, price, day_change_pct, volume, avg_dollar_volume_20d, ytd_change_pct, fee_rate |
--sort-dir |
yes | asc, desc |
--limit |
yes | - |
--exclude |
yes | - |
--listed-only |
no | - |
--json |
no | - |
canary lending
Read lending income, borrowing fees and stock market context.
Guard read-only. Also available as an MCP tool.
canary lending screen [--min-rate PERCENT] [--min-price USD] [--min-avg-dollar-volume-20d USD] [--min-high-dates N] [--sort-by FIELD] [--sort-dir asc|desc] [--limit N] [--exclude SYMBOL,...] [--json]
canary lending market --symbols SYMBOL,... [--json]
canary lending rates --symbols SYMBOL,... [--json]
canary lending fees [--window 90d|365d] [--from YYYY-MM-DD --to YYYY-MM-DD] [--con-id ID] [--limit N] [--cursor CURSOR] [--fingerprint ID] [--json]
Subcommands: fees, rates, screen, market.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--min-rate |
yes | - |
--min-price |
yes | - |
--min-avg-dollar-volume-20d |
yes | - |
--min-high-dates |
yes | - |
--sort-by |
yes | symbol, price, day_change_pct, volume, avg_dollar_volume_20d, ytd_change_pct, fee_rate, high_dates |
--sort-dir |
yes | asc, desc |
--exclude |
yes | - |
--symbols |
yes | - |
--window |
yes | 90d, 365d |
--from |
yes | - |
--to |
yes | - |
--con-id |
yes | - |
--limit |
yes | - |
--cursor |
yes | - |
--fingerprint |
yes | - |
--json |
no | - |
canary rules
Advisory daily trading rule checklist, hardest breach first, against limits you can set.
Guard read-only. Also available as an MCP tool.
canary rules [--all] [--symbol SYM] [--json]
canary rules history [--since YYYY-MM-DD|RFC3339] [--until YYYY-MM-DD|RFC3339] [--rule ID] [--limit N] [--json]
canary rules policy [--json]
canary rules policy set KEY=VALUE… [--file PATH]
canary rules policy reset KEY…|--all [--file PATH]
Subcommands: history, policy.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--all |
no | - |
--symbol |
yes | - |
--since |
yes | - |
--until |
yes | - |
--rule |
yes | - |
--limit |
yes | - |
--file |
yes | - |
--json |
no | - |
canary policy
Every policy and setting in force, capital/drawdown state, plausibility check, overrides (human-only writes).
Guard read-only, with confirm subcommands. CLI only, with no MCP tool: risk-constitution surface deferred from MCP in phase 1 (internal-docs/design/risk-policy.md): its writes are human-only governance acts the daemon rejects from agents, and the read view ships CLI-first; revisit after the phase-2 manual cadence. The read-only plausibility check (policy check) is exposed as canary_policy_check.
canary policy show [SECTION] [--explain] [--json]
canary policy check [--offline] [--config PATH] [--json]
canary policy capital-event deposit|withdrawal [--amount F] [--effective-at TIME] [--note S]
canary policy capital-event reconcile [--report ID]
canary policy override --control KEY --reason S --hours N
canary policy reset-drawdown --reason S
canary policy correct-peak (--from-statements|--peak F) --reason S
canary policy default rulebook|protection|opportunity|constitution
canary policy ensure [--dry-run|--apply-plan FILE] [--config PATH] [--json]
Subcommands
| Subcommand | Guard |
|---|---|
show |
read-only |
check |
read-only |
capital-event |
confirm |
override |
confirm |
reset-drawdown |
confirm |
correct-peak |
confirm |
default |
local |
ensure |
local |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--explain |
no | - |
--amount |
yes | - |
--effective-at |
yes | - |
--note |
yes | - |
--control |
yes | - |
--reason |
yes | - |
--hours |
yes | - |
--report |
yes | - |
--peak |
yes | - |
--from-statements |
no | - |
--dry-run |
no | - |
--apply-plan |
yes | - |
--config |
yes | - |
--offline |
no | - |
--json |
no | - |
canary recon
Post-trade reconciliation: broker statement flows vs the declared capital ledger.
Guard read-only, with confirm subcommands. CLI only, with no MCP tool: post-trade reconciliation surface deferred from MCP in phase 3a (internal-docs/design/post-trade-truth.md): dismiss/sign-off are human-only governance acts and the read view ships CLI-first, same posture as policy; revisit together with it.
canary recon show [--refresh] [--json]
canary recon backtest [--refresh] [--json]
canary recon equity [--since YYYY-MM-DD|RFC3339] [--until YYYY-MM-DD|RFC3339] [--limit N] [--json]
canary recon dismiss --line ID --reason S
Subcommands
| Subcommand | Guard |
|---|---|
status |
read-only |
show |
read-only |
backtest |
read-only |
equity |
read-only |
dismiss |
confirm |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--refresh |
no | - |
--line |
yes | - |
--reason |
yes | - |
--since |
yes | - |
--until |
yes | - |
--limit |
yes | - |
--json |
no | - |
canary reporting
IBKR statement reporting status, performance series and execution costs for Recon and Edge.
Guard read-only. Also available as an MCP tool.
canary reporting status|performance|fx|costs [--json]
Subcommands: status, performance, fx, costs.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--json |
no | - |
--backfill |
no | - |
--month |
yes | - |
canary proposals
Review proposals to close or reduce positions.
Proposals are advisory. Only submit, submit-bundle and reduce reach the broker; each needs an explicit human instruction for that exact order, and the standard build refuses them.
Guard confirm. Also available as an MCP tool.
canary proposals status|refresh|list|preview|prepare|prepared-status|prepare-bundle|submit-bundle|bundle-status|submit|reduce|request-stop|ignore|veto|queue [--json]
Subcommands
| Subcommand | Guard |
|---|---|
status |
read-only |
refresh |
read-only |
list |
read-only |
preview |
read-only |
prepare |
read-only |
prepared-status |
read-only |
prepare-bundle |
read-only |
submit-bundle |
confirm |
bundle-status |
read-only |
submit |
confirm |
reduce |
confirm |
request-stop |
local |
ignore |
local |
veto |
local |
queue |
confirm |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--details |
no | - |
--quantity |
yes | - |
--timeout |
yes | - |
--fast-path |
no | - |
--prepared-ref-stdin |
no | - |
--bundle-ref-stdin |
no | - |
--reason |
yes | - |
--percent |
yes | 25, 50, 75, 100 |
--con-id |
yes | - |
--include-hedges |
no | - |
--portfolio |
no | - |
--mode |
yes | net, longs, all |
--sector |
yes | - |
--min-beta |
yes | - |
--plan |
no | - |
--adaptive-priority |
yes | Normal, Patient, Urgent, none |
--preview-token |
yes | - |
--request-ref |
yes | - |
--submit |
no | - |
--json |
no | - |
--all |
no | - |
--live |
no | - |
--stdin |
no | - |
--prepared-only |
no | - |
canary opportunities
Review option exercise opportunities.
Opportunity detection is advisory. Only exercise reaches the broker; it needs an explicit human instruction for that exact action, and the standard build refuses it. exercises reads pending requests, revisions and available IBKR evidence. reconcile-exercise REQUEST_REF REVISION --evidence EVIDENCE_ID --confirm-complete records a human confirmation backed by matching broker records and sends no broker instruction. It requires an interactive human terminal; agents and MCP cannot confirm completion. Uncertain or partial requests stay blocked. See Exercise reconciliation.
Guard confirm. MCP exposes advisory opportunity snapshots and discovery refresh only; exercise reconciliation is CLI only.
canary opportunities status|refresh|list|preview|exercise|exercises|reconcile-exercise|ignore [--json]
Subcommands
| Subcommand | Guard |
|---|---|
status |
read-only |
refresh |
read-only |
list |
read-only |
preview |
read-only |
exercise |
confirm |
exercises |
read-only |
reconcile-exercise |
confirm |
ignore |
local |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--quantity |
yes | - |
--timeout |
yes | - |
--reason |
yes | - |
--preview-token |
yes | - |
--evidence |
yes | - |
--confirm-complete |
no | - |
--json |
no | - |
canary trading
Check trading permissions and what blocks orders.
status reads the local trading gate and its blockers.
Guard read-only. Also available as an MCP tool.
canary trading status [--json]
Subcommands: status.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--json |
no | - |
canary settings
View settings and change supported preferences.
show reads. set writes a runtime preference, and the write path has its own gate: trading.freeze is accepted only from an interactive human terminal (the order limits live in risk-policy.toml [order_limits], not in settings), and agent and paired-device origins are rejected. The keys are listed in the configuration reference.
Guard read-only, with confirm subcommands. Also available as an MCP tool.
canary settings show [--json]
canary settings set <supported-key>=<value> [--json]
Subcommands
| Subcommand | Guard |
|---|---|
show |
read-only |
set |
confirm |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--json |
no | - |
canary orders
Read current-context local order lifecycle state without transmitting orders.
Guard read-only. Also available as an MCP tool.
canary orders open [--json]
canary orders history [--since YYYY-MM-DD|RFC3339] [--until YYYY-MM-DD|RFC3339] [--limit N] [--event-limit N] [--json]
Subcommands: open, history.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--since |
yes | - |
--until |
yes | - |
--limit |
yes | - |
--event-limit |
yes | - |
--json |
no | - |
canary order
Preview, place, change, cancel or check orders.
status reads one journaled order and preview mints a tokenized draft: it runs the broker WhatIf and never transmits, and a minted token is not submit eligibility. place, modify, and cancel are broker writes: each requires an explicit human instruction for that exact order, and place/modify additionally consume a submit-eligible preview token through the daemon's ordinary admission gates (mode and account pins, caps, freeze, origin, journal). The constrained proposal and opportunity surfaces remain the daemon-authored candidate paths; this family is the operator's direct gated path. Every build serves preview; the standard build refuses place, modify, cancel, tws-cancel and tws-modify with trading_disabled before anything is sent.
Guard read-only, with confirm subcommands. Also available as an MCP tool.
canary order preview buy|sell SYMBOL QTY [--limit PRICE|--order-type TRAIL --trail-percent PCT] [--json]
canary order preview buy|sell SYMBOL YYYYMMDD C|P STRIKE QTY [flags]
canary order preview buy|sell ISIN|CUSIP FACE --type BOND|BILL --currency CCY [--json]
canary order status ID [--json]
canary order place --preview-token TOKEN [--json]
canary order modify ID --preview-token TOKEN [--json]
canary order cancel ID [--json]
canary order tws-cancel PERM_ID [--terms JSON] [--request-id ID] [--json]
canary order tws-modify PERM_ID --quantity N --limit PRICE [--terms JSON] [--request-id ID] [--json]
Subcommands
| Subcommand | Guard |
|---|---|
preview |
read-only |
status |
read-only |
place |
confirm |
modify |
confirm |
cancel |
confirm |
tws-cancel |
confirm |
tws-modify |
confirm |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--limit |
yes | - |
--strategy |
yes | patient-limit, explicit-limit |
--adaptive-priority |
yes | Normal, Patient, Urgent |
--order-type |
yes | LMT, TRAIL, TRAIL-LIMIT |
--trail-percent |
yes | - |
--trail-amount |
yes | - |
--initial-stop |
yes | - |
--limit-offset |
yes | - |
--trigger-method |
yes | 1, 2, 3, 4, 7, 8 |
--tif |
yes | DAY, GTC |
--outside-rth |
no | - |
--replace-order |
yes | - |
--timeout |
yes | - |
--market |
yes | us, de, uk |
--exchange |
yes | - |
--primary |
yes | - |
--currency |
yes | - |
--type |
yes | BOND, BILL |
--preview-token |
yes | - |
--quantity |
yes | - |
--terms |
yes | - |
--request-id |
yes | - |
--json |
no | - |
canary app
Run the paired mobile app.
Guard local, with confirm subcommands. CLI only, with no MCP tool: local mobile/PWA service mode with browser pairing and Web Push state; not a broker-data MCP tool.
canary app [--addr HOST:PORT]
canary app pair
Subcommands
| Subcommand | Guard |
|---|---|
pair |
local |
serve |
local |
devices |
read-only |
push-test |
local |
restart |
confirm |
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--addr |
yes | - |
--public-url |
yes | - |
--state-dir |
yes | - |
--remote |
no | - |
--remote-url |
yes | - |
--keep-days |
yes | - |
--json |
no | - |
canary mcp
Run Canary’s connection for AI assistants (MCP).
Guard local. CLI only, with no MCP tool: transport server mode; the MCP host starts this process, no LLM should call it as a tool.
canary mcp
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--profile |
yes | full, monitor |
canary daemon
Run the background broker connection (usually starts automatically).
Guard local. CLI only, with no MCP tool: local background service mode; autospawned by CLI/MCP clients and not an agent operation.
canary daemon [--foreground] [--config PATH] [--socket PATH] [--log PATH|stderr]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--foreground |
no | - |
--version |
no | - |
--config |
yes | - |
--socket |
yes | - |
--log |
yes | - |
canary setup
Set up an AI assistant, the mobile app or broker statements.
Guard local. CLI only, with no MCP tool: interactive local integration and credential configuration; not an LLM operation.
canary setup [claude-desktop|app|reporting]
Subcommands: claude-desktop, app, reporting.
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--accept-unproved |
no | - |
--no-restart |
no | - |
canary update
Install the latest Canary release.
Guard confirm. CLI only, with no MCP tool: binary-management verb (replaces the canary binary from GitHub releases); not a daemon RPC, must stay user-triggered for trust-boundary reasons.
canary update [--check] [--force] [--restart|--no-restart]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--check |
no | - |
--force |
no | - |
--restart |
no | - |
--no-restart |
no | - |
canary restart
Restart Canary and any running mobile app server.
Guard confirm. CLI only, with no MCP tool: local process-management verb (signals daemon processes); useful for humans and scripts, but not a broker-data MCP tool.
canary restart [--app] [--force] [--timeout 15s] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--app |
no | - |
--force |
no | - |
--timeout |
yes | - |
--addr |
yes | - |
--public-url |
yes | - |
--remote |
no | - |
--remote-url |
yes | - |
--state-dir |
yes | - |
--json |
no | - |
canary stop
Stop Canary and the mobile app server.
Stopping is local process management: it signals the daemon and the app on this machine and reaches no broker. Orders already working stay at the broker, but nothing local watches them until the daemon runs again — no fills or cancels in the journal, no protection proposals, no phone alerts. So stop asks before it stops a daemon that still has work in flight, the same work its own idle shutdown defers on, and --yes is how a script answers. --force only escalates a stuck process from SIGTERM to SIGKILL after --timeout; it never widens what is stopped. Stopping the daemon records a persistent stop intent for its socket. Ordinary CLI, MCP and app requests cannot start it again until canary restart clears that intent. MCP servers belong to the AI client that started them and are reported, never signalled.
Guard confirm. CLI only, with no MCP tool: local process-management verb (stops the daemon and app the caller is talking through); a tool call that ends order tracking and phone alerts belongs to the human at the terminal.
canary stop [--app] [--daemon] [--force] [--timeout 15s] [--yes] [--json]
Flags
| Flag | Takes a value | Allowed values |
|---|---|---|
--app |
no | - |
--daemon |
no | - |
--force |
no | - |
--yes |
no | - |
--timeout |
yes | - |
--json |
no | - |
canary version
Print version, commit, build date.
Guard local. CLI only, with no MCP tool: info-only CLI verb; not useful as a tool call.
canary version
The catalog records no flags. Run canary version --help for what the command parses.