DocumentationReference

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.