idiotproof commands
270 operations, each also an MCP tool (noun_verb). Every one runs inside the IdiotProof Hub
(idiotproof hub start), so all data and every transaction goes through it. Global flags: --json, --user <guid>,
--confirm <code>, --hub <url>, --no-color, -h. Exit codes: 0 ok, 1 failed, 2 usage, 3 blocked by a gate,
4 confirmation required. Times are US Eastern.
| Command | Risk | What it does |
|---|---|---|
account activities |
Read | Account activity log: fills, dividends, fees, deposits, interest, option expirations/assignments (newest first, ET). |
account buying-power |
Read | Buying power by kind (overall, Reg T, day-trading, non-marginable, options), cash and margin multiplier. |
account calendar |
Read | Trading days with premarket, regular and after-hours times (ET); early closes and holidays called out. |
account clock |
Read | Is the market open now, and when it next opens and closes (ET), from Alpaca's clock. |
account config |
Read | Alpaca account settings side by side: DTBP/PDT checks, shorting, fractional, margin cap, options level, trade suspension. |
account config set |
Write | Change one Alpaca account setting (Live needs a confirmation code). |
account history |
Read | Equity over time as a Braille line chart, with the true P&L (deposits excluded) for 1D to all-time windows. |
account pdt |
Read | Pattern-day-trader standing: day trades in the last 5 business days, PDT flag, equity vs the $25k floor, trades left. |
account summary |
Read | Equity, cash, buying power and today's true P&L (deposits excluded) for your Alpaca paper and live accounts. |
agent catalog |
Read | List every operation with its parameters, risk and input schema. |
alpaca raw |
Write | Any Alpaca endpoint (escape hatch): GET/POST/PATCH/PUT/DELETE a Trading API path, or GET a Market Data path with --data; order, position and wallet mutations are refused (use the gated operations). |
assets bonds |
Read | Alpaca fixed income assets: US Treasuries or US corporate bonds with coupon, maturity, last close and yield. |
assets list |
Read | Alpaca's tradable universe (/v2/assets) filtered by class, exchange, status and attributes, with totals. |
assets show |
Read | One Alpaca asset: tradable, shortable, easy-to-borrow, marginable, fractionable and margin requirements. |
audit list |
Read | The audit trail, newest first: signals, entries/exits, rejections, risk blocks, system events (ET). |
audit search |
Read | Find audit rows whose message or payload contains text: a symbol, order id, strategy title. |
audit tail |
Read | The latest audit rows, oldest first; --follow streams new ones as they land (Ctrl+C stops; MCP/--json get a bounded window: --seconds, --max). |
backtest conditions |
Read | A backtest day's per-candle condition table: each entry condition's truth per bar, fires, entries and time in position. |
backtest run |
Read | Backtest a saved strategy or a script over a range of ET days with StrategyBacktester: triggers, trades and P&L per day (saved for backtest conditions). |
catalyst backfill |
Read | Fill catalyst events for past dates from Alpaca news (paged) and EDGAR full-text search, through the same pre-classifier and scorer as live intake; rows are marked backfilled. |
catalyst intake-status |
Read | Whether the catalyst intake is enabled, who owns it, whether this Hub leads, the news stream's health, the last message ET, EDGAR polling and today's counts. |
catalyst list |
Read | Catalyst events the intake recorded (news and EDGAR filings): published ET, receive lag, symbol, pre-class, direction, score, source, headline. |
catalyst score |
Read | The latest catalyst event for a symbol and its score breakdown as of now (type prior × magnitude × source + novelty, decayed by age). |
catalyst show |
Read | Every field of one catalyst event, with its score broken down as of now. |
corporate-actions list |
Read | Splits, dividends, mergers, spinoffs and name changes from Alpaca (Market Data or Trading API announcements) over a date window. |
corporate-actions show |
Read | Every field of one Alpaca corporate action, looked up in Market Data and then Trading API announcements. |
crypto bars |
Read | OHLCV bars for a crypto pair from Alpaca's US crypto feed (times in ET). |
crypto buy |
Money | Buy a crypto pair (fractional, GTC/IOC) through the TransactionGateway. Paper by default; live needs a confirmation code. |
crypto fee-estimate |
Read | Alpaca's network fee estimate for sending a coin to an address (read-only, nothing is sent). |
crypto latest |
Read | The latest trade, quote and minute bar for a crypto pair. |
crypto orderbook |
Read | The latest order book for a crypto pair: bids and asks side by side. |
crypto positions |
Read | Your crypto holdings in the Alpaca paper and live accounts: quantity, cost, price, unrealized P&L. |
crypto quotes |
Read | Recent best bid/ask quotes for a crypto pair, with the spread. |
crypto sell |
Money | Sell crypto you hold (crypto is long-only). Exits always clear the gates; live needs a confirmation code. |
crypto snapshot |
Read | Snapshot of a crypto pair: latest trade and quote, minute bar, today's and the prior daily bar. |
crypto trades |
Read | Recent trade prints for a crypto pair (price, size, taker side). |
crypto transfers |
Read | Crypto deposits and withdrawals on your Alpaca accounts: status, amount, fees, addresses (ET). |
crypto wallets |
Read | Your Alpaca crypto deposit wallets (address per coin) on paper and live; fails closed when funding is not enabled. |
crypto whitelist |
Read | Addresses your Alpaca accounts may withdraw crypto to, with their approval status. |
crypto whitelist-add |
Money | Ask Alpaca to whitelist a withdrawal address. Always previews and needs a confirmation code. |
crypto whitelist-remove |
Write | Remove a whitelisted withdrawal address. Always previews and needs a confirmation code. |
crypto withdraw |
Money | Send coins from your Alpaca account to a whitelisted address. Always previews and needs a confirmation code. |
dataset export |
Write | Export the replay feature store as ML-ready CSVs (trades.csv, bars.csv, manifest.json), backfilling older runs first. |
diary export |
Write | Export your trade diary to a CSV file (ET times, P&L, risk plan, R), or print it with --csv -. |
diary list |
Read | Your trade diary, newest first: entry/exit, mode, size, exit reason and realized P&L. |
diary pnl |
Read | Realized P&L from closed trades per day, week or month (ET), optionally by strategy or symbol. |
diary show |
Read | One diary trade in full: entry, exit, order ids, the risk plan that managed it, P&L and R. |
diary stats |
Read | Trading performance from the diary: win rate, expectancy, profit factor, avg R, MFE/MAE, drawdown. |
docs dsl |
Read | Explain one IdiotScript verb: phase, signatures, meaning, doc comment, an example from its real signature, and uses. |
docs explain |
Read | Explain a type or member: its doc comment, where it is declared (path:line), its members and its callers. |
docs law |
Read | Show one BIBLE law (IP-LAW-n) in full, or list every law. |
docs search |
Read | Search everything IdiotProof knows about itself: BIBLE, docs, stories, tickets, code docs and catalogs. |
docs section |
Read | Show one BIBLE section (IP-§n, subsections included), or the table of contents. |
docs story |
Read | Show one user story (IP-US-*) with its status and proving tests, or list an epic's stories. |
docs ticket |
Read | Show one ticket: status, description, requires / required-by, the commits that name it, and its history. |
dsl format |
Read | Render canonical strategy JSON (or a stamp) as IdiotScript text, checking it parses back to the same strategy. |
dsl glossary |
Read | Plain-English meaning of IdiotScript verbs: every entry, or one verb (aliases resolve). |
dsl parse |
Read | Parse IdiotScript (or JSON or a stamp) into the canonical strategy JSON the Monitor evaluates; nothing is saved. |
dsl validate |
Read | Validate IdiotScript/JSON against the phase rules and the gates, failing closed with every reason (nothing is saved). |
dsl verbs |
Read | The IdiotScript verb catalog by phase, reflected from the code that compiles it (IP-LAW-4). |
evidence calibration |
Read | Learned-vs-realized calibration per template: predicted probability buckets vs realized win rate, Brier score against the base-rate baseline, sample counts. |
evidence conformal |
Read | Split and adaptive conformal intervals around analog or Kalman forward-return forecasts: coverage vs nominal per month, and an abstain-unless-the-interval-excludes-zero rule scored with day-clustered significance. |
evidence events |
Read | Event study of Research claims: market-model abnormal returns and CARs per claim type/sentiment/insider code, with Patell, BMP and placebo-bootstrap significance. |
evidence flow |
Read | Order-flow evidence: imbalance, VPIN, Kyle's lambda and absorption bucketed against forward returns, scored on held-out sessions. |
evidence graph |
Read | Correlation graph across symbols (lag 0 or 1) and the hop-decayed influence of a shock at a source symbol. |
evidence hawkes |
Read | Hawkes self-exciting fit of trade arrivals (branching ratio = endogenous share) and a momentum-ignition detector scored against forward returns on held-out sessions. |
evidence kalman |
Read | Kalman trend slope, innovation z and leader pair-residual z bucketed against forward returns, fitted on training sessions and tested on held-out ones. |
evidence label |
Read | Forward-return distribution for a symbol (up/down/flat rates, quantiles, excursions): the base rate a pattern must beat. |
evidence pools |
Read | Stop-pool raid rates: how often price raided each pool kind (round numbers, prior-day/premarket/opening-range levels, VWAP bands) and reversed vs broke through, per side and price tier. |
evidence regime |
Read | Per-symbol regime: Hurst, variance ratio (z-tested vs random walk), efficiency ratio, realized vol, lag-1 autocorrelation. |
evidence search |
Read | Grid-search a strategy template with multiple-testing corrections: BH q-values, deflated Sharpe, reality check/SPA, and a held-out score for the winner. |
evidence similar |
Read | LSH look-alikes of a symbol's latest bar window from earlier sessions, with what each did next. |
evidence sizing |
Read | Advisory Kelly sizing (plug-in vs Beta-posterior vs conservative) from diary trades or manual counts; never changes order quantities. |
evidence survival |
Read | Survival analysis of exits: Kaplan-Meier hold curves, competing-risk incidence of target vs stop vs trail, Cox hazard ratios, and an advisory sell-by from replay trades. |
evidence tails |
Read | Tail dependence (copulas): which symbols crash together beyond what correlation shows, and whether a crash in one predicts the next bar of the other out of sample. |
evidence topology |
Read | Persistent-homology features (H0/H1 persistence, landscape norm) of delay-embedded returns, learned on earlier days and re-tested on held-out days with a session-clustered test. |
evidence walkforward |
Read | Out-of-sample walk-forward directional test (LSH analogs) with binomial p, Wilson CI, coverage and edge after costs. |
gapper apply-tuned |
Write | Save a backtest's hindsight-tuned profile as a new gapper strategy (inactive unless --arm). |
gapper arm |
Money | Arm a gapper: activate an existing one or queue a new one from a profile, honoring one-per-symbol and the 3-gapper cap. |
gapper auto candidates |
Read | Every ticker an auto-gapper scan screened on a day: signals, the adaptive plan it chose, and armed or why skipped. |
gapper auto disable |
Write | Disarm every auto-armed gapper of yours that holds no position (holding ones stay armed to manage their exit). |
gapper auto enable |
Write | Run the auto-gapper for you now and arm its top picks as paper gappers (paper-only; --dry-run previews). |
gapper auto status |
Read | Auto-gapper settings, its recent scans (screened, qualified, armed, skipped) and your auto-armed gappers. |
gapper backtest-day |
Read | Replay a gapper profile over one past day: fills, MFE/MAE, the giveback grid and a hindsight-tuned profile (saved for apply-tuned). |
gapper be-bex status |
Read | The BE/BEX decay gate: latest decay reading, threshold, and which gated BE strategies are armed or disarmed by it. |
gapper caps |
Read | Active-gapper counts against the caps: 3 manual gappers, one active strategy per symbol, the auto-gapper limit. |
gapper disarm |
Write | Disarm a gapper so the Monitor stops evaluating it (refused while it holds a position); --remove deletes it. |
gapper formation |
Read | Recent live gapper-formation snapshot rows: time ET, gap, volume ratio, 1/3/5-minute velocity, acceleration, distance to the premarket high, catalyst score/age, halted and whether the trigger rule passed. |
gapper formation disable |
Write | Turn the formation recorder off (settings only; nothing to disarm — it never arms). |
gapper formation enable |
Write | Turn the formation recorder on for you (paper-only research rows, 03:55-09:45 ET weekdays, with the Monitor leader); never arms. |
gapper formation status |
Read | Whether the formation recorder is enabled, who owns it, whether this Hub leads, today's universe size, the stream, rows written, halted symbols, the trigger rule and the sink in use. |
gapper formation universe |
Read | Today's formation universe: every symbol the recorder watches and why it is in (catalyst, mover, most-active, tracked), with catalyst score, gap and price. |
gapper from-transcript |
Read | Read a transcript and propose re-validated gapper candidate cards; nothing is queued until you gapper arm one. |
gapper list |
Read | Your queued gappers with live state: armed, mode, position, condition progress and last exit. |
gapper premarket-fade |
Read | Premarket blow-off/fade detector: run scans the movers now (detection only), status lists today's fade alerts. |
gapper profile show |
Read | Every dial of one gapper profile, plus the strategy it generates for a sample ticker. |
gapper profiles |
Read | List the gapper profile catalog: the templates every gapper starts from. |
gapper tune |
Write | Dial a gapper profile in for one ticker and show the strategy GapperScriptFactory generates; --save stores it inactive. |
hub install-service |
Destructive | Install the Hub as a Windows service that runs as you (Monitor off unless --monitor). |
hub ping |
Read | Check the Hub is up, show its clock in ET, and whether its DB and Monitor are healthy. |
hub uninstall-service |
Destructive | Stop and remove the Hub's Windows service. |
indicators compute |
Read | Compute one indicator (rsi, ema, atr, macd, vwap, adx, bollinger, ...) on a symbol's recent bars. |
indicators snapshot |
Read | The full indicator snapshot a strategy condition sees for a symbol: VWAP, EMAs, RSI, MACD, ADX, gap, window high/low, pivots, patterns. |
keys migrate-to-vault |
Destructive | Move Alpaca keys, OAuth tokens and Claude keys out of SQL into MindAttic.Vault (dry run unless --apply). |
keys opt-in |
Write | Route your orders to your own Alpaca account (alpaca) or back to the Sandbox (off). |
keys probe |
Read | Round-trip your stored Alpaca keys with a read-only account call (paper, live or both). |
keys set |
Write | Store an Alpaca paper/live key pair (checked, then probed) or your Claude key in MindAttic.Vault. |
keys status |
Read | Which Alpaca/Claude keys resolve for you and from which Vault entry (never shows a secret). |
ledger list |
Read | Every command the Hub ran for you (CLI, MCP, web): operation, arguments, outcome, duration (ET). |
llm keys |
Read | Which Claude key the LLM panel resolves for you (yours, the host's, or none) and the voting toggles; never shows a key. |
llm panel |
Read | The LLM voter panel: voters, trading lenses, which have keys, the consensus threshold and whether the gate is on. |
llm threshold |
Write | Show or set the LLM panel's consensus threshold (0.5-1): the share of votes that must Approve. |
llm vote |
Read | Dry-run the LLM voter panel on a strategy's current entry: every vote and the consensus. Never places an order. |
llm voting disable |
Write | Turn off your own LLM voter gate (a host-wide setting still applies). |
llm voting enable |
Write | Turn on the LLM voter gate for your automated entries (needs a Claude key to take effect). |
market auctions |
Read | Opening and closing auction prices and sizes per day for one or more stocks (SIP, times in ET). |
market bars |
Read | Historical OHLCV bars for a stock at any timeframe, oldest first (times in ET). |
market bond-prices |
Read | Latest Alpaca fixed income prices and yields for the given ISINs. |
market candlesticks |
Read | Candlestick patterns (engulfing, hammer, shooting star, doji) on a symbol's recent bars. |
market chart |
Read | ASCII candle chart of a symbol across premarket, regular and after-hours sessions (ET); crypto pairs as 24h days. |
market conditions |
Read | What each trade or quote condition code means (the codes in market trades/quotes). |
market exchanges |
Read | Exchange codes used in trades and quotes and the venue each one names. |
market feed status |
Read | The Hub's market data feed: Alpaca SIP/IEX or Mock, whether it can switch, and active strategies per mode. |
market feed switch |
Write | Switch the Hub's market data to sip, iex or mock (mock refused while Paper/Live strategies are active). |
market fx |
Read | Latest forex rates (bid/mid/ask) or historical rate bars for currency pairs (times in ET). |
market latest |
Read | Latest minute bar, trade or quote for one or more stocks (times in ET). |
market logo |
Write | Download a company's logo and save it under %LOCALAPPDATA%\MindAttic\IdiotProof\Logos; reports the path and size. |
market meta |
Read | All market-data reference codes at once: exchanges plus trade and quote conditions. |
market most-actives |
Read | Today's most active stocks by share volume or trade count (Alpaca screener). |
market movers |
Read | Today's top stock gainers and losers by percent change (Alpaca screener). |
market news |
Read | Latest news headlines for one or more stocks, or the whole market (times in ET). |
market prev-close |
Read | Previous session's close (and full daily bar) for one or more stocks, with the move since. |
market quote |
Read | Latest trade and bid/ask for one or more stocks (Alpaca market data, times in ET). |
market quotes |
Read | Historical bid/ask quotes for a stock: sizes, exchanges, spread (times in ET). |
market scan-universe |
Read | Screen the tracked ticker universe on live price, volume and % change (Alpaca snapshots); arms nothing. |
market snapshot |
Read | One-line snapshot per stock: last, change vs prior close, bid/ask, today's open/high/low/volume. |
market stream status |
Read | Websocket health: the Monitor's market data stream, the trade-updates listeners and open market watches (state, connected since, last message, reconnects, errors). |
market trades |
Read | Historical trade prints for a stock: price, size, exchange, conditions (times in ET). |
market watch |
Read | Live market tape over Alpaca's websockets: stock trades/quotes/bars/statuses/LULD, crypto, options and news, merged into one ET-stamped stream. |
monitor heartbeat |
Read | The Monitor loop's last heartbeat: when it ticked, ok or fail, failures in a row. |
monitor lease |
Read | Who holds the Monitor's SQL leader lease (only the holder evaluates and trades). |
monitor pause |
Write | Pause the Monitor: from its next tick it evaluates nothing - no entries and NO exits - until resumed. |
monitor resume |
Money | Resume a paused Monitor (needs a confirmation code when a Live strategy is active). |
monitor status |
Read | Is the Monitor trading? Hosted, lease, last tick, paused, window, active strategies. |
monitor tail |
Read | Recent Monitor activity: gate verdicts (fire, veto, block, entry, exit, reject) and live condition progress; --follow streams new ones. |
monitor tick-once |
Read | Run one evaluation pass over your active strategies and show each verdict - never places, cancels or records an order. |
options bars |
Read | Historical OHLCV bars for one option contract. |
options buy |
Money | Buy option contracts to open (level 2+). Sandbox by default; live needs a confirmation code. |
options chain |
Read | An underlying's option chain for one expiration: calls and puts by strike with bid/ask, IV, delta and open interest. |
options close |
Money | Close a whole options position (sells a long, buys back a short) through the gateway. |
options conditions |
Read | Options trade or quote condition codes and what they mean. |
options contract |
Read | Full catalog details of one option contract by OCC symbol or Alpaca id. |
options contracts |
Read | Search listed option contracts for an underlying by expiry, type, strike range and status. |
options do-not-exercise |
Money | Opt a held contract out of automatic exercise at expiry (paper or live; live needs a code). |
options exchanges |
Read | Options exchange codes and their names, as they appear in quotes and trades. |
options exercise |
Money | Exercise a long option you hold (Alpaca paper or live; live needs a confirmation code). |
options glossary |
Read | Plain-English options jargon (hype, breakeven, IV, sell to close, ...): every term, or one in full. |
options greeks |
Read | Delta, gamma, theta, vega and rho for one option contract; badged Model when computed locally. |
options iv |
Read | Implied volatility for one option contract: Alpaca's, plus IV solved locally at bid, mid, ask and last. |
options latest |
Read | Latest NBBO quote and latest trade for one option contract, with exchanges and sizes. |
options level |
Read | Options trading level (effective and approved) and options buying power for your Alpaca accounts. |
options positions |
Read | Open option contracts in your Alpaca accounts: strike, expiry, DTE, cost, value and unrealized P&L. |
options quote |
Read | Latest bid/ask, mid, spread and last trade for one option contract (OCC symbol). |
options sell |
Money | Sell option contracts you hold (sell to close), or write them with --open (level 1+). |
options signals |
Read | Sell-the-hype nudges on your open long options: hype near its session high plus bullish news (never places anything). |
options snapshot |
Read | Alpaca's full snapshot of one option contract: latest quote and trade, daily bars, IV and Greeks. |
options spread |
Money | Place a 2-4 leg options order (verticals, straddles, ratios...) as one Alpaca multi-leg order; level 3, max-loss preview, live needs a code. |
options trades |
Read | Historical trades (prints) for one option contract, newest first. |
options value |
Read | Intrinsic and extrinsic value, breakeven, DTE and Black-Scholes price for one option contract. |
orders bracket |
Money | Entry plus a take-profit and a stop-loss that cancel each other (Alpaca bracket). The stop-loss is the Risk Guardian's stop. |
orders cancel |
Money | Cancel one working order through the gateway (audited; live needs a confirmation code). |
orders cancel-all |
Money | Cancel every open order in an account, or only one symbol's, through the gateway (live needs a confirmation code). |
orders history |
Read | Closed Alpaca orders (filled, cancelled, expired, rejected) over the last N days, newest first, with fill prices and totals. |
orders list |
Read | Your Alpaca orders (open by default) in the paper and live accounts, newest first, with bracket/OCO legs. |
orders oco |
Money | Exit a held position with a take-profit limit and a stop-loss; whichever fills cancels the other (Alpaca OCO). |
orders oto |
Money | Entry that, once filled, triggers ONE child: a take-profit or a stop-loss (Alpaca OTO). |
orders place |
Money | Place any single Alpaca order: market/limit/stop/stop-limit/trailing, every TIF, fractional or notional, client id, position intent. Through the gateway; live needs a code. |
orders replace |
Money | Change a working order's quantity, limit/stop/trail, TIF or client id (Alpaca PATCH; it gets a new id). Through the gateway; live needs a code. |
orders show |
Read | One Alpaca order in full, by id or client id: prices, fills, timestamps (ET) and its nested bracket/OCO/OTO/multi-leg legs. |
orders stream |
Read | Live order events from Alpaca (new, fill, partial fill, canceled, replaced, rejected, expired); the Hub records every fill in the trade diary and audit log. |
positions close |
Money | Close (or trim) one Alpaca position as a market exit through the TransactionGateway. Live needs a confirmation code. |
positions close-all |
Money | Close every Alpaca position in one account with market exits through the TransactionGateway; optionally cancel open orders first. Live needs a confirmation code. |
positions list |
Read | Every open position in your Alpaca paper and live accounts: price, today's move, unrealized P&L. |
positions reconcile |
Read | Read-only report: what Alpaca actually holds vs what your strategies book (PositionQty), per account. |
positions show |
Read | One position in your Alpaca paper/live accounts, the IdiotProof strategy that owns it, and its latest trade-diary row. |
prefs get |
Read | Show your preferences: theme, account pill and Risk Guardian limits. |
prefs set |
Write | Change one of your preferences (risk limits keep the Settings page's sanity rules). |
replay all |
Write | Replay every strategy family on one ticker/day and rank them by realized P&L (best fit first). |
replay compare |
Read | Two replay runs side by side: strategy, day, fires, round-trips, win rate, hold time and P&L, with the difference. |
replay families |
Read | The built-in strategy families replay run --family and replay all use, with what each trades. |
replay list |
Read | The replay archive, newest first: ticker, day, strategy, sim or live, fired and P&L. |
replay live |
Write | Render the Monitor's real trades for a day (from the trade diary) on that day's bars as LIVE runs in the archive. |
replay regen |
Write | Regenerate the replay archive's HTML (every run page and index) from SQL; never uploads or deploys. |
replay run |
Write | Replay a strategy, gapper profile or built-in family over one past day with the Monitor's own evaluator; saves the run and its page. |
replay show |
Read | One replay run: its round-trips with entry features and its per-bar features (OHLCV, VWAP, volume ratio, conditions passed). |
research analyze |
Write | Extract catalysts and portents from a ticker's news, a URL or pasted text via the LLM (--save to keep them). |
research backfill |
Write | Record what each old enough claim's stock actually did (Alpaca daily closes) and settle portents. |
research claim |
Read | One research claim in full: source, trigger, outcome, insider lines and its score breakdown. |
research claims |
Read | Ranked research feed: catalysts and portents by significance score, filterable by ticker, date, score and macro. |
research gappers build-universe |
Read | Gapper study T1/T6 + universe: every Alpaca us_equity asset's daily bars and splits, then U(D), exclusions, candidates, ADV deciles and price tiers per the frozen protocol, and sample.json. |
research gappers catalysts |
Read | Re-run the deterministic CatalystPreClassifier over every backfilled catalyst row (idempotent) and spend an optional Haiku budget on rows never classified; each article/filing is classified at most once. |
research gappers label |
Read | Gapper study labels: next-bar-open entry and forward returns per horizon, reach-20 by 09:45, premarket/RTH/full-session high times and bucket, fade, extension from open, velocity death, death-to-HOD, halt proxy and VWAP-loss time, per the frozen definitions. |
research gappers pull |
Read | Gapper study data tiers: minute bars for candidate/prior/control days into the file store (then gapper tiers and controls), Alpaca news, ticker-CIK map, EDGAR form index with acceptance times, splits. Resumable, rate-limited, --max-calls capped. |
research gappers snapshot |
Read | Gapper study feature snapshots: every candidate and control day at every frozen decision time through the shared GapperFormationFeatures.Compute, written as Source=backtest rows; fits and saves data/tod-profile.json on train control days first. |
research gappers status |
Read | What the gapper study holds per split (universe days, candidates, gappers per tier, controls, minute-bar coverage, snapshots, labels), the data tiers' row counts, and the holdout lock state. |
research index-events |
Read | S&P 500 / S&P 100 additions and removals: announced and effective dates, pending or done. |
research insiders |
Read | Form 4 insider transactions for a ticker: filer, role, buy/sell, shares, price, value. |
research macro |
Read | Macro and regulatory claims (rule changes, listing standards) with the tickers each affects. |
research scan |
Write | Run one research scan pass now in the Hub (news, SEC filings, regulatory, index events, backfill, scoring). |
research score |
Read | Explain a claim's 0-100 significance score term by term (magnitude, confidence, history, source, watchlist, recency). |
research similar |
Read | Look-alike past claims (LSH neighbours) and what their stocks did afterwards. |
research ticker |
Read | Everything research knows about one ticker: claims, portents, macro and index events, insiders, outcomes. |
research universe list |
Read | The tracked ticker universe the research scan sweeps: symbol, exchange, last price, freshness. |
research universe refresh |
Write | Reload the tracked ticker universe (asset list and last prices) from Alpaca when stale, or --force. |
risk check |
Read | Dry-run a setup through your Risk Guardian: approved or why not, worst case, and the largest size allowed. Places nothing. |
risk kill-switch |
Write | Halt every new entry now (on), or resume (off, which needs a confirmation code); exits always go through. |
risk set |
Write | Change Risk Guardian limits; unnamed ones keep their value and today's loss counter is preserved. |
risk show |
Read | Your six Risk Guardian limits (per-trade and daily loss, stop range, balance, account risk %) and the kill switch. |
risk status |
Read | Today's realized P&L, losses counted against the daily breaker, remaining room, breaker and kill-switch state. |
scan movers |
Write | Screen today's top gainers to the gapper band; --replay replays each survivor with a gapper profile and saves the runs. |
settings get |
Read | Show one runtime setting: value, default, range and meaning. |
settings list |
Read | List the app's runtime settings with current value, default, range and meaning. |
settings set |
Write | Change one runtime setting (type- and range-checked; unknown and internal keys refused). |
strategy activate |
Money | Hand a strategy to the Monitor. A Live strategy needs a confirmation code. |
strategy bulk |
Money | Activate or deactivate many strategies at once (--all, --symbol, --mode). Live activations need one confirmation code for the batch. |
strategy clone |
Write | Copy a strategy (optionally onto another symbol) as a new, inactive Sandbox strategy. |
strategy create |
Write | Create a strategy from IdiotScript or canonical JSON after validating it. It starts inactive in Sandbox. |
strategy deactivate |
Write | Stop the Monitor evaluating a strategy (refused while it holds a position). |
strategy delete |
Destructive | Soft-delete a strategy: deactivate it and mark it [deleted] (reversible with --restore). Refused while it holds a position. |
strategy diff |
Read | Compare two strategies field by field at the canon level (what the Monitor actually runs), plus title, mode and state. |
strategy explain |
Read | Explain a strategy in plain English, phase by phase — generated from its canon, no LLM, the same words every time. |
strategy export |
Read | Export a strategy as a stamp, armored payload, canonical JSON or IdiotScript. |
strategy fires |
Read | Why a strategy did or didn't fire: its recent gate verdicts (conditions met, LLM veto, Risk Guardian block, order placed or rejected) and where it stands now. |
strategy from-text |
Write | Turn a plain-English description into a strategy (via the LLM), show its stamp, and save it only when you confirm. |
strategy from-watchlist |
Write | Create one strategy per item of a watchlist JSON file (the Monitor's create-strategies, through the CLI). |
strategy history |
Read | A strategy's trail, newest first: Monitor verdicts and fills, diary trades, and the CLI/MCP commands that touched it. |
strategy import |
Write | Create a strategy from a stamp, canonical JSON or IdiotScript. It starts inactive in Sandbox. |
strategy list |
Read | List your strategies with mode, position and live condition progress. |
strategy mode |
Money | Route a strategy to sandbox, paper or live. Switching to live needs a confirmation code. |
strategy progress |
Read | How close a strategy is to firing: conditions passing N/M, the first failing verb and the last price, optionally watched. |
strategy quarantine |
Read | List strategies the Monitor refuses to evaluate (canon unreadable, or no canon and a script that doesn't parse), with the reason. |
strategy rename |
Write | Give a strategy a new title. Its canon, stamp id and state are untouched. |
strategy resync-canon |
Write | Re-derive your strategies' canons from their scripts where the script now yields a richer canon; dry run unless --apply. |
strategy samples |
Read | List the built-in sample strategies, or show one as IdiotScript, a stamp or canonical JSON. |
strategy set |
Money | Edit a strategy's stop, target, trailing, size, sell-by time or session; the canon is rewritten and re-validated. |
strategy show |
Read | Everything about one strategy: settings, script, position, progress. |
strategy stamp |
Read | Print the strategy's ASCII stamp: header, phase flow, exit ladder, fingerprint and a paste-back payload. |
strategy step |
Write | Where a sequenced strategy stands (step k/N, armed or awaiting its transition); --reset starts it over at step 1. |
strategy validate |
Read | Check a saved strategy or a script: parse, canon round-trip, phase rules and a risk preview. Changes nothing. |
trade buy |
Money | Buy shares (open or add to a long). Sandbox by default; live needs a confirmation code. |
trade confirm |
Money | Execute a pending Live order by its confirmation code (exactly what was previewed, once). |
trade cover |
Money | Buy to cover a short. |
trade flatten |
Money | Flatten a symbol, a strategy's position, or the whole account with market exits through the TransactionGateway. Live needs a confirmation code. |
trade notional |
Money | Buy (or sell) a dollar amount of a stock: a fractional, DAY, market order sized in dollars. Live needs a code. |
trade pending |
Read | List Live confirmations still waiting for a yes. |
trade preview |
Read | Run every gate on an order without placing it (no code issued). |
trade sell |
Money | Sell shares you hold (close or trim a long). Exits always clear the gates. |
trade short |
Money | Sell short (open a short). Needs a stop above entry; margin + shortable name at the broker. |
users create |
Write | Create an IdiotProof account (blocklist and password rules of web sign-up; Argon2id via MindAttic.Authentication). |
users list |
Read | List the IdiotProof accounts (test fixtures hidden unless --all); * marks who you act as. |
watchlist add |
Write | Add symbols to your IdiotProof watchlist (creates a 'Main' workspace when you have none). |
watchlist list |
Read | Your IdiotProof watchlist: the symbols on each of your workspaces (not Alpaca's watchlists). |
watchlist remove |
Write | Remove symbols from your IdiotProof watchlist. |
watchlists add |
Write | Add symbols to an Alpaca watchlist (by id or name). |
watchlists create |
Write | Create an Alpaca watchlist, optionally with symbols. |
watchlists delete |
Destructive | Delete an Alpaca watchlist (by id or name). |
watchlists list |
Read | Your Alpaca server-side watchlists (not IdiotProof's local watchlist): name, id, last update. |
watchlists remove |
Write | Remove symbols from an Alpaca watchlist (by id or name). |
watchlists rename |
Write | Rename an Alpaca watchlist, keeping its symbols. |
watchlists show |
Read | One Alpaca watchlist (by id or name) and its symbols. |
account
account activities
Account activity log: fills, dividends, fees, deposits, interest, option expirations/assignments (newest first, ET).
Usage: idiotproof account activities [--since <date>] [--until <date>] [--type <string[]>] [--limit <int>] [--mode <all|paper|live>]
Risk: read
Parameters:
--since <date> First ET date to include, yyyy-MM-dd (default: 7 days ago).
--until <date> Last ET date to include, yyyy-MM-dd (default: today).
--type <string[]> Activity types, comma-separated: FILL, DIV, FEE, CSD (deposit), CSW (withdrawal), JNLC, INT, OPEXP, OPASN, ... (default: all).
--limit <int> Most rows per account, newest first (default 100, max 1000). (default: 100)
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof account activities
idiotproof account activities --since 2026-10-01 --type FILL --mode paper
idiotproof account activities --type DIV,FEE,INT
account buying-power
Buying power by kind (overall, Reg T, day-trading, non-marginable, options), cash and margin multiplier.
Usage: idiotproof account buying-power [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof account buying-power
idiotproof account buying-power --mode live
account calendar
Trading days with premarket, regular and after-hours times (ET); early closes and holidays called out.
Usage: idiotproof account calendar [--from <date>] [--to <date>] [--mode <sandbox|paper|live>]
Risk: read
Parameters:
--from <date> First date, yyyy-MM-dd (default today ET).
--to <date> Last date, yyyy-MM-dd (default 14 days after --from).
--mode <sandbox|paper|live> Which Alpaca account's keys ask: paper or live (default paper; the calendar is the same). (default: paper)
Examples:
idiotproof account calendar
idiotproof account calendar --from 2026-11-20 --to 2026-12-31
account clock
Is the market open now, and when it next opens and closes (ET), from Alpaca's clock.
Usage: idiotproof account clock [--mode <sandbox|paper|live>]
Risk: read
Parameters:
--mode <sandbox|paper|live> Which Alpaca account's keys ask: paper or live (default paper; the clock is the same). (default: paper)
Examples:
idiotproof account clock
account config
Alpaca account settings side by side: DTBP/PDT checks, shorting, fractional, margin cap, options level, trade suspension.
Usage: idiotproof account config [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof account config
idiotproof account config --mode live
account config set
Change one Alpaca account setting (Live needs a confirmation code).
Usage: idiotproof account config set <setting> <value> [--mode <sandbox|paper|live>]
Risk: write
Parameters:
<setting> dtbp_check, pdt_check, trade_confirm_email, suspend_trade, no_shorting, fractional_trading, max_margin_multiplier, max_options_trading_level or ptp_no_exception_entry. (required)
<value> The new value (see `account config` for each setting's meaning). (required)
--mode <sandbox|paper|live> paper or live (default paper; live needs a confirmation code). (default: paper)
Examples:
idiotproof account config set no_shorting true
idiotproof account config set max_margin_multiplier 1 --mode live
account history
Equity over time as a Braille line chart, with the true P&L (deposits excluded) for 1D to all-time windows.
Usage: idiotproof account history [--period <string>] [--timeframe <string>] [--extended] [--mode <sandbox|paper|live>] [--width <int>] [--height <int>]
Risk: read
Parameters:
--period <string> Window: <n>D, <n>W, <n>M or <n>A (years), or all (default 1M). (default: 1M)
--timeframe <string> Point spacing: 1Min, 5Min, 15Min, 1H or 1D (default: Alpaca's choice for the period).
--extended Include premarket and after-hours in intraday history (default regular hours only). (default: false)
--mode <sandbox|paper|live> paper or live (default paper). (default: paper)
--width <int> Chart width in characters (default: the terminal's, else 118).
--height <int> Chart rows (default 16). (default: 16)
Examples:
idiotproof account history
idiotproof account history --period 1D --timeframe 5Min --extended
idiotproof account history --period 1A --mode live
account pdt
Pattern-day-trader standing: day trades in the last 5 business days, PDT flag, equity vs the $25k floor, trades left.
Usage: idiotproof account pdt [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof account pdt
idiotproof account pdt --mode live
account summary
Equity, cash, buying power and today's true P&L (deposits excluded) for your Alpaca paper and live accounts.
Usage: idiotproof account summary [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof account summary
idiotproof account summary --mode live
agent
agent catalog
List every operation with its parameters, risk and input schema.
Usage: idiotproof agent catalog [--operation <string>]
Risk: read
Parameters:
-o, --operation <string> Only this operation, by name ("strategy list") or tool name (strategy_list).
Examples:
idiotproof agent catalog
idiotproof agent catalog --json
The full machine-readable catalog (what /api/catalog serves).
idiotproof agent catalog --operation "hub ping"
One operation's help.
alpaca
alpaca raw
Any Alpaca endpoint (escape hatch): GET/POST/PATCH/PUT/DELETE a Trading API path, or GET a Market Data path with --data; order, position and wallet mutations are refused (use the gated operations).
Usage: idiotproof alpaca raw <method> <path> [--body <string>] [--data] [--mode <sandbox|paper|live>]
Risk: write
Parameters:
<method> GET, POST, PATCH, PUT or DELETE. (required)
<path> The Alpaca path with any query string, e.g. /v2/account or /v2/assets?status=active. (required)
--body <string> JSON request body for POST/PATCH/PUT (use '-' to read it from stdin).
--data Call the Market Data API (data.alpaca.markets, GET only) instead of the Trading API. (default: false)
--mode <sandbox|paper|live> Trading API account: paper (default) or live. Live mutations need a confirmation code. (default: paper)
Examples:
idiotproof alpaca raw GET /v2/account
idiotproof alpaca raw GET /v2/assets/AAPL --mode live
idiotproof alpaca raw GET /v2/stocks/AAPL/snapshot --data
idiotproof alpaca raw POST /v2/watchlists --body "{\"name\":\"gappers\",\"symbols\":[\"AAPL\"]}"
assets
assets bonds
Alpaca fixed income assets: US Treasuries or US corporate bonds with coupon, maturity, last close and yield.
Usage: idiotproof assets bonds [--type <treasuries|corporates>] [--subtype <string>] [--bond-status <string>] [--cusips <string[]>] [--isins <string[]>] [--search <string>] [--limit <int>] [--mode <paper|live>]
Risk: read
Parameters:
--type <treasuries|corporates> treasuries (default) or corporates. (default: treasuries)
--subtype <string> Treasury subtype filter (bill, note, bond, strips, tips, floating_rate).
--bond-status <string> Bond status filter (outstanding, matured, pre_issuance).
--cusips <string[]> Only these CUSIPs, comma separated.
--isins <string[]> Only these ISINs, comma separated.
--search <string> Keep bonds whose description, issuer, ticker, CUSIP or ISIN contains this text.
--limit <int> Rows to show (default 50; sorted by maturity). (default: 50)
--mode <paper|live> Alpaca account to ask: paper (default) or live. (default: paper)
Examples:
idiotproof assets bonds --subtype bill --limit 20
idiotproof assets bonds --type corporates --search AAPL
assets list
Alpaca's tradable universe (/v2/assets) filtered by class, exchange, status and attributes, with totals.
Alpaca returns 10k+ assets; this shows the first --limit matches (sorted by symbol) and how many matched in all.
Usage: idiotproof assets list [--class <us-equity|us-option|crypto>] [--exchange <string>] [--status <active|inactive|all>] [--attributes <string[]>] [--search <string>] [--tradable] [--shortable] [--limit <int>] [--mode <paper|live>]
Risk: read
Parameters:
--class <us-equity|us-option|crypto> us_equity, us_option or crypto (default: every class).
--exchange <string> Only this exchange (NASDAQ, NYSE, ARCA, AMEX, BATS, OTC, CRYPTO...).
--status <active|inactive|all> active, inactive or all (default active). (default: active)
--attributes <string[]> Alpaca attribute filter, comma separated (ptp_no_exception, ptp_with_exception, ipo, has_options, options_late_close, fractional_eh_enabled...).
--search <string> Keep assets whose symbol starts with, or name contains, this text.
--tradable Only assets tradable at Alpaca. (default: false)
--shortable Only shortable assets. (default: false)
--limit <int> Rows to show (default 50; the totals line counts them all). (default: 50)
--mode <paper|live> Alpaca account to ask: paper (default) or live. (default: paper)
Examples:
idiotproof assets list --class us_equity --exchange NASDAQ --search APP
idiotproof assets list --class crypto --limit 100
idiotproof assets list --attributes has_options --shortable
assets show
One Alpaca asset: tradable, shortable, easy-to-borrow, marginable, fractionable and margin requirements.
Usage: idiotproof assets show <symbol> [--mode <paper|live>]
Risk: read
Parameters:
<symbol> Ticker, crypto pair (BTC/USD) or Alpaca asset id. (required)
--mode <paper|live> Alpaca account to ask: paper (default) or live. (default: paper)
Examples:
idiotproof assets show AAPL
idiotproof assets show BTC/USD
audit
audit list
The audit trail, newest first: signals, entries/exits, rejections, risk blocks, system events (ET).
Usage: idiotproof audit list [--since <date>] [--kind <string[]>] [--system] [--limit <int>]
Risk: read
Parameters:
--since <date> First ET date to include, yyyy-MM-dd (default: everything kept).
--kind <string[]> Only these categories, comma-separated: signal-fire, entry, exit, order-rejected, risk, broker, system, ...
--system Include system-wide rows that belong to no user (default on; --no-system for only yours). (default: true)
--limit <int> Most rows, newest first, 1-1000 (default 50). (default: 50)
Examples:
idiotproof audit list
idiotproof audit list --since 2026-10-30 --kind signal-fire,entry,exit
idiotproof audit list --kind order-rejected --no-system --limit 200
audit search
Find audit rows whose message or payload contains text: a symbol, order id, strategy title.
Usage: idiotproof audit search <text> [--since <date>] [--kind <string[]>] [--system] [--limit <int>]
Risk: read
Parameters:
<text> Text to find in the message or the structured payload (case-insensitive). (required)
--since <date> First ET date to include, yyyy-MM-dd (default: everything kept).
--kind <string[]> Only these categories, comma-separated: signal-fire, entry, exit, order-rejected, risk, broker, system, ...
--system Include system-wide rows that belong to no user (default on; --no-system for only yours). (default: true)
--limit <int> Most rows, newest first, 1-1000 (default 50). (default: 50)
Examples:
idiotproof audit search NVDA
idiotproof audit search "insufficient buying power" --since 2026-10-01
audit tail
The latest audit rows, oldest first; --follow streams new ones as they land (Ctrl+C stops; MCP/--json get a bounded window: --seconds, --max).
Usage: idiotproof audit tail [--lines <int>] [--follow] [--seconds <int>] [--max <int>] [--kind <string[]>] [--system]
Risk: read
Parameters:
-n, --lines <int> How many of the latest rows to start with, 0-500 (default 20). (default: 20)
-f, --follow Keep watching for new rows: in a terminal until Ctrl+C (or --seconds/--max); for MCP and --json for --seconds (default 30) or --max (default 200) new rows. (default: false)
--seconds <int> With --follow: how long to watch, 1-300 (default 30 for MCP/--json; a terminal streams until Ctrl+C).
--max <int> With --follow: stop after this many new rows, 1-1000 (default 200 for MCP/--json; none in a terminal).
--kind <string[]> Only these categories, comma-separated.
--system Include system-wide rows (default on; --no-system for only yours). (default: true)
Examples:
idiotproof audit tail
idiotproof audit tail --follow --seconds 60 --kind signal-fire,entry,exit
backtest
backtest conditions
A backtest day's per-candle condition table: each entry condition's truth per bar, fires, entries and time in position.
Usage: idiotproof backtest conditions <run> [--date <date>] [--all]
Risk: read
Parameters:
<run> The run id `backtest run` printed (bt-xxxxxxxx). (required)
-d, --date <date> Which day of the run (default its first day with bars).
-a, --all Every candle, not just the ones where a condition changed, fired or traded. (default: false)
Examples:
idiotproof backtest conditions bt-1a2b3c4d
idiotproof backtest conditions bt-1a2b3c4d --date 2026-10-29 --all
backtest run
Backtest a saved strategy or a script over a range of ET days with StrategyBacktester: triggers, trades and P&L per day (saved for backtest conditions).
Usage: idiotproof backtest run [<strategy>] [--script <string>] [--from <date>] [--to <date>] [--qty <int>] [--days <int>]
Risk: read
Parameters:
<strategy> A saved strategy: id, id prefix, stamp id or symbol (or use --script).
--script <string> Backtest this IdiotScript, canonical JSON or stamp instead of a saved strategy (`-` reads stdin).
--from <date> First ET trading day (yyyy-MM-dd); default the last completed trading day.
--to <date> Last ET trading day (yyyy-MM-dd); default --from.
--qty <int> Share count when the strategy doesn't pin one (default 100). (default: 100)
--days <int> Replay this many trading days from --from as ONE continuous run, so a sequenced strategy's hand-off between steps (and its Within deadline) crosses the day boundaries. Not with --to.
Examples:
idiotproof backtest run NVDA --from 2026-10-26 --to 2026-10-30
idiotproof backtest run --script "Ticker(\"INTC\").IsAboveVwap().StopLoss(2).TakeProfit(4)" --from 2026-10-29
idiotproof backtest run NVDA --from 2026-10-20 --days 7
A two-step sequence replayed as one run across seven trading days.
catalyst
catalyst backfill
Fill catalyst events for past dates from Alpaca news (paged) and EDGAR full-text search, through the same pre-classifier and scorer as live intake; rows are marked backfilled.
Writes research rows only (no strategy, order or setting changes). Needs an owner for the Alpaca keys. EDGAR calls are rate-limited (120 ms apart), so wide ranges take minutes.
Usage: idiotproof catalyst backfill --symbols <string> --from <date> [--to <date>] [--llm-budget <int>] [--edgar]
Risk: read
Parameters:
--symbols <string> Comma-separated symbols to backfill. (required)
--from <date> First day (ET, yyyy-MM-dd). (required)
--to <date> Last day (ET, yyyy-MM-dd); default today.
--llm-budget <int> At most this many new rows get a Haiku classification (default 0: none). (default: 0)
--edgar Also search EDGAR filings (default on; --no-edgar for news only). (default: true)
Examples:
idiotproof catalyst backfill --symbols ABCD,EFGH --from 2026-10-01 --to 2026-10-31
idiotproof catalyst backfill --symbols ABCD --from 2026-11-01 --llm-budget 20
catalyst intake-status
Whether the catalyst intake is enabled, who owns it, whether this Hub leads, the news stream's health, the last message ET, EDGAR polling and today's counts.
Usage: idiotproof catalyst intake-status
Risk: read
Examples:
idiotproof catalyst intake-status
catalyst list
Catalyst events the intake recorded (news and EDGAR filings): published ET, receive lag, symbol, pre-class, direction, score, source, headline.
Usage: idiotproof catalyst list [--symbol <string>] [--since <string>] [--limit <int>]
Risk: read
Parameters:
-s, --symbol <string> Only events naming this symbol.
--since <string> Window start: today, yesterday, 6h, 3d, or a date (ET). Default 24h.
-n, --limit <int> Most recent N events (default 50, max 500). (default: 50)
Examples:
idiotproof catalyst list --since today
idiotproof catalyst list --symbol ABCD --since 3d
catalyst score
The latest catalyst event for a symbol and its score breakdown as of now (type prior × magnitude × source + novelty, decayed by age).
Usage: idiotproof catalyst score <symbol>
Risk: read
Parameters:
<symbol> The symbol whose latest catalyst to score. (required)
Examples:
idiotproof catalyst score ABCD
catalyst show
Every field of one catalyst event, with its score broken down as of now.
Usage: idiotproof catalyst show <id>
Risk: read
Parameters:
<id> The event id (or an id prefix of 6+ hex characters). (required)
Examples:
idiotproof catalyst show 0190abcd
corporate-actions
corporate-actions list
Splits, dividends, mergers, spinoffs and name changes from Alpaca (Market Data or Trading API announcements) over a date window.
Usage: idiotproof corporate-actions list [--types <string[]>] [--symbol <string[]>] [--since <date>] [--until <date>] [--source <data|announcements>] [--limit <int>] [--mode <paper|live>]
Risk: read
Parameters:
--types <string[]> Types, comma separated. data: forward_split, reverse_split, unit_split, cash_dividend, stock_dividend, spin_off, cash_merger, stock_merger, stock_and_cash_merger, redemption, name_change, worthless_removal, rights_distribution. announcements: dividend, merger, spinoff, split.
--symbol <string[]> Only these symbols, comma separated.
--since <date> First date (default 30 days ago, ET).
--until <date> Last date (default 30 days ahead, ET).
--source <data|announcements> data (Market Data, default) or announcements (Trading API, max 90-day window). (default: data)
--limit <int> Rows to show (default 100; the totals line counts them all). (default: 100)
--mode <paper|live> Alpaca account for --source announcements: paper (default) or live. (default: paper)
Examples:
idiotproof corporate-actions list --symbol AAPL,MSFT --types cash_dividend
idiotproof corporate-actions list --types forward_split,reverse_split --since 2026-10-01 --until 2026-11-30
idiotproof corporate-actions list --source announcements --types split --symbol NVDA
corporate-actions show
Every field of one Alpaca corporate action, looked up in Market Data and then Trading API announcements.
Usage: idiotproof corporate-actions show <id> [--mode <paper|live>]
Risk: read
Parameters:
<id> Corporate action id (from corporate-actions list). (required)
--mode <paper|live> Alpaca account for the announcements lookup: paper (default) or live. (default: paper)
Examples:
idiotproof corporate-actions show 6a4e1c55-1f0e-4c8e-9a1b-2b1fbd7a4f10
crypto
crypto bars
OHLCV bars for a crypto pair from Alpaca's US crypto feed (times in ET).
Usage: idiotproof crypto bars <pair> [--timeframe <string>] [--hours <int>] [--limit <int>]
Risk: read
Parameters:
<pair> Crypto pair, e.g. BTC/USD. (required)
--timeframe <string> Bar size in Alpaca's form: 1Min, 5Min, 15Min, 1Hour, 4Hour, 1Day, 1Week (default 1Hour). (default: 1Hour)
--hours <int> How far back to look, in hours (default 24). (default: 24)
--limit <int> Show at most this many bars, the most recent (default 48). (default: 48)
Examples:
idiotproof crypto bars BTC/USD
idiotproof crypto bars ETH/USD --timeframe 5Min --hours 2
crypto buy
Buy a crypto pair (fractional, GTC/IOC) through the TransactionGateway. Paper by default; live needs a confirmation code.
Usage: idiotproof crypto buy <pair> [<qty>] [--notional <decimal>] [--limit <decimal>] [--trigger <decimal>] [--stop <decimal>] [--target <decimal>] [--tif <string>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<pair> Crypto pair, e.g. BTC/USD. (required)
<qty> Coin quantity, fractional allowed (0.0015). Leave out and pass --notional to size by dollars.
--notional <decimal> Size by dollar amount instead of coin quantity.
-l, --limit <decimal> Limit price. Without it the order is a market order.
--trigger <decimal> Stop trigger price: with --limit it makes a stop-limit order.
-s, --stop <decimal> Protective stop price for a buy; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
--tif <string> Time in force: gtc (default) or ioc. (default: gtc)
-m, --mode <sandbox|paper|live> paper (default) or live (needs a confirmation code). Sandbox does not simulate crypto. (default: paper)
--note <string> Why: kept in the audit trail.
Examples:
idiotproof crypto buy BTC/USD 0.001 --limit 70000 --stop 66500
Paper limit buy with a protective stop for the Risk Guardian.
idiotproof crypto buy ETH/USD --notional 250 --stop 2300 --mode live
Live dollar-sized buy; prints a confirmation code first.
crypto fee-estimate
Alpaca's network fee estimate for sending a coin to an address (read-only, nothing is sent).
Usage: idiotproof crypto fee-estimate <asset> <amount> <to> [--from <string>] [--mode <sandbox|paper|live>]
Risk: read
Parameters:
<asset> Coin to send, e.g. BTC. (required)
<amount> Amount of the coin to send. (required)
<to> Destination address. (required)
--from <string> Source address (default: your Alpaca wallet).
--mode <sandbox|paper|live> paper or live (default paper). (default: paper)
Examples:
idiotproof crypto fee-estimate BTC 0.01 bc1qexampleaddress --mode live
crypto latest
The latest trade, quote and minute bar for a crypto pair.
Usage: idiotproof crypto latest <pair>
Risk: read
Parameters:
<pair> Crypto pair, e.g. BTC/USD (BTC-USD and BTCUSD work too). (required)
Examples:
idiotproof crypto latest BTC/USD
crypto orderbook
The latest order book for a crypto pair: bids and asks side by side.
Usage: idiotproof crypto orderbook <pair> [--depth <int>]
Risk: read
Parameters:
<pair> Crypto pair, e.g. BTC/USD. (required)
--depth <int> Price levels per side (default 10). (default: 10)
Examples:
idiotproof crypto orderbook BTC/USD
idiotproof crypto orderbook ETH/USD --depth 20
crypto positions
Your crypto holdings in the Alpaca paper and live accounts: quantity, cost, price, unrealized P&L.
Usage: idiotproof crypto positions [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof crypto positions
idiotproof crypto positions --mode live
crypto quotes
Recent best bid/ask quotes for a crypto pair, with the spread.
Usage: idiotproof crypto quotes <pair> [--minutes <int>] [--limit <int>]
Risk: read
Parameters:
<pair> Crypto pair, e.g. BTC/USD. (required)
--minutes <int> How far back to look, in minutes (default 5). (default: 5)
--limit <int> Show at most this many, the most recent (default 30). (default: 30)
Examples:
idiotproof crypto quotes BTC/USD
crypto sell
Sell crypto you hold (crypto is long-only). Exits always clear the gates; live needs a confirmation code.
Usage: idiotproof crypto sell <pair> [<qty>] [--notional <decimal>] [--limit <decimal>] [--trigger <decimal>] [--stop <decimal>] [--target <decimal>] [--tif <string>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<pair> Crypto pair, e.g. BTC/USD. (required)
<qty> Coin quantity, fractional allowed (0.0015). Leave out and pass --notional to size by dollars.
--notional <decimal> Size by dollar amount instead of coin quantity.
-l, --limit <decimal> Limit price. Without it the order is a market order.
--trigger <decimal> Stop trigger price: with --limit it makes a stop-limit order.
-s, --stop <decimal> Protective stop price for a buy; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
--tif <string> Time in force: gtc (default) or ioc. (default: gtc)
-m, --mode <sandbox|paper|live> paper (default) or live (needs a confirmation code). Sandbox does not simulate crypto. (default: paper)
--note <string> Why: kept in the audit trail.
Examples:
idiotproof crypto sell BTC/USD 0.001
idiotproof crypto sell ETH/USD --notional 100 --limit 2600 --tif ioc --mode live
crypto snapshot
Snapshot of a crypto pair: latest trade and quote, minute bar, today's and the prior daily bar.
Usage: idiotproof crypto snapshot <pair>
Risk: read
Parameters:
<pair> Crypto pair, e.g. BTC/USD (BTC-USD and BTCUSD work too). (required)
Examples:
idiotproof crypto snapshot BTC/USD
crypto trades
Recent trade prints for a crypto pair (price, size, taker side).
Usage: idiotproof crypto trades <pair> [--minutes <int>] [--limit <int>]
Risk: read
Parameters:
<pair> Crypto pair, e.g. BTC/USD. (required)
--minutes <int> How far back to look, in minutes (default 5). (default: 5)
--limit <int> Show at most this many, the most recent (default 30). (default: 30)
Examples:
idiotproof crypto trades BTC/USD
idiotproof crypto trades SOL/USD --minutes 30 --limit 100
crypto transfers
Crypto deposits and withdrawals on your Alpaca accounts: status, amount, fees, addresses (ET).
Usage: idiotproof crypto transfers [--id <string>] [--mode <all|paper|live>]
Risk: read
Parameters:
--id <string> Show one transfer by its id.
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof crypto transfers
idiotproof crypto transfers --mode live --id 6b1f0c0e-4b8a-4a4e-9b55-0d7c1f2a3b4c
crypto wallets
Your Alpaca crypto deposit wallets (address per coin) on paper and live; fails closed when funding is not enabled.
Usage: idiotproof crypto wallets [--asset <string>] [--network <string>] [--mode <all|paper|live>]
Risk: read
Parameters:
--asset <string> Only this coin's deposit wallet, e.g. BTC (default: every wallet Alpaca returns).
--network <string> Chain for multi-chain coins, e.g. ethereum or solana.
--mode <all|paper|live> paper, live or all (default all). Crypto funding is usually live-only. (default: all)
Examples:
idiotproof crypto wallets
idiotproof crypto wallets --asset USDC --network ethereum --mode live
crypto whitelist
Addresses your Alpaca accounts may withdraw crypto to, with their approval status.
Usage: idiotproof crypto whitelist [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof crypto whitelist
crypto whitelist-add
Ask Alpaca to whitelist a withdrawal address. Always previews and needs a confirmation code.
Usage: idiotproof crypto whitelist-add <asset> <address> [--mode <sandbox|paper|live>]
Risk: money
Parameters:
<asset> Coin the address receives, e.g. BTC. (required)
<address> Address to allow withdrawals to. (required)
--mode <sandbox|paper|live> paper or live (default paper). Always needs a confirmation code. (default: paper)
Examples:
idiotproof crypto whitelist-add BTC bc1qexampleaddress --mode live
crypto whitelist-remove
Remove a whitelisted withdrawal address. Always previews and needs a confirmation code.
Usage: idiotproof crypto whitelist-remove <id> [--mode <sandbox|paper|live>]
Risk: write
Parameters:
<id> Whitelist entry id (from `idiotproof crypto whitelist`). (required)
--mode <sandbox|paper|live> paper or live (default paper). Always needs a confirmation code. (default: paper)
Examples:
idiotproof crypto whitelist-remove 2a9c7f3e-11aa-4bcd-9e01-6f0b2c3d4e5f --mode live
crypto withdraw
Send coins from your Alpaca account to a whitelisted address. Always previews and needs a confirmation code.
Usage: idiotproof crypto withdraw <asset> <amount> <address> [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<asset> Coin to withdraw, e.g. BTC. (required)
<amount> Amount of the coin to send. (required)
<address> Destination address (must be on your whitelist). (required)
--mode <sandbox|paper|live> paper or live (default paper). Always needs a confirmation code. (default: paper)
--note <string> Why: kept in the audit trail.
Examples:
idiotproof crypto withdraw BTC 0.01 bc1qexampleaddress --mode live
Prints the preview and a confirmation code; nothing moves yet.
dataset
dataset export
Export the replay feature store as ML-ready CSVs (trades.csv, bars.csv, manifest.json), backfilling older runs first.
Usage: idiotproof dataset export [--out <string>]
Risk: write
Parameters:
-o, --out <string> Folder to write trades.csv, bars.csv and manifest.json (default the mindattic.com dataset folder).
Examples:
idiotproof dataset export
idiotproof dataset export --out C:\data\idiotproof
diary
diary export
Export your trade diary to a CSV file (ET times, P&L, risk plan, R), or print it with --csv -.
Usage: idiotproof diary export --csv <string> [--overwrite] [--since <date>] [--until <date>] [--mode <sandbox|paper|live>] [--symbol <string>] [--strategy <string>]
Risk: write
Parameters:
--csv <string> Absolute path of the CSV file to write on the Hub's machine, or - to return the CSV text. (required)
--overwrite Replace the file if it already exists. (default: false)
--since <date> First ET date of entry, yyyy-MM-dd (default: everything).
--until <date> Last ET date of entry, yyyy-MM-dd (default: today).
--mode <sandbox|paper|live> Only trades in this mode: sandbox, paper or live.
--symbol <string> Only this symbol.
--strategy <string> Only this strategy: an id prefix or part of its title at trade time.
Examples:
idiotproof diary export --csv C:/Users/me/Documents/diary.csv
idiotproof diary export --csv - --mode live --since 2026-01-01
diary list
Your trade diary, newest first: entry/exit, mode, size, exit reason and realized P&L.
Usage: idiotproof diary list [--status <string>] [--limit <int>] [--since <date>] [--until <date>] [--mode <sandbox|paper|live>] [--symbol <string>] [--strategy <string>]
Risk: read
Parameters:
--status <string> Only this lifecycle state: open, closed, notfilled or orphaned.
--limit <int> Most trades to show, newest entry first, 1-5000 (default 50). (default: 50)
--since <date> First ET date of entry, yyyy-MM-dd (default: everything).
--until <date> Last ET date of entry, yyyy-MM-dd (default: today).
--mode <sandbox|paper|live> Only trades in this mode: sandbox, paper or live.
--symbol <string> Only this symbol.
--strategy <string> Only this strategy: an id prefix or part of its title at trade time.
Examples:
idiotproof diary list
idiotproof diary list --since 2026-10-01 --mode paper --symbol NVDA
idiotproof diary list --status open
diary pnl
Realized P&L from closed trades per day, week or month (ET), optionally by strategy or symbol.
Usage: idiotproof diary pnl [--day] [--week] [--month] [--by <strategy|symbol>] [--since <date>] [--until <date>] [--mode <sandbox|paper|live>] [--symbol <string>] [--strategy <string>]
Risk: read
Parameters:
--day One row per ET trading day (the default). (default: false)
--week One row per week (Monday-Sunday, ET). (default: false)
--month One row per calendar month (ET). (default: false)
--by <strategy|symbol> Also split each period by strategy or symbol.
--since <date> First ET date of entry, yyyy-MM-dd (default: everything).
--until <date> Last ET date of entry, yyyy-MM-dd (default: today).
--mode <sandbox|paper|live> Only trades in this mode: sandbox, paper or live.
--symbol <string> Only this symbol.
--strategy <string> Only this strategy: an id prefix or part of its title at trade time.
Examples:
idiotproof diary pnl
idiotproof diary pnl --week --by strategy
idiotproof diary pnl --month --mode live --since 2026-01-01
diary show
One diary trade in full: entry, exit, order ids, the risk plan that managed it, P&L and R.
Usage: idiotproof diary show <trade>
Risk: read
Parameters:
<trade> Diary trade id, or the 8-character prefix `diary list` shows. (required)
Examples:
idiotproof diary show 0193a7c2
diary stats
Trading performance from the diary: win rate, expectancy, profit factor, avg R, MFE/MAE, drawdown.
Usage: idiotproof diary stats [--by <strategy|symbol>] [--since <date>] [--until <date>] [--mode <sandbox|paper|live>] [--symbol <string>] [--strategy <string>]
Risk: read
Parameters:
--by <strategy|symbol> Also break the numbers down per strategy or per symbol.
--since <date> First ET date of entry, yyyy-MM-dd (default: everything).
--until <date> Last ET date of entry, yyyy-MM-dd (default: today).
--mode <sandbox|paper|live> Only trades in this mode: sandbox, paper or live.
--symbol <string> Only this symbol.
--strategy <string> Only this strategy: an id prefix or part of its title at trade time.
Examples:
idiotproof diary stats
idiotproof diary stats --mode paper --since 2026-10-01
idiotproof diary stats --by strategy
docs
docs dsl
Explain one IdiotScript verb: phase, signatures, meaning, doc comment, an example from its real signature, and uses.
Usage: idiotproof docs dsl <verb>
Risk: read
Parameters:
<verb> An IdiotScript verb or alias: StopLoss, IsAboveVwap, OnReclaim, RequireAdxAbove, ... (required)
Examples:
idiotproof docs dsl StopLoss
idiotproof docs dsl IsAboveVwap --json
docs explain
Explain a type or member: its doc comment, where it is declared (path:line), its members and its callers.
Callers are found by text (every line naming it as a whole word, comments and the declaration skipped), so overloads and same-named members elsewhere also show.
Usage: idiotproof docs explain <symbol> [--callers <int>]
Risk: read
Parameters:
<symbol> A type or member: TransactionGateway, TransactionGateway.SubmitAsync, a full name, or an XML doc id (T:..., M:...). (required)
--callers <int> Most lines that mention it to list (default 15; 0 for none). (default: 15)
Examples:
idiotproof docs explain TransactionGateway
idiotproof docs explain TransactionGateway.SubmitAsync --callers 5
idiotproof docs explain T:IdiotProof.Core.Trading.OrderIntent --json
docs law
Show one BIBLE law (IP-LAW-n) in full, or list every law.
Usage: idiotproof docs law [<n>]
Risk: read
Parameters:
<n> The law: 3, LAW-3 or IP-LAW-3. Leave out to list every law.
Examples:
idiotproof docs law 3
idiotproof docs law
Every law with its title and line.
docs search
Search everything IdiotProof knows about itself: BIBLE, docs, stories, tickets, code docs and catalogs.
Results are ranked: an exact id first, then entries holding every word (title and id hits weigh most). Follow up with `docs law`, `docs section`, `docs story`, `docs ticket` or `docs explain`.
Usage: idiotproof docs search <text>... [--kind <section|law|doc|story|ticket|symbol|catalog>] [--limit <int>] [--refresh]
Risk: read
Parameters:
<text> What to look for: words, a phrase, or an id like IP-LAW-3, IP-US-K1, IP-T259, §4, TransactionGateway. (required)
--kind <section|law|doc|story|ticket|symbol|catalog> Only one kind: section, law, doc, story, ticket, symbol or catalog.
--limit <int> Most results to show (default 15). (default: 15)
--refresh Re-read the docs, code and tickets first (the index otherwise refreshes every 30 minutes). (default: false)
Examples:
idiotproof docs search transaction gateway
idiotproof docs search "peak giveback" --kind story
idiotproof docs search IP-LAW-9 --json
Machine-readable hits with path:line and a snippet.
docs section
Show one BIBLE section (IP-§n, subsections included), or the table of contents.
Usage: idiotproof docs section [<section>]
Risk: read
Parameters:
<section> The BIBLE section: 4, §4, 4.4 or IP-§4. Leave out to list the sections.
Examples:
idiotproof docs section 4
idiotproof docs section 4.4
A numbered subsection.
idiotproof docs section
The BIBLE's table of contents.
docs story
Show one user story (IP-US-*) with its status and proving tests, or list an epic's stories.
Usage: idiotproof docs story [<id>] [--epic <string>] [--status <string>]
Risk: read
Parameters:
<id> The story: K1, US-K1 or IP-US-K1. Leave out and pass --epic or --status to list stories.
--epic <string> List the stories of one epic by letter (K, W, ...).
--status <string> List only stories with this status: done, partial or planned.
Examples:
idiotproof docs story K1
idiotproof docs story --epic W
Every Epic W story with its status.
idiotproof docs story --status planned
docs ticket
Show one ticket: status, description, requires / required-by, the commits that name it, and its history.
Usage: idiotproof docs ticket <id> [--history]
Risk: read
Parameters:
<id> The ticket: IP-T259, T259 or 259. (required)
--history Also list every recorded change (status, priority, approval, links) with its ET time. (default: false)
Examples:
idiotproof docs ticket IP-T259
idiotproof docs ticket 266 --history
dsl
dsl format
Render canonical strategy JSON (or a stamp) as IdiotScript text, checking it parses back to the same strategy.
Usage: idiotproof dsl format <text>
Risk: read
Parameters:
<text> IdiotScript, canonical JSON or a stamp; `-` reads it from stdin. (required)
Examples:
idiotproof dsl format -
Reads the JSON from stdin, e.g. `idiotproof strategy export INTC --format json | idiotproof dsl format -`.
dsl glossary
Plain-English meaning of IdiotScript verbs: every entry, or one verb (aliases resolve).
Usage: idiotproof dsl glossary [<verb>]
Risk: read
Parameters:
<verb> A verb name or alias (IsAboveVwap, StopLoss, RequireAdxAbove, ...); omit to list every entry.
Examples:
idiotproof dsl glossary
idiotproof dsl glossary IsAboveVwap
dsl parse
Parse IdiotScript (or JSON or a stamp) into the canonical strategy JSON the Monitor evaluates; nothing is saved.
Usage: idiotproof dsl parse <text>
Risk: read
Parameters:
<text> IdiotScript, canonical JSON or a stamp; `-` reads it from stdin. (required)
Examples:
idiotproof dsl parse "Ticker(\"NVDA\").IsAboveVwap().Long().StopLoss(2).TakeProfit(5)"
idiotproof dsl parse -
Reads the script from stdin, e.g. `type nvda.idiot | idiotproof dsl parse -`.
dsl validate
Validate IdiotScript/JSON against the phase rules and the gates, failing closed with every reason (nothing is saved).
Usage: idiotproof dsl validate <text>
Risk: read
Parameters:
<text> IdiotScript, canonical JSON or a stamp; `-` reads it from stdin. (required)
Examples:
idiotproof dsl validate "Ticker(\"NVDA\").IsAboveVwap().Long().StopLoss(2).TakeProfit(5)"
idiotproof dsl validate -
Reads the script or JSON from stdin.
dsl verbs
The IdiotScript verb catalog by phase, reflected from the code that compiles it (IP-LAW-4).
Usage: idiotproof dsl verbs [--phase <string>]
Risk: read
Parameters:
--phase <string> Only one phase: setup, filters, entry, order, risk, exit, or conditions (the static If/ElseIf catalog).
Examples:
idiotproof dsl verbs
idiotproof dsl verbs --phase risk
idiotproof dsl verbs --phase conditions
The static Conditions catalog used inside .If/.ElseIf.
evidence
evidence calibration
Learned-vs-realized calibration per template: predicted probability buckets vs realized win rate, Brier score against the base-rate baseline, sample counts.
Usage: idiotproof evidence calibration [--source <string>] [--buckets <int>]
Risk: read
Parameters:
--source <string> exhaustion, adaptation or all (default). (default: all)
--buckets <int> Probability buckets across 0..1 (default 5). (default: 5)
Examples:
idiotproof evidence calibration
idiotproof evidence calibration --source exhaustion --buckets 4
evidence conformal
Split and adaptive conformal intervals around analog or Kalman forward-return forecasts: coverage vs nominal per month, and an abstain-unless-the-interval-excludes-zero rule scored with day-clustered significance.
Usage: idiotproof evidence conformal <symbols>... [--from <date>] [--to <date>] [--model <analog|kalman>] [--alpha <number>] [--gamma <number>] [--horizon <int>] [--window <int>] [--train-days <int>] [--warmup-days <int>] [--min-similarity <number>] [--entry <next-open|close>]
Risk: read
Parameters:
<symbols> One or more tickers, e.g. SNDL MULN. (required)
--from <date> First ET day (yyyy-MM-dd, default: 40 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: yesterday ET).
--model <analog|kalman> analog: the mean forward return of LSH look-alike windows from prior sessions. kalman: the local-trend filter's slope × horizon, fitted on the warm-up sessions. (default: analog)
--alpha <number> Miss rate the intervals target (default 0.1 = 90% intervals). (default: 0.1)
--gamma <number> Adaptive conformal learning rate (default 0.005). (default: 0.005)
--horizon <int> Minute bars ahead (default 15). (default: 15)
--window <int> Bars per pattern window / filter burn-in (default 30). (default: 30)
--train-days <int> Analog: prior sessions searched for look-alikes (default 20). (default: 20)
--warmup-days <int> Sessions before the first forecast; kalman fits its noise variances on them (default 5). (default: 5)
--min-similarity <number> Analog: least cosine similarity of a look-alike (default 0.8). (default: 0.8)
--entry <next-open|close> next-open (default: fill at the next bar's open, immune to bid-ask bounce) or close (fill at the signal bar's close; a diagnostic). (default: next-open)
Examples:
idiotproof evidence conformal SNDL MULN --from 2026-08-03 --to 2026-10-30
idiotproof evidence conformal SNDL --model kalman --alpha 0.2 --horizon 10
evidence events
Event study of Research claims: market-model abnormal returns and CARs per claim type/sentiment/insider code, with Patell, BMP and placebo-bootstrap significance.
Usage: idiotproof evidence events [--from <date>] [--to <date>] [--type <string>] [--windows <string>] [--estimation <int>] [--gap <int>] [--min-events <int>] [--bootstrap <int>] [--seed <int>] [--benchmark <string>] [--max-daily-move <number>]
Risk: read
Parameters:
--from <date> First claim article day (yyyy-MM-dd, default: 180 days before --to).
--to <date> Last claim article day (yyyy-MM-dd, default: today ET).
--type <string> Only this claim type (Earnings, Contract, Insider, MA, Guidance, Regulatory, News, IndexEvent).
--windows <string> Event windows in trading days, start:end, comma-separated (default -1:1,0:1,0:5). (default: -1:1,0:1,0:5)
--estimation <int> Estimation-window length in trading days (default 120). (default: 120)
--gap <int> Trading days between the estimation window and the event window (default 10). (default: 10)
--min-events <int> Fewest valid events a group needs to be reported (default 5). (default: 5)
--bootstrap <int> Placebo bootstrap draws (default 1000; 0 skips it). (default: 1000)
--seed <int> Bootstrap seed (default 1337). (default: 1337)
--benchmark <string> Market benchmark symbol (default SPY). (default: SPY)
--max-daily-move <number> Drop events whose windows hold a daily return above this (default 2.0 = +200%, or below -66.7%). Bars are split-adjusted from Alpaca corporate actions; this guard catches splits the feed missed. (default: 2)
Examples:
idiotproof evidence events
idiotproof evidence events --type Insider --windows 0:1,0:5 --from 2026-05-01
evidence flow
Order-flow evidence: imbalance, VPIN, Kyle's lambda and absorption bucketed against forward returns, scored on held-out sessions.
Usage: idiotproof evidence flow <symbol> [--from <date>] [--to <date>] [--horizon <int>] [--bins <int>] [--signing <tick|lee-ready|bulk>] [--train <number>] [--vpin-window <int>] [--lambda-window <int>]
Risk: read
Parameters:
<symbol> Ticker, e.g. SNDL. (required)
--from <date> First ET day (yyyy-MM-dd, default: 10 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: yesterday ET).
--horizon <int> Minute bars ahead to measure (default 5). (default: 5)
--bins <int> Quantile buckets per metric (default 5). (default: 5)
--signing <tick|lee-ready|bulk> tick (default: tick rule on trades), lee-ready (trades vs quote midpoint; fetches quotes) or bulk (bar-only bulk classification). (default: tick)
--train <number> Share of sessions used to learn bucket edges (default 0.67); the rest is the held-out test. (default: 0.67)
--vpin-window <int> VPIN buckets averaged (default 50). (default: 50)
--lambda-window <int> Bars per Kyle's lambda regression (default 30). (default: 30)
Examples:
idiotproof evidence flow SNDL --from 2026-10-20 --to 2026-10-31
idiotproof evidence flow MULN --signing bulk --horizon 10
evidence graph
Correlation graph across symbols (lag 0 or 1) and the hop-decayed influence of a shock at a source symbol.
Usage: idiotproof evidence graph <symbols>... [--source <string>] [--lag <int>] [--edge <correlation|te>] [--alpha <number>] [--clean <none|rmt>] [--min-corr <number>] [--beta <number>] [--from <date>] [--to <date>] [--timeframe <minute|day>] [--session <rth|all>]
Risk: read
Parameters:
<symbols> Two or more tickers, e.g. SNDL TLRY CGC ACB. (required)
--source <string> Symbol whose shock is propagated (default: the first symbol).
--lag <int> 0 = moves together (default); 1 = the source's bar predicts the other's next bar. (default: 0)
--edge <correlation|te> correlation (default) or te: transfer entropy beating shuffled surrogates (directional, implies --lag 1). (default: correlation)
--alpha <number> With --edge te, the surrogate-test significance an edge must reach (default 0.05). (default: 0.05)
--clean <none|rmt> none (default) or rmt: keep only correlation the data can tell from chance (lag 0: Marchenko-Pastur eigenvalue clipping; lag 1: the 2.5/sqrt(T) noise floor). Correlation edges only; --edge te already tests each edge against shuffled surrogates. (default: none)
--min-corr <number> Least |correlation| that makes an edge (default 0.2). (default: 0.2)
--beta <number> Per-hop decay of influence, 0-1 exclusive (default 0.5). (default: 0.5)
--from <date> First ET day (yyyy-MM-dd, default: 5 days before --to for minute, 120 for day).
--to <date> Last ET day (yyyy-MM-dd, default: today ET).
--timeframe <minute|day> minute (default) or day. (default: minute)
--session <rth|all> rth (default) or all. (default: rth)
Examples:
idiotproof evidence graph SNDL TLRY CGC ACB --source TLRY
idiotproof evidence graph SPY IWM MULN --lag 1 --source SPY
evidence hawkes
Hawkes self-exciting fit of trade arrivals (branching ratio = endogenous share) and a momentum-ignition detector scored against forward returns on held-out sessions.
Usage: idiotproof evidence hawkes <symbol> [--from <date>] [--to <date>] [--horizon <int>] [--bins <int>] [--train <number>] [--window <int>] [--spike <number>] [--branching <number>]
Risk: read
Parameters:
<symbol> Ticker, e.g. SNDL. (required)
--from <date> First ET day (yyyy-MM-dd, default: 10 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: yesterday ET).
--horizon <int> Minute bars ahead to measure (default 5). (default: 5)
--bins <int> Quantile buckets for the continuous features (default 5). (default: 5)
--train <number> Share of scored sessions used to learn bucket edges (default 0.67); the rest is the held-out test. (default: 0.67)
--window <int> Trailing minutes the detector looks at (default 10). (default: 10)
--spike <number> Trade-rate multiple of the prior session's baseline that counts as a spike (default 3). (default: 3)
--branching <number> Rolling branching ratio that counts as self-exciting (default 0.7). (default: 0.7)
Examples:
idiotproof evidence hawkes SNDL --from 2026-10-20 --to 2026-10-31
idiotproof evidence hawkes MULN --window 5 --spike 4 --branching 0.8
evidence kalman
Kalman trend slope, innovation z and leader pair-residual z bucketed against forward returns, fitted on training sessions and tested on held-out ones.
Usage: idiotproof evidence kalman <symbols>... [--leader <string>] [--from <date>] [--to <date>] [--horizon <int>] [--bins <int>] [--train <number>] [--entry <next-open|close>]
Risk: read
Parameters:
<symbols> One or more tickers, e.g. SNDL MULN. (required)
--leader <string> Leader for the pair-residual feature (dynamic hedge ratio), e.g. SPY or IWM. Omit to skip it.
--from <date> First ET day (yyyy-MM-dd, default: 20 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: yesterday ET).
--horizon <int> Minute bars ahead to measure (default 5). (default: 5)
--bins <int> Quantile buckets per feature (default 5). (default: 5)
--train <number> Share of sessions used to fit the filter and learn bucket edges (default 0.67); the rest is the held-out test. (default: 0.67)
--entry <next-open|close> next-open (default: enter at the next bar's open, immune to bid-ask bounce) or close (enter at the signal bar's close). (default: next-open)
Examples:
idiotproof evidence kalman SNDL --from 2026-09-01 --to 2026-10-30
idiotproof evidence kalman MULN SNDL --leader IWM --horizon 10
evidence label
Forward-return distribution for a symbol (up/down/flat rates, quantiles, excursions): the base rate a pattern must beat.
Usage: idiotproof evidence label <symbol> [--from <date>] [--to <date>] [--horizon <int>] [--entry <next-open|close>] [--timeframe <minute|day>] [--dead-band <number>] [--session <rth|all>]
Risk: read
Parameters:
<symbol> Ticker, e.g. SNDL. (required)
--from <date> First ET day (yyyy-MM-dd, default: 20 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: yesterday ET).
--horizon <int> Bars ahead to measure (default 5). (default: 5)
--entry <next-open|close> next-open (default: fill at the next bar's open, immune to bid-ask bounce) or close (fill at the signal bar's close; a diagnostic). (default: next-open)
--timeframe <minute|day> minute (default) or day. (default: minute)
--dead-band <number> Absolute return counted as flat, as a fraction (default 0.001). (default: 0.001)
--session <rth|all> rth (default) or all. (default: rth)
Examples:
idiotproof evidence label SNDL --from 2026-10-01 --to 2026-10-31 --horizon 10
idiotproof evidence label AAPL --timeframe day --from 2026-01-02 --horizon 5
evidence pools
Stop-pool raid rates: how often price raided each pool kind (round numbers, prior-day/premarket/opening-range levels, VWAP bands) and reversed vs broke through, per side and price tier.
Usage: idiotproof evidence pools <symbols>... [--from <date>] [--to <date>] [--horizon <int>] [--proximity <number>] [--min-samples <int>]
Risk: read
Parameters:
<symbols> One or more tickers, e.g. SNDL MULN. (required)
--from <date> First ET day (yyyy-MM-dd, default: 20 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: today ET).
--horizon <int> Bars after an approach that decide raid / break / reject (default 10). (default: 10)
--proximity <number> How close counts as reaching a pool, in ATRs of the bar before (default 0.25). (default: 0.25)
--min-samples <int> Hide rows with fewer approaches than this (default 1). (default: 1)
Examples:
idiotproof evidence pools SNDL MULN
idiotproof evidence pools SNDL --from 2026-09-01 --to 2026-10-30 --min-samples 20
evidence regime
Per-symbol regime: Hurst, variance ratio (z-tested vs random walk), efficiency ratio, realized vol, lag-1 autocorrelation.
Usage: idiotproof evidence regime <symbols>... [--from <date>] [--to <date>] [--timeframe <minute|day>] [--q <int>] [--session <rth|all>] [--method <vr|bocpd|hmm>] [--threshold <number>] [--states <int>] [--aggregate <int>]
Risk: read
Parameters:
<symbols> One or more tickers, e.g. SNDL MULN. (required)
--from <date> First ET day (yyyy-MM-dd, default: 5 days before --to for minute, 120 for day).
--to <date> Last ET day (yyyy-MM-dd, default: today ET).
--timeframe <minute|day> minute (default) or day. (default: minute)
--q <int> Variance-ratio aggregation in bars (default 4). (default: 4)
--session <rth|all> rth (default) or all. (default: rth)
--method <vr|bocpd|hmm> vr (default: variance-ratio z-test), bocpd (Bayesian online change points) or hmm (Gaussian hidden Markov regimes, trained on earlier sessions, filtered forward on the last). (default: vr)
--threshold <number> bocpd: probability that a regime began within the last 5 bars needed to flag a change (default 0.5). (default: 0.5)
--states <int> hmm: hidden states, 2 or 3 (default 2). (default: 2)
--aggregate <int> bocpd/hmm on minute bars: bar multiple to fit on (default: auto, the smallest of 1,2,3,5,10,15,30 minutes at which most bars move and tick rounding is under 10% of return variance; 1 = raw minutes).
Examples:
idiotproof evidence regime SNDL MULN
idiotproof evidence regime SPY --timeframe day --from 2026-05-01
evidence search
Grid-search a strategy template with multiple-testing corrections: BH q-values, deflated Sharpe, reality check/SPA, and a held-out score for the winner.
Usage: idiotproof evidence search <symbols>... [--script <string>] [--grid <string[]>] [--from <date>] [--to <date>] [--holdout <number>] [--top <int>] [--resamples <int>] [--block <number>] [--seed <int>] [--max-configs <int>] [--cost <number>] [--shares <number>]
Risk: read
Parameters:
<symbols> Tickers to score every config on, e.g. SNDL MULN. (required)
--script <string> IdiotScript template with {name} placeholders, e.g. "Ticker(X).IsAboveVwap().Long().StopLossPercent({sl}).TrailingStopLoss({trail})". Use percent exits: an absolute TakeProfit/StopLoss price means the same dollar level on every symbol. (default: )
--grid <string[]> Repeatable: a placeholder and its values, e.g. --grid tp=1,2,3 --grid sl=0.5,1.
--from <date> First ET day (yyyy-MM-dd, default: 30 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: today ET).
--holdout <number> Fraction of the latest days kept out of selection and scored once on the chosen config (default 0.3). (default: 0.3)
--top <int> Configs to list (default 10). (default: 10)
--resamples <int> Reality-check bootstrap resamples (default 1000). (default: 1000)
--block <number> Mean bootstrap block length in symbol-days (default 5). (default: 5)
--seed <int> Bootstrap seed (default 1337). (default: 1337)
--max-configs <int> Refuse grids larger than this (default 2000). (default: 2000)
--cost <number> Flat round-trip cost per trade as a fraction. Omit it to model each symbol-day's cost from that symbol's prior sessions (Corwin-Schultz spread + square-root impact for --shares).
--shares <number> Shares per trade for the modeled impact cost (default 1, the default order size). (default: 1)
Examples:
idiotproof evidence search SNDL MULN --script "Ticker(X).IsAboveVwap().Long().StopLossPercent({sl}).TrailingStopLoss({trail})" --grid sl=1,2 --grid trail=1,3
evidence similar
LSH look-alikes of a symbol's latest bar window from earlier sessions, with what each did next.
Usage: idiotproof evidence similar <symbol> [--date <date>] [--window <int>] [--horizon <int>] [--entry <next-open|close>] [--train-days <int>] [--k <int>] [--min-similarity <number>] [--session <rth|all>]
Risk: read
Parameters:
<symbol> Ticker, e.g. SNDL. (required)
--date <date> ET day whose latest window is matched (yyyy-MM-dd, default: today ET).
--window <int> Bars per pattern window (default 20). (default: 20)
--horizon <int> Bars ahead each look-alike's outcome is measured (default 5). (default: 5)
--entry <next-open|close> next-open (default: fill at the next bar's open, immune to bid-ask bounce) or close (fill at the signal bar's close; a diagnostic). (default: next-open)
--train-days <int> Prior sessions searched for look-alikes (default 20). (default: 20)
--k <int> Look-alikes to list (default 15). (default: 15)
--min-similarity <number> Least cosine similarity (default 0.8). (default: 0.8)
--session <rth|all> rth (default) or all. (default: rth)
Examples:
idiotproof evidence similar SNDL
idiotproof evidence similar MULN --date 2026-10-30 --window 30 --horizon 10
evidence sizing
Advisory Kelly sizing (plug-in vs Beta-posterior vs conservative) from diary trades or manual counts; never changes order quantities.
The Risk Guardian and the 1-share default policy stay authoritative; this only reports what the measured edge would justify.
Usage: idiotproof evidence sizing [--strategy <string>] [--symbol <string>] [--wins <int>] [--losses <int>] [--payoff <number>] [--fraction <number>]
Risk: read
Parameters:
--strategy <string> Size from this strategy's closed trades in the diary (title, case-insensitive).
--symbol <string> Size from this symbol's closed trades in the diary.
--wins <int> Manual mode: winning trades (use with --losses and --payoff).
--losses <int> Manual mode: losing trades.
--payoff <number> Manual mode: average win / average loss.
--fraction <number> Fraction of the posterior Kelly to recommend (default 0.5 = half Kelly). (default: 0.5)
Examples:
idiotproof evidence sizing --strategy "SNDL dip-reclaim"
idiotproof evidence sizing --wins 12 --losses 8 --payoff 1.3
evidence survival
Survival analysis of exits: Kaplan-Meier hold curves, competing-risk incidence of target vs stop vs trail, Cox hazard ratios, and an advisory sell-by from replay trades.
Usage: idiotproof evidence survival [--strategy <string>] [--symbol <string>] [--from <date>] [--to <date>] [--top <int>] [--min-trades <int>] [--checkpoints <string>]
Risk: read
Parameters:
--strategy <string> Only replay trades whose strategy/family name contains this text (case-insensitive).
--symbol <string> Only this symbol's replay trades.
--from <date> First trade day (yyyy-MM-dd ET).
--to <date> Last trade day (yyyy-MM-dd ET).
--top <int> Report at most this many strategies, most trades first (default 8). (default: 8)
--min-trades <int> Fewest trades a strategy needs to get its own curves (default 20). (default: 20)
--checkpoints <string> Hold minutes at which to read the curves, comma-separated (default 5,15,30,60,120). (default: 5,15,30,60,120)
Examples:
idiotproof evidence survival
idiotproof evidence survival --strategy gapper --checkpoints 10,30,60
evidence tails
Tail dependence (copulas): which symbols crash together beyond what correlation shows, and whether a crash in one predicts the next bar of the other out of sample.
Usage: idiotproof evidence tails <symbols>... [--from <date>] [--to <date>] [--timeframe <minute|day>] [--q <number>] [--train <number>] [--permutations <int>] [--alpha <number>] [--seed <int>]
Risk: read
Parameters:
<symbols> Two or more tickers, e.g. SNDL MULN SPY. (required)
--from <date> First ET day (yyyy-MM-dd, default: 365 days before --to for day, 10 for minute).
--to <date> Last ET day (yyyy-MM-dd, default: today ET).
--timeframe <minute|day> day (default) or minute. (default: day)
--q <number> Tail quantile: a 'crash' is a return in the bottom q (default 0.1). (default: 0.1)
--train <number> Share of aligned bars used to find tail-linked pairs (default 0.67); the rest is the held-out contagion test. (default: 0.67)
--permutations <int> Permutations for the tail-independence test (default 999). (default: 999)
--alpha <number> False-discovery rate for both the pair screen and the holdout test (default 0.05). (default: 0.05)
--seed <int> Permutation seed (default 1337). (default: 1337)
Examples:
idiotproof evidence tails SNDL MULN SPY
idiotproof evidence tails SOXL NVDA AMD --q 0.05 --from 2025-11-01
evidence topology
Persistent-homology features (H0/H1 persistence, landscape norm) of delay-embedded returns, learned on earlier days and re-tested on held-out days with a session-clustered test.
Usage: idiotproof evidence topology <symbols>... [--from <date>] [--to <date>] [--window <int>] [--dim <int>] [--delay <int>] [--horizon <int>] [--buckets <int>] [--holdout <number>] [--min-samples <int>] [--session <rth|all>]
Risk: read
Parameters:
<symbols> One or more tickers, e.g. SNDL MULN. (required)
--from <date> First ET day (yyyy-MM-dd, default: 30 days before --to).
--to <date> Last ET day (yyyy-MM-dd, default: today ET).
--window <int> Closes per topology read (default 40, max 100). (default: 40)
--dim <int> Delay-embedding dimension (default 3). (default: 3)
--delay <int> Delay-embedding lag in bars (default 1). (default: 1)
--horizon <int> Forward bars for the up/down label; reads are spaced this far apart (default 5). (default: 5)
--buckets <int> Quantile buckets per feature, learned on training days (default 4). (default: 4)
--holdout <number> Fraction of the latest trading days held out (default 0.3). (default: 0.3)
--min-samples <int> Minimum training reads in a bucket before it can be picked (default 30). (default: 30)
--session <rth|all> rth (default) or all. (default: rth)
Examples:
idiotproof evidence topology SNDL MULN --from 2026-08-01 --to 2026-10-30
idiotproof evidence topology SPY --window 30 --dim 2 --delay 2 --horizon 10
evidence walkforward
Out-of-sample walk-forward directional test (LSH analogs) with binomial p, Wilson CI, coverage and edge after costs.
Each day's model trains only on earlier sessions; calls are spaced by --horizon so outcomes never overlap. Analysis only; arms nothing.
Usage: idiotproof evidence walkforward [<symbols>...] [--universe <none|penny>] --from <date> [--to <date>] [--model <analog|leaders>] [--leaders <string>] [--edge <correlation|te>] [--clean <none|rmt>] [--leader-hops <int>] [--leader-min-influence <number>] [--window <int>] [--horizon <int>] [--train-days <int>] [--min-similarity <number>] [--min-neighbors <int>] [--min-agreement <number>] [--cost <number>] [--entry <next-open|close>] [--allow-mixed-feeds] [--shares <number>] [--volume] [--session <rth|all>] [--max-symbols-per-day <int>] [--max-candidates <int>]
Risk: read
Parameters:
<symbols> Tickers to test, e.g. SNDL MULN (omit when using --universe).
--universe <none|penny> penny: each day's point-in-time under-$5 universe (prior-day close, dollar-volume floor), drawn from active AND delisted Alpaca equities. (default: none)
--from <date> First ET day to evaluate (yyyy-MM-dd). (required)
--to <date> Last ET day to evaluate (yyyy-MM-dd, default: yesterday ET).
--model <analog|leaders> analog: LSH look-alike windows vote on direction. leaders: follow the influence-weighted move of the symbol's lag-1 leaders, discovered among --leaders from prior sessions only. (default: analog)
--leaders <string> With --model leaders, the symbols leaders are discovered among (default SPY,QQQ,IWM). (default: SPY,QQQ,IWM)
--edge <correlation|te> With --model leaders, how leader edges are measured: correlation (default) or te (transfer entropy vs shuffled surrogates). (default: correlation)
--clean <none|rmt> With --model leaders and correlation edges: none (default) or rmt, keeping only lag-1 correlations above the random-matrix noise floor 2.5/sqrt(T). (default: none)
--leader-hops <int> With --model leaders, most links between a leader and the symbol (default 2). (default: 2)
--leader-min-influence <number> With --model leaders, least |influence| a leader needs to count (default 0.05). (default: 0.05)
--window <int> Bars per pattern window (default 20). (default: 20)
--horizon <int> Bars ahead the call is scored on; calls are spaced this far apart so outcomes never overlap (default 5). (default: 5)
--train-days <int> Prior sessions each day's model trains on (default 20). (default: 20)
--min-similarity <number> Least cosine similarity for a look-alike to count (default 0.8). (default: 0.8)
--min-neighbors <int> Fewest look-alikes needed to make a call (default 8). (default: 8)
--min-agreement <number> Smoothed share of look-alikes that must agree to call (default 0.6). (default: 0.6)
--cost <number> Flat round-trip cost per call as a fraction (e.g. 0.003). Omit it to model each symbol-day's cost from its prior sessions: Corwin-Schultz spread + square-root impact for --shares.
--entry <next-open|close> next-open (default: a call fills at the next bar's open, immune to bid-ask bounce) or close (fills at the signal bar's close; a diagnostic that inflates mean-reversion edge on low-priced names). (default: next-open)
--allow-mixed-feeds Report a verdict even when the bars mix SIP and IEX tiers (refused by default: IEX prices and volumes are one exchange's, not the consolidated tape). (default: false)
--shares <number> Shares per call for the modeled impact cost (default 1, the default order size). (default: 1)
--volume Include the volume shape in the pattern vector. (default: false)
--session <rth|all> rth (default) or all (adds pre/after-hours bars). (default: rth)
--max-symbols-per-day <int> With --universe, keep each day's most liquid N members (default 30). (default: 30)
--max-candidates <int> With --universe, most candidate symbols screened (default 4000; inactive first, then active). (default: 4000)
Examples:
idiotproof evidence walkforward --universe penny --from 2026-08-03 --to 2026-10-30
Penny-stock (< $5) test across the point-in-time universe.
idiotproof evidence walkforward SNDL --from 2026-10-01 --horizon 10
gapper
gapper apply-tuned
Save a backtest's hindsight-tuned profile as a new gapper strategy (inactive unless --arm).
Usage: idiotproof gapper apply-tuned <run> [--arm] [--mode <sandbox|paper|live>]
Risk: write
Parameters:
<run> The run id `gapper backtest-day` printed (gb-xxxxxxxx). (required)
--arm Arm it right away (one-per-symbol and the 3-gapper cap still apply). (default: false)
-m, --mode <sandbox|paper|live> Broker mode for the new gapper: paper (default) or sandbox. (default: paper)
Examples:
idiotproof gapper apply-tuned gb-1a2b3c4d
idiotproof gapper apply-tuned gb-1a2b3c4d --arm
gapper arm
Arm a gapper: activate an existing one or queue a new one from a profile, honoring one-per-symbol and the 3-gapper cap.
Usage: idiotproof gapper arm <gapper> [--mode <sandbox|paper|live>] [--profile <string>] [--gap <number>] [--max-gap <number>] [--volume <number>] [--min-price <number>] [--max-price <number>] [--entry-start <string>] [--entry-end <string>] [--stop <number>] [--trail <number>] [--giveback <number>] [--arm-exit <string>] [--sell-by <string>] [--notional <decimal>]
Risk: money
Parameters:
<gapper> A symbol (queues a new gapper when it has none) or a gapper's id, id prefix or stamp id. (required)
-m, --mode <sandbox|paper|live> Broker mode for a newly queued gapper: paper (default) or sandbox. Live is `strategy mode`, confirmed. (default: paper)
-p, --profile <string> Gapper profile id or name to start from (default classic-gapper).
--gap <number> Minimum gap over the previous close, percent.
--max-gap <number> Gap ceiling in percent (0 = no ceiling).
--volume <number> Premarket volume must be at least this multiple of average volume.
--min-price <number> Lowest price that qualifies.
--max-price <number> Highest price that qualifies.
--entry-start <string> Entry window start, ET (HH:mm).
--entry-end <string> Entry window end, ET (HH:mm).
--stop <number> Hard stop below entry, percent.
--trail <number> Trailing stop off the high, percent (0 = none).
--giveback <number> Sell once price gives back this percent of the entry-to-peak run.
--arm-exit <string> ET time the giveback exit arms (HH:mm).
--sell-by <string> Hard flatten time, ET (HH:mm), before the 9:30 bell.
--notional <decimal> Position size in dollars.
Examples:
idiotproof gapper arm NVDA
idiotproof gapper arm ABCD --profile penny-runner --stop 6
idiotproof gapper arm 0190a3f2
gapper auto candidates
Every ticker an auto-gapper scan screened on a day: signals, the adaptive plan it chose, and armed or why skipped.
Usage: idiotproof gapper auto candidates [--date <date>]
Risk: read
Parameters:
-d, --date <date> ET scan day (yyyy-MM-dd); default the latest scan's day.
Examples:
idiotproof gapper auto candidates
idiotproof gapper auto candidates --date 2026-10-29
gapper auto disable
Disarm every auto-armed gapper of yours that holds no position (holding ones stay armed to manage their exit).
Usage: idiotproof gapper auto disable
Risk: write
Examples:
idiotproof gapper auto disable
gapper auto enable
Run the auto-gapper for you now and arm its top picks as paper gappers (paper-only; --dry-run previews).
Usage: idiotproof gapper auto enable [--dry-run]
Risk: write
Parameters:
-n, --dry-run Preview what would arm; writes and arms nothing. (default: false)
Examples:
idiotproof gapper auto enable --dry-run
idiotproof gapper auto enable
gapper auto status
Auto-gapper settings, its recent scans (screened, qualified, armed, skipped) and your auto-armed gappers.
Usage: idiotproof gapper auto status [--last <int>]
Risk: read
Parameters:
--last <int> How many recent scans to show (default 7). (default: 7)
Examples:
idiotproof gapper auto status
idiotproof gapper auto status --last 20
gapper backtest-day
Replay a gapper profile over one past day: fills, MFE/MAE, the giveback grid and a hindsight-tuned profile (saved for apply-tuned).
Usage: idiotproof gapper backtest-day <symbol> [<date>] [--profile <string>] [--gap <number>] [--max-gap <number>] [--volume <number>] [--min-price <number>] [--max-price <number>] [--entry-start <string>] [--entry-end <string>] [--stop <number>] [--trail <number>] [--giveback <number>] [--arm-exit <string>] [--sell-by <string>] [--notional <decimal>]
Risk: read
Parameters:
<symbol> The ticker to replay. (required)
<date> The ET trading day (yyyy-MM-dd); default the last completed trading day.
-p, --profile <string> Gapper profile id or name to start from (default classic-gapper).
--gap <number> Minimum gap over the previous close, percent.
--max-gap <number> Gap ceiling in percent (0 = no ceiling).
--volume <number> Premarket volume must be at least this multiple of average volume.
--min-price <number> Lowest price that qualifies.
--max-price <number> Highest price that qualifies.
--entry-start <string> Entry window start, ET (HH:mm).
--entry-end <string> Entry window end, ET (HH:mm).
--stop <number> Hard stop below entry, percent.
--trail <number> Trailing stop off the high, percent (0 = none).
--giveback <number> Sell once price gives back this percent of the entry-to-peak run.
--arm-exit <string> ET time the giveback exit arms (HH:mm).
--sell-by <string> Hard flatten time, ET (HH:mm), before the 9:30 bell.
--notional <decimal> Position size in dollars.
Examples:
idiotproof gapper backtest-day NVDA 2026-10-29
idiotproof gapper backtest-day ABCD 2026-10-29 --profile penny-runner --giveback 20
gapper be-bex status
The BE/BEX decay gate: latest decay reading, threshold, and which gated BE strategies are armed or disarmed by it.
Usage: idiotproof gapper be-bex status
Risk: read
Examples:
idiotproof gapper be-bex status
gapper caps
Active-gapper counts against the caps: 3 manual gappers, one active strategy per symbol, the auto-gapper limit.
Usage: idiotproof gapper caps
Risk: read
Examples:
idiotproof gapper caps
gapper disarm
Disarm a gapper so the Monitor stops evaluating it (refused while it holds a position); --remove deletes it.
Usage: idiotproof gapper disarm <gapper> [--remove]
Risk: write
Parameters:
<gapper> The gapper's symbol, id, id prefix or stamp id. (required)
--remove Also delete the gapper row (only when it holds no position). (default: false)
Examples:
idiotproof gapper disarm NVDA
idiotproof gapper disarm 0190a3f2 --remove
gapper formation
Recent live gapper-formation snapshot rows: time ET, gap, volume ratio, 1/3/5-minute velocity, acceleration, distance to the premarket high, catalyst score/age, halted and whether the trigger rule passed.
Usage: idiotproof gapper formation [--symbol <string>] [--date <date>] [--last <int>]
Risk: read
Parameters:
-s, --symbol <string> Only this ticker.
-d, --date <date> ET trading day (yyyy-MM-dd); default every day the sink holds.
--last <int> How many rows, newest first (default 40, max 500). (default: 40)
Examples:
idiotproof gapper formation
idiotproof gapper formation --symbol ABCD --date 2026-11-06
gapper formation disable
Turn the formation recorder off (settings only; nothing to disarm — it never arms).
Usage: idiotproof gapper formation disable
Risk: write
Examples:
idiotproof gapper formation disable
gapper formation enable
Turn the formation recorder on for you (paper-only research rows, 03:55-09:45 ET weekdays, with the Monitor leader); never arms.
Usage: idiotproof gapper formation enable
Risk: write
Examples:
idiotproof gapper formation enable
gapper formation status
Whether the formation recorder is enabled, who owns it, whether this Hub leads, today's universe size, the stream, rows written, halted symbols, the trigger rule and the sink in use.
Usage: idiotproof gapper formation status
Risk: read
Examples:
idiotproof gapper formation status
gapper formation universe
Today's formation universe: every symbol the recorder watches and why it is in (catalyst, mover, most-active, tracked), with catalyst score, gap and price.
Usage: idiotproof gapper formation universe
Risk: read
Examples:
idiotproof gapper formation universe
gapper from-transcript
Read a transcript and propose re-validated gapper candidate cards; nothing is queued until you `gapper arm` one.
Usage: idiotproof gapper from-transcript <transcript>
Risk: read
Parameters:
<transcript> A transcript file path, the transcript text itself, or `-` to read it from stdin. (required)
Examples:
idiotproof gapper from-transcript notes.txt
idiotproof gapper from-transcript -
Pipe a transcript in: `type video.txt | idiotproof gapper from-transcript -`.
gapper list
Your queued gappers with live state: armed, mode, position, condition progress and last exit.
Usage: idiotproof gapper list [--active]
Risk: read
Parameters:
-a, --active Only armed gappers. (default: false)
Examples:
idiotproof gapper list
idiotproof gapper list --active
gapper premarket-fade
Premarket blow-off/fade detector: `run` scans the movers now (detection only), `status` lists today's fade alerts.
Usage: idiotproof gapper premarket-fade [<action>] [--top <int>]
Risk: read
Parameters:
<action> status (default): today's fade alerts; run: scan the movers for the pattern now. (default: status)
--top <int> Movers to screen when running (default 50, max 50). (default: 50)
Examples:
idiotproof gapper premarket-fade
idiotproof gapper premarket-fade run
gapper profile show
Every dial of one gapper profile, plus the strategy it generates for a sample ticker.
Usage: idiotproof gapper profile show <name>
Risk: read
Parameters:
<name> Profile id (classic-gapper) or name. (required)
Examples:
idiotproof gapper profile show classic-gapper
idiotproof gapper profile show penny-runner
gapper profiles
List the gapper profile catalog: the templates every gapper starts from.
Usage: idiotproof gapper profiles
Risk: read
Examples:
idiotproof gapper profiles
gapper tune
Dial a gapper profile in for one ticker and show the strategy GapperScriptFactory generates; --save stores it inactive.
Usage: idiotproof gapper tune <symbol> [--save] [--mode <sandbox|paper|live>] [--profile <string>] [--gap <number>] [--max-gap <number>] [--volume <number>] [--min-price <number>] [--max-price <number>] [--entry-start <string>] [--entry-end <string>] [--stop <number>] [--trail <number>] [--giveback <number>] [--arm-exit <string>] [--sell-by <string>] [--notional <decimal>]
Risk: write
Parameters:
<symbol> The ticker to build the gapper for. (required)
-s, --save Save it as an inactive gapper strategy (arm it later with `gapper arm`). (default: false)
-m, --mode <sandbox|paper|live> Broker mode for a saved gapper: paper (default) or sandbox. (default: paper)
-p, --profile <string> Gapper profile id or name to start from (default classic-gapper).
--gap <number> Minimum gap over the previous close, percent.
--max-gap <number> Gap ceiling in percent (0 = no ceiling).
--volume <number> Premarket volume must be at least this multiple of average volume.
--min-price <number> Lowest price that qualifies.
--max-price <number> Highest price that qualifies.
--entry-start <string> Entry window start, ET (HH:mm).
--entry-end <string> Entry window end, ET (HH:mm).
--stop <number> Hard stop below entry, percent.
--trail <number> Trailing stop off the high, percent (0 = none).
--giveback <number> Sell once price gives back this percent of the entry-to-peak run.
--arm-exit <string> ET time the giveback exit arms (HH:mm).
--sell-by <string> Hard flatten time, ET (HH:mm), before the 9:30 bell.
--notional <decimal> Position size in dollars.
Examples:
idiotproof gapper tune NVDA --profile classic-gapper
idiotproof gapper tune ABCD --profile penny-runner --gap 12 --stop 6 --giveback 18 --sell-by 09:25 --save
hub
hub install-service
Install the Hub as a Windows service that runs as you (Monitor off unless --monitor).
Runs sc.exe create/description/failure and sets the service's environment in the registry. Needs an elevated Hub; otherwise it prints the commands and points at tools\install-hub-service.ps1, which elevates itself. Grant the account 'Log on as a service' (the script does). Stop any interactive Hub first: both use port 5910.
Usage: idiotproof hub install-service [--exe <string>] [--account <string>] [--password <string>] [--monitor] [--start <string>] [--dry-run]
Risk: destructive
Parameters:
--exe <string> The Hub exe the service runs (default: the published C:\Apps\IdiotProof\Hub\idiotproof-hub.exe).
--account <string> Windows account to run as (default: you, as DOMAIN\user or .\user). Must be the user who owns the LocalDB database and keys.
--password <string> That account's Windows password (required unless --dry-run; never logged).
--monitor Host the trading Monitor in the service (it places real orders unattended). Off by default. (default: false)
--start <string> Start type: delayed-auto (default), auto or demand. (default: delayed-auto)
--dry-run Show the commands without running them. (default: false)
Examples:
idiotproof hub install-service --dry-run
idiotproof hub install-service --password "..." --monitor
hub ping
Check the Hub is up, show its clock in ET, and whether its DB and Monitor are healthy.
Usage: idiotproof hub ping
Risk: read
Examples:
idiotproof hub ping
hub uninstall-service
Stop and remove the Hub's Windows service.
sc.exe stop (graceful: the Hub drains operations, stops the Monitor and releases the leader lease), then sc.exe delete. Needs an elevated Hub; otherwise prints the commands. Run it from an interactive Hub or the script, not the service's own Hub.
Usage: idiotproof hub uninstall-service [--dry-run]
Risk: destructive
Parameters:
--dry-run Show the commands without running them. (default: false)
Examples:
idiotproof hub uninstall-service --dry-run
idiotproof hub uninstall-service
indicators
indicators compute
Compute one indicator (rsi, ema, atr, macd, vwap, adx, bollinger, ...) on a symbol's recent bars.
Usage: idiotproof indicators compute <symbol> <indicator> [--period <int>] [--timeframe <string>] [--bars <int>] [--last <int>]
Risk: read
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<indicator> rsi, ema, sma, atr, macd, vwap, adx, bollinger, stochastic, cci, williams-r, momentum, roc or obv. (required)
--period <int> Look-back period (default per indicator: rsi 14, ema 9, sma 20, atr 14, adx 14, bollinger 20, ...). Ignored by macd, vwap and obv.
--timeframe <string> Bar size: 1Min (default), 5Min, 15Min, 1Hour or 1Day. (default: 1Min)
--bars <int> Bars of history to compute over, newest last (default 240, the Monitor's window). (default: 240)
--last <int> How many of the newest values to print (default 10). (default: 10)
Examples:
idiotproof indicators compute NVDA rsi
idiotproof indicators compute INTC ema --period 21 --timeframe 5Min
idiotproof indicators compute AAPL macd --timeframe 1Day --bars 300
indicators snapshot
The full indicator snapshot a strategy condition sees for a symbol: VWAP, EMAs, RSI, MACD, ADX, gap, window high/low, pivots, patterns.
Usage: idiotproof indicators snapshot <symbol> [--timeframe <string>] [--bars <int>] [--ema <string>]
Risk: read
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
--timeframe <string> Bar size: 1Min (default, what the Monitor evaluates on), 5Min, 15Min, 1Hour or 1Day. (default: 1Min)
--bars <int> Window of bars the snapshot is built from, newest last (default 240, the Monitor's 4-hour window). (default: 240)
--ema <string> Extra EMA periods to include beside 9/21/31/50/200, comma separated (e.g. 7,65).
Examples:
idiotproof indicators snapshot NVDA
idiotproof indicators snapshot INTC --ema 7,65 --timeframe 5Min
keys
keys migrate-to-vault
Move Alpaca keys, OAuth tokens and Claude keys out of SQL into MindAttic.Vault (dry run unless --apply).
Per user and secret: copy into Vault when Vault lacks it, verify equality when both have it, then clear the SQL column. Conflicts and undecryptable values are reported and left untouched. Idempotent.
Usage: idiotproof keys migrate-to-vault [--apply]
Risk: destructive
Parameters:
--apply Actually copy into Vault and clear the SQL columns (without it: a dry run that changes nothing). (default: false)
Examples:
idiotproof keys migrate-to-vault
Dry run: what would move, nothing changes.
idiotproof keys migrate-to-vault --apply
keys opt-in
Route your orders to your own Alpaca account (alpaca) or back to the Sandbox (off).
Usage: idiotproof keys opt-in <broker>
Risk: write
Parameters:
<broker> alpaca (route your orders to your own Alpaca account) or off (back to the Sandbox). (required)
Examples:
idiotproof keys opt-in alpaca
idiotproof keys opt-in off
keys probe
Round-trip your stored Alpaca keys with a read-only account call (paper, live or both).
Usage: idiotproof keys probe [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> all (default), paper or live. (default: all)
Examples:
idiotproof keys probe
idiotproof keys probe --mode live
keys set
Store an Alpaca paper/live key pair (checked, then probed) or your Claude key in MindAttic.Vault.
Usage: idiotproof keys set <target> [--key-id <string>] --secret <string> [--force]
Risk: write
Parameters:
<target> alpaca-paper, alpaca-live or claude. (required)
--key-id <string> The Alpaca API key id (PK... for paper, AK... for live). Not used for claude.
--secret <string> The Alpaca secret key, or for claude the Claude API key. (required)
--force Store even when the key id prefix looks wrong or Alpaca rejects the pair. (default: false)
Examples:
idiotproof keys set alpaca-paper --key-id PK...your-paper-key-id --secret <secret>
idiotproof keys set alpaca-live --key-id AK...your-live-key-id --secret <secret>
idiotproof keys set claude --secret <sk-ant-key>
keys status
Which Alpaca/Claude keys resolve for you and from which Vault entry (never shows a secret).
Usage: idiotproof keys status
Risk: read
Examples:
idiotproof keys status
ledger
ledger list
Every command the Hub ran for you (CLI, MCP, web): operation, arguments, outcome, duration (ET).
Usage: idiotproof ledger list [--op <string>] [--since <date>] [--caller <string>] [--status <string>] [--limit <int>]
Risk: read
Parameters:
--op <string> Only this operation ("strategy create" or strategy_create), or a noun for all of its verbs (strategy).
--since <date> First ET date to include, yyyy-MM-dd (default: everything).
--caller <string> Only calls from this front door: cli, mcp, blazor or test.
--status <string> Only this outcome: ok, failed, usage-error, blocked or confirmation-required.
--limit <int> Most rows, newest first, 1-1000 (default 50). (default: 50)
Examples:
idiotproof ledger list
idiotproof ledger list --op "order place" --since 2026-10-30
idiotproof ledger list --op strategy --caller mcp --status blocked
llm
llm keys
Which Claude key the LLM panel resolves for you (yours, the host's, or none) and the voting toggles; never shows a key.
Usage: idiotproof llm keys
Risk: read
Examples:
idiotproof llm keys
llm panel
The LLM voter panel: voters, trading lenses, which have keys, the consensus threshold and whether the gate is on.
Usage: idiotproof llm panel
Risk: read
Examples:
idiotproof llm panel
llm threshold
Show or set the LLM panel's consensus threshold (0.5-1): the share of votes that must Approve.
Usage: idiotproof llm threshold [<value>]
Risk: write
Parameters:
<value> Share of counted votes that must Approve, 0..1 (e.g. 0.66) or a percent (66); omit to show the current one.
Examples:
idiotproof llm threshold
idiotproof llm threshold 0.75
llm vote
Dry-run the LLM voter panel on a strategy's current entry: every vote and the consensus. Never places an order.
Usage: idiotproof llm vote <strategy> [--entry <decimal>]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol. (required)
--entry <decimal> Entry price to put to the panel (default: the last 1-minute close).
Examples:
idiotproof llm vote NVDA
idiotproof llm vote 0193a2b4 --entry 101.25
llm voting disable
Turn off your own LLM voter gate (a host-wide setting still applies).
Usage: idiotproof llm voting disable
Risk: write
Examples:
idiotproof llm voting disable
llm voting enable
Turn on the LLM voter gate for your automated entries (needs a Claude key to take effect).
Usage: idiotproof llm voting enable
Risk: write
Examples:
idiotproof llm voting enable
market
market auctions
Opening and closing auction prices and sizes per day for one or more stocks (SIP, times in ET).
Usage: idiotproof market auctions <symbols>... [--from <date>] [--to <date>]
Risk: read
Parameters:
<symbols> One or more tickers, e.g. AAPL MSFT. (required)
--from <date> First ET date to include (default: a week ago).
--to <date> Last ET date to include (default: today).
Examples:
idiotproof market auctions AAPL
idiotproof market auctions SPY QQQ --from 2026-10-26 --to 2026-10-30
market bars
Historical OHLCV bars for a stock at any timeframe, oldest first (times in ET).
Usage: idiotproof market bars <symbol> [--tf <string>] [--from <date>] [--to <date>] [--limit <int>] [--adjustment <string>]
Risk: read
Parameters:
<symbol> Ticker, e.g. AAPL. (required)
--tf <string> Bar size: 1Min, 5Min, 15Min, 1Hour, 1Day (default), 1Week, 1Month; short forms 5m, 1h, 1d, 1w, 1mo work too. (default: 1Day)
--from <date> First ET date to include (default: enough history for --limit bars).
--to <date> Last ET date to include (default: now).
--limit <int> Most bars to show (default 30, max 10000). Without --from these are the most recent. (default: 30)
--adjustment <string> Corporate-action adjustment: raw, split (default), dividend or all. (default: split)
Examples:
idiotproof market bars AAPL
idiotproof market bars NVDA --tf 5Min --limit 50
idiotproof market bars MSFT --tf 1Day --from 2026-09-01 --to 2026-09-30
market bond-prices
Latest Alpaca fixed income prices and yields for the given ISINs.
Usage: idiotproof market bond-prices <isins>...
Risk: read
Parameters:
<isins> One or more bond ISINs (space or comma separated). (required)
Examples:
idiotproof market bond-prices US912797KA41 US91282CJL54
market candlesticks
Candlestick patterns (engulfing, hammer, shooting star, doji) on a symbol's recent bars.
Usage: idiotproof market candlesticks <symbol> [--timeframe <string>] [--bars <int>] [--all]
Risk: read
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
--timeframe <string> Bar size: 1Day (default), 1Hour, 15Min, 5Min or 1Min (what the Monitor's pattern verbs see). (default: 1Day)
--bars <int> How many recent bars to scan, newest last (default 30). (default: 30)
--all List every bar, not only the ones with a pattern. (default: false)
Examples:
idiotproof market candlesticks NVDA
idiotproof market candlesticks INTC --timeframe 5Min --bars 78 --all
market chart
ASCII candle chart of a symbol across premarket, regular and after-hours sessions (ET); crypto pairs as 24h days.
Usage: idiotproof market chart <symbol> [--days <int>] [--bucket <int>] [--width <int>] [--height <int>] [--volume] [--ascii]
Risk: read
Parameters:
<symbol> Ticker to chart, e.g. INTC, or a crypto pair such as BTC/USD (charted as 24h days). (required)
--days <int> Trading days to show, oldest first, each as premarket + regular + after-hours (default 2: the prior day and today). (default: 2)
--bucket <int> Minutes per time slot: half a character in Braille, one in --ascii (default: the smallest that fits the width).
--width <int> Chart width in characters (default: the terminal's, else 118).
--height <int> Price pane rows (default 20). (default: 20)
--volume Show the volume pane (default on; --no-volume hides it). (default: true)
--ascii Pure-ASCII candles (one per character) instead of the high-resolution Braille dots. (default: false)
Examples:
idiotproof market chart INTC
idiotproof market chart NVDA --days 3 --bucket 30
idiotproof market chart BTC/USD --days 3
Crypto pair: one 24h session per ET day.
market conditions
What each trade or quote condition code means (the codes in market trades/quotes).
Usage: idiotproof market conditions <tick-type> [--tape <a|b|c>]
Risk: read
Parameters:
<tick-type> trade or quote. (required)
--tape <a|b|c> SIP tape whose codes to list: a (default), b or c. (default: a)
Examples:
idiotproof market conditions trade
idiotproof market conditions quote --tape c
market exchanges
Exchange codes used in trades and quotes and the venue each one names.
Usage: idiotproof market exchanges
Risk: read
Examples:
idiotproof market exchanges
market feed status
The Hub's market data feed: Alpaca SIP/IEX or Mock, whether it can switch, and active strategies per mode.
Usage: idiotproof market feed status
Risk: read
Examples:
idiotproof market feed status
market feed switch
Switch the Hub's market data to sip, iex or mock (mock refused while Paper/Live strategies are active).
Usage: idiotproof market feed switch <feed>
Risk: write
Parameters:
<feed> sip (Alpaca consolidated, Algo Trader Plus), iex (Alpaca free tier) or mock (synthetic prices). (required)
Examples:
idiotproof market feed switch iex
idiotproof market feed switch mock
Only while every active strategy is Sandbox.
market fx
Latest forex rates (bid/mid/ask) or historical rate bars for currency pairs (times in ET).
Usage: idiotproof market fx <pairs>... [--tf <string>] [--from <date>] [--to <date>] [--limit <int>]
Risk: read
Parameters:
<pairs> Currency pairs, e.g. USDJPY EURUSD (USD/JPY works too). (required)
--tf <string> Historical rate bar size (1Min, 5Min, 1Hour, 1Day...). Giving --tf, --from or --to switches from latest to history.
--from <date> First ET date of history (default: enough for --limit bars).
--to <date> Last ET date of history (default: now).
--limit <int> Most history bars per pair (default 30, max 1000). (default: 30)
Examples:
idiotproof market fx USDJPY EURUSD
idiotproof market fx USDJPY --tf 1Day --limit 10
idiotproof market fx EURUSD --tf 1Hour --from 2026-10-29 --to 2026-10-30
market latest
Latest minute bar, trade or quote for one or more stocks (times in ET).
Usage: idiotproof market latest <kind> <symbols>...
Risk: read
Parameters:
<kind> bar (latest minute bar), trade or quote. (required)
<symbols> One or more tickers, e.g. AAPL MSFT. (required)
Examples:
idiotproof market latest bar AAPL MSFT
idiotproof market latest trade NVDA
idiotproof market latest quote SPY QQQ
market logo
Download a company's logo and save it under %LOCALAPPDATA%\MindAttic\IdiotProof\Logos; reports the path and size.
Usage: idiotproof market logo <symbol> [--placeholder] [--dir <string>]
Risk: write
Parameters:
<symbol> Ticker whose logo to fetch, e.g. AAPL. (required)
--placeholder When Alpaca has no logo, save its generated placeholder instead of failing. (default: false)
--dir <string> Folder to save into (default %LOCALAPPDATA%\MindAttic\IdiotProof\Logos).
Examples:
idiotproof market logo AAPL
idiotproof market logo TSLA --placeholder
market meta
All market-data reference codes at once: exchanges plus trade and quote conditions.
Usage: idiotproof market meta [--tape <a|b|c>]
Risk: read
Parameters:
--tape <a|b|c> SIP tape whose condition codes to list: a (default), b or c. (default: a)
Examples:
idiotproof market meta
idiotproof market meta --tape c
market most-actives
Today's most active stocks by share volume or trade count (Alpaca screener).
Usage: idiotproof market most-actives [--by <volume|trades>] [--top <int>]
Risk: read
Parameters:
--by <volume|trades> Rank by share volume (default) or by trade count. (default: volume)
--top <int> How many stocks (default 10, max 100). (default: 10)
Examples:
idiotproof market most-actives
idiotproof market most-actives --by trades --top 25
market movers
Today's top stock gainers and losers by percent change (Alpaca screener).
Usage: idiotproof market movers [--top <int>]
Risk: read
Parameters:
--top <int> How many gainers and how many losers (default 10, max 50). (default: 10)
Examples:
idiotproof market movers
idiotproof market movers --top 20
market news
Latest news headlines for one or more stocks, or the whole market (times in ET).
Usage: idiotproof market news [<symbols>...] [--limit <int>] [--from <date>] [--to <date>] [--summary]
Risk: read
Parameters:
<symbols> Tickers to filter on, e.g. AAPL TSLA (none = all market news).
--limit <int> Most articles to show, newest first (default 10, max 200). (default: 10)
--from <date> Earliest ET date to include (default: no bound).
--to <date> Latest ET date to include (default: now).
--summary Print each article's summary and link under its headline. (default: false)
Examples:
idiotproof market news AAPL
idiotproof market news TSLA NVDA --limit 25 --summary
idiotproof market news --from 2026-10-29
market prev-close
Previous session's close (and full daily bar) for one or more stocks, with the move since.
Usage: idiotproof market prev-close <symbols>...
Risk: read
Parameters:
<symbols> One or more tickers, e.g. AAPL MSFT. (required)
Examples:
idiotproof market prev-close AAPL
idiotproof market prev-close SPY QQQ IWM
market quote
Latest trade and bid/ask for one or more stocks (Alpaca market data, times in ET).
Usage: idiotproof market quote <symbols>...
Risk: read
Parameters:
<symbols> One or more tickers, e.g. AAPL MSFT (commas work too). (required)
Examples:
idiotproof market quote AAPL
idiotproof market quote AAPL MSFT NVDA
market quotes
Historical bid/ask quotes for a stock: sizes, exchanges, spread (times in ET).
Usage: idiotproof market quotes <symbol> [--from <date>] [--to <date>] [--limit <int>]
Risk: read
Parameters:
<symbol> Ticker, e.g. AAPL. (required)
--from <date> First ET date to include (default: the most recent ticks).
--to <date> Last ET date to include (default: now).
--limit <int> Most ticks to show (default 20, max 10000). Without --from these are the most recent. (default: 20)
Examples:
idiotproof market quotes AAPL
idiotproof market quotes SPY --from 2026-10-29 --limit 200
market scan-universe
Screen the tracked ticker universe on live price, volume and % change (Alpaca snapshots); arms nothing.
Usage: idiotproof market scan-universe [--min-price <decimal>] [--max-price <decimal>] [--min-volume <decimal>] [--min-change <decimal>] [--max-change <decimal>] [--exchange <string>] [--sort <volume|change|price|dollar>] [--limit <int>] [--max-symbols <int>]
Risk: read
Parameters:
--min-price <decimal> Lowest last price to keep (default 1). (default: 1)
--max-price <decimal> Highest last price to keep (default: no cap).
--min-volume <decimal> Least shares traded today to keep (default 100000). (default: 100000)
--min-change <decimal> Least percent change from the previous close to keep, e.g. 5 or -10 (default: any).
--max-change <decimal> Most percent change from the previous close to keep, e.g. -5 for losers only (default: any).
--exchange <string> Only tickers listed on this exchange (NASDAQ, NYSE, AMEX, ARCA, ...).
--sort <volume|change|price|dollar> volume (default), change, price or dollar (price x volume); always largest first. (default: volume)
--limit <int> Rows to show (default 25). (default: 25)
--max-symbols <int> Most tracked tickers to quote, after the stored-price prefilter (default 3000). (default: 3000)
Examples:
idiotproof market scan-universe
idiotproof market scan-universe --min-price 2 --max-price 20 --min-change 10 --sort change
Small-cap gappers.
idiotproof market scan-universe --exchange NASDAQ --min-volume 5000000 --limit 10
market snapshot
One-line snapshot per stock: last, change vs prior close, bid/ask, today's open/high/low/volume.
Usage: idiotproof market snapshot <symbols>...
Risk: read
Parameters:
<symbols> One or more tickers, e.g. AAPL MSFT. (required)
Examples:
idiotproof market snapshot AAPL
idiotproof market snapshot SPY QQQ NVDA TSLA
market stream status
Websocket health: the Monitor's market data stream, the trade-updates listeners and open market watches (state, connected since, last message, reconnects, errors).
Usage: idiotproof market stream status
Risk: read
Examples:
idiotproof market stream status
market trades
Historical trade prints for a stock: price, size, exchange, conditions (times in ET).
Usage: idiotproof market trades <symbol> [--from <date>] [--to <date>] [--limit <int>]
Risk: read
Parameters:
<symbol> Ticker, e.g. AAPL. (required)
--from <date> First ET date to include (default: the most recent ticks).
--to <date> Last ET date to include (default: now).
--limit <int> Most ticks to show (default 20, max 10000). Without --from these are the most recent. (default: 20)
Examples:
idiotproof market trades AAPL
idiotproof market trades TSLA --from 2026-10-29 --to 2026-10-29 --limit 100
market watch
Live market tape over Alpaca's websockets: stock trades/quotes/bars/statuses/LULD, crypto, options and news, merged into one ET-stamped stream.
A terminal streams until Ctrl+C; MCP and --json get a bounded window (--seconds, default 15). Alpaca limits stock-feed connections per account: if the Monitor's stream holds the SIP connection, try --feed iex.
Usage: idiotproof market watch [<symbols>...] [--channels <string[]>] [--news] [--feed <string>] [--options-feed <string>] [--seconds <int>] [--max <int>]
Risk: read
Parameters:
<symbols> Stocks (AAPL), crypto pairs (BTC/USD) and option contracts (AAPL261120C00200000), mixed freely.
--channels <string[]> trades, quotes, bars, daily-bars, updated-bars, statuses, lulds (stocks only: statuses, lulds; options: trades, quotes). Default trades,quotes.
--news Also stream news headlines for these symbols (all news when no symbol is given). (default: false)
--feed <string> Stock feed: sip, iex or delayed_sip (default: the Hub's market data tier).
--options-feed <string> Options feed: opra or indicative (default opra). (default: opra)
--seconds <int> Stop after this many seconds (a terminal streams until Ctrl+C; MCP/--json default 15, at most 300).
--max <int> Stop after this many lines.
Examples:
idiotproof market watch AAPL MSFT
idiotproof market watch NVDA --channels trades,quotes,statuses,lulds
idiotproof market watch BTC/USD ETH/USD --channels trades,bars
idiotproof market watch AAPL261120C00200000 --channels quotes
idiotproof market watch --news
monitor
monitor heartbeat
The Monitor loop's last heartbeat: when it ticked, ok or fail, failures in a row.
Reads the SupervisedLoop heartbeat file (Logs\monitor.heartbeat), which the loop rewrites after every tick, hosted here or not. Exit 3 (blocked) when it is stale.
Usage: idiotproof monitor heartbeat
Risk: read
Examples:
idiotproof monitor heartbeat
monitor lease
Who holds the Monitor's SQL leader lease (only the holder evaluates and trades).
One Monitor per database trades: it holds sp_getapplock 'IdiotProof.Monitor.Leader'. Shows the holder's PID and machine when SQL Server reports them.
Usage: idiotproof monitor lease
Risk: read
Examples:
idiotproof monitor lease
monitor pause
Pause the Monitor: from its next tick it evaluates nothing - no entries and NO exits - until resumed.
Sets the SettingsKv flag monitor.paused, honored at the top of every tick (within 2 s). The loop, heartbeat and leader lease stay up. Open positions are not managed while paused - flatten them first if that matters.
Usage: idiotproof monitor pause [--reason <string>]
Risk: write
Parameters:
--reason <string> Why (kept with the flag and shown by `monitor status`).
Examples:
idiotproof monitor pause
idiotproof monitor pause --reason "news pending"
monitor resume
Resume a paused Monitor (needs a confirmation code when a Live strategy is active).
Clears the SettingsKv flag monitor.paused; the Monitor evaluates again from its next tick. When any active strategy routes Live the first call returns a code: resuming means real-money entries.
Usage: idiotproof monitor resume
Risk: money
Examples:
idiotproof monitor resume
idiotproof monitor resume --confirm K7Q2M9
monitor status
Is the Monitor trading? Hosted, lease, last tick, paused, window, active strategies.
Reads the Hub's in-process Monitor state, the SettingsKv pause flag, the SQL leader lease and the heartbeat file. Times are ET.
Usage: idiotproof monitor status
Risk: read
Examples:
idiotproof monitor status
idiotproof monitor status --json
monitor tail
Recent Monitor activity: gate verdicts (fire, veto, block, entry, exit, reject) and live condition progress; --follow streams new ones.
A snapshot of the last --minutes of the Monitor's audit trail (your strategies' events plus its start/stop/pause events), newest last, followed by where each of your active strategies stands. --follow keeps pushing new events and progress changes: live in a terminal until Ctrl+C, a bounded window (--seconds, default 15) for MCP and --json.
Usage: idiotproof monitor tail [--lines <int>] [--minutes <int>] [--progress] [--follow] [--seconds <int>]
Risk: read
Parameters:
-n, --lines <int> Most recent events to show (1-500). (default: 40)
--minutes <int> How far back to look for events (1-1440). (default: 60)
--progress Also show each active strategy's live condition progress. (default: true)
-f, --follow After the snapshot, keep pushing new events and progress changes (a terminal streams until Ctrl+C; MCP/--json get a bounded window). (default: false)
--seconds <int> With --follow: stop after this many seconds, 1-3600 (MCP/--json default 15, at most 300).
Examples:
idiotproof monitor tail
idiotproof monitor tail --follow
idiotproof monitor tail --lines 100 --minutes 390
idiotproof monitor tail --no-progress
monitor tick-once
Run one evaluation pass over your active strategies and show each verdict - never places, cancels or records an order.
Gate 1 only (entry conditions against fresh bars from the Hub's feed); the LLM panel, RiskGuardian and the broker are never called, and no position, progress row or live bar is written. Without --dry the pass is noted in the audit log.
Usage: idiotproof monitor tick-once [--dry] [--symbol <string>]
Risk: read
Parameters:
--dry Write nothing at all (by default the pass is recorded in the audit log as monitor-tick-once). (default: false)
--symbol <string> Only strategies on this symbol.
Examples:
idiotproof monitor tick-once --dry
idiotproof monitor tick-once --symbol NVDA
options
options bars
Historical OHLCV bars for one option contract.
Usage: idiotproof options bars <occ> [--timeframe <string>] [--start <date>] [--end <date>] [--limit <int>]
Risk: read
Parameters:
<occ> OCC option symbol, e.g. AAPL261120C00250000. (required)
--timeframe <string> Bar size: [1-59]Min, [1-23]Hour, 1Day, 1Week or [1,2,3,4,6,12]Month (default 1Day). (default: 1Day)
--start <date> First ET date (yyyy-MM-dd); default 30 days back for daily bars, 5 for intraday.
--end <date> Last ET date (yyyy-MM-dd); default today.
--limit <int> Most bars to return, oldest first (default 200). (default: 200)
Examples:
idiotproof options bars AAPL261120C00250000
idiotproof options bars AAPL261120C00250000 --timeframe 15Min --start 2026-10-28
options buy
Buy option contracts to open (level 2+). Sandbox by default; live needs a confirmation code.
Usage: idiotproof options buy <occ> <contracts> [--limit <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<occ> OCC contract symbol, e.g. AAPL261219C00150000. (required)
<contracts> Whole contracts (each is usually 100 shares). (required)
-l, --limit <decimal> Limit price per share (premium). Without it the order is a market order.
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof options buy AAPL261219C00150000 2 --limit 3.20 --mode paper
Paper limit buy of 2 calls.
idiotproof options buy SPY261120P00560000 1 --mode live
Live market buy; prints a confirmation code first.
options chain
An underlying's option chain for one expiration: calls and puts by strike with bid/ask, IV, delta and open interest.
Usage: idiotproof options chain <symbol> [--expiry <date>] [--horizon <int>] [--strikes <int>] [--feed <indicative|opra>]
Risk: read
Parameters:
<symbol> Underlying ticker, e.g. AAPL. (required)
--expiry <date> Expiration date (yyyy-MM-dd) to show; default the nearest one.
--horizon <int> Days ahead to list expirations for (default 1098, about 3 years, so LEAPS show; Alpaca's own default is 1 week). (default: 1098)
--strikes <int> Strikes to show on each side of the spot price (default 10; 0 shows every strike). (default: 10)
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options chain AAPL
idiotproof options chain SPY --expiry 2026-12-18 --strikes 5
options close
Close a whole options position (sells a long, buys back a short) through the gateway.
Usage: idiotproof options close <occ> [--limit <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<occ> OCC contract symbol of the position to close. (required)
-l, --limit <decimal> Limit price per share. Without it the close is a market order.
-m, --mode <sandbox|paper|live> Which account holds it: sandbox (default), paper or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof options close AAPL261219C00150000 --mode paper
idiotproof options close SPY261120P00560000 --limit 2.40 --mode live
Live close; prints a confirmation code first.
options conditions
Options trade or quote condition codes and what they mean.
Usage: idiotproof options conditions [--tick <trade|quote>]
Risk: read
Parameters:
--tick <trade|quote> trade (default) or quote condition codes. (default: trade)
Examples:
idiotproof options conditions
idiotproof options conditions --tick quote
options contract
Full catalog details of one option contract by OCC symbol or Alpaca id.
Usage: idiotproof options contract <contract>
Risk: read
Parameters:
<contract> OCC symbol (e.g. AAPL261120C00250000) or Alpaca contract id. (required)
Examples:
idiotproof options contract AAPL261120C00250000
options contracts
Search listed option contracts for an underlying by expiry, type, strike range and status.
Usage: idiotproof options contracts <underlying> [--expiry <date>] [--type <call|put>] [--strike-min <decimal>] [--strike-max <decimal>] [--status <active|inactive>] [--horizon <int>] [--limit <int>]
Risk: read
Parameters:
<underlying> Underlying ticker(s), comma separated, e.g. AAPL or AAPL,MSFT. (required)
--expiry <date> Only this expiration date (yyyy-MM-dd).
--type <call|put> Only calls or only puts.
--strike-min <decimal> Lowest strike to include.
--strike-max <decimal> Highest strike to include.
--status <active|inactive> active (default) or inactive. (default: active)
--horizon <int> Without --expiry: days ahead to include (default 1098; Alpaca's own default is only 1 week). (default: 1098)
--limit <int> Most contracts to return (default 200, max 10000). (default: 200)
Examples:
idiotproof options contracts AAPL --expiry 2026-11-20 --type call
idiotproof options contracts SPY --strike-min 600 --strike-max 650 --limit 50
options do-not-exercise
Opt a held contract out of automatic exercise at expiry (paper or live; live needs a code).
Usage: idiotproof options do-not-exercise <occ> [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<occ> OCC contract symbol (or Alpaca contract id) of a long position you hold. (required)
-m, --mode <sandbox|paper|live> Which Alpaca account: paper (default) or live (needs confirmation). Sandbox can't exercise. (default: paper)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof options do-not-exercise AAPL261219C00150000 --mode paper
options exchanges
Options exchange codes and their names, as they appear in quotes and trades.
Usage: idiotproof options exchanges
Risk: read
Examples:
idiotproof options exchanges
options exercise
Exercise a long option you hold (Alpaca paper or live; live needs a confirmation code).
Usage: idiotproof options exercise <occ> [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<occ> OCC contract symbol (or Alpaca contract id) of a long position you hold. (required)
-m, --mode <sandbox|paper|live> Which Alpaca account: paper (default) or live (needs confirmation). Sandbox can't exercise. (default: paper)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof options exercise AAPL261219C00150000
Paper: exercise now.
idiotproof options exercise AAPL261219C00150000 --mode live
Prints a confirmation code first.
options glossary
Plain-English options jargon (hype, breakeven, IV, sell to close, ...): every term, or one in full.
Usage: idiotproof options glossary [<term>]
Risk: read
Parameters:
<term> A glossary key or title word (hype, breakeven, iv, sell-to-close, ...); omit to list every term.
Examples:
idiotproof options glossary
idiotproof options glossary hype
The full explanation of one term.
options greeks
Delta, gamma, theta, vega and rho for one option contract; badged Model when computed locally.
Usage: idiotproof options greeks <occ> [--spot <decimal>] [--rate <decimal>] [--feed <indicative|opra>]
Risk: read
Parameters:
<occ> OCC option symbol: ROOT + YYMMDD + C|P + strike x 1000 (8 digits), e.g. AAPL261120C00250000. (required)
--spot <decimal> Underlying price to use instead of Alpaca's last trade.
--rate <decimal> Risk-free rate in percent, e.g. 4.25 (default: the Options page setting, else 4).
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options greeks AAPL261120C00250000
idiotproof options greeks SPY261218P00600000 --spot 640 --rate 4.25
options iv
Implied volatility for one option contract: Alpaca's, plus IV solved locally at bid, mid, ask and last.
Usage: idiotproof options iv <occ> [--spot <decimal>] [--rate <decimal>] [--feed <indicative|opra>]
Risk: read
Parameters:
<occ> OCC option symbol: ROOT + YYMMDD + C|P + strike x 1000 (8 digits), e.g. AAPL261120C00250000. (required)
--spot <decimal> Underlying price to use instead of Alpaca's last trade.
--rate <decimal> Risk-free rate in percent, e.g. 4.25 (default: the Options page setting, else 4).
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options iv AAPL261120C00250000
idiotproof options iv AAPL261120C00250000 --spot 255
options latest
Latest NBBO quote and latest trade for one option contract, with exchanges and sizes.
Usage: idiotproof options latest <occ> [--feed <indicative|opra>]
Risk: read
Parameters:
<occ> OCC option symbol: ROOT + YYMMDD + C|P + strike x 1000 (8 digits), e.g. AAPL261120C00250000. (required)
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options latest AAPL261120C00250000
options level
Options trading level (effective and approved) and options buying power for your Alpaca accounts.
Usage: idiotproof options level [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof options level
idiotproof options level --mode paper
options positions
Open option contracts in your Alpaca accounts: strike, expiry, DTE, cost, value and unrealized P&L.
Usage: idiotproof options positions [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof options positions
idiotproof options positions --mode live
options quote
Latest bid/ask, mid, spread and last trade for one option contract (OCC symbol).
Usage: idiotproof options quote <occ> [--feed <indicative|opra>]
Risk: read
Parameters:
<occ> OCC option symbol: ROOT + YYMMDD + C|P + strike x 1000 (8 digits), e.g. AAPL261120C00250000. (required)
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options quote AAPL261120C00250000
idiotproof options quote SPY261218P00600000 --feed opra
options sell
Sell option contracts you hold (sell to close), or write them with --open (level 1+).
Usage: idiotproof options sell <occ> <contracts> [--limit <decimal>] [--mode <sandbox|paper|live>] [--open] [--note <string>]
Risk: money
Parameters:
<occ> OCC contract symbol, e.g. AAPL261219C00150000. (required)
<contracts> Whole contracts (each is usually 100 shares). (required)
-l, --limit <decimal> Limit price per share (premium). Without it the order is a market order.
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--open Write (sell to open, level 1+: covered call / cash-secured put) instead of selling contracts you hold. (default: false)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof options sell AAPL261219C00150000 2 --limit 4.10 --mode paper
Take profit on 2 calls you hold.
idiotproof options sell AAPL261219C00170000 1 --open --limit 1.05 --mode paper
Write a covered call.
options signals
Sell-the-hype nudges on your open long options: hype near its session high plus bullish news (never places anything).
Usage: idiotproof options signals [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof options signals
idiotproof options signals --mode paper
options snapshot
Alpaca's full snapshot of one option contract: latest quote and trade, daily bars, IV and Greeks.
Usage: idiotproof options snapshot <occ> [--feed <indicative|opra>]
Risk: read
Parameters:
<occ> OCC option symbol: ROOT + YYMMDD + C|P + strike x 1000 (8 digits), e.g. AAPL261120C00250000. (required)
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options snapshot AAPL261120C00250000
options spread
Place a 2-4 leg options order (verticals, straddles, ratios...) as one Alpaca multi-leg order; level 3, max-loss preview, live needs a code.
Usage: idiotproof options spread <legs>... [--qty <int>] [--limit <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<legs> 2 to 4 legs, each side:OCC[:ratio][:close], e.g. buy:AAPL261219C00150000 sell:AAPL261219C00160000. Legs open unless :close. (required)
-q, --qty <int> How many spreads (each leg trades ratio x qty contracts). Default 1. (default: 1)
-l, --limit <decimal> Net price per spread per share: positive = debit you pay, negative = credit you take. Without it the order is a market order.
-m, --mode <sandbox|paper|live> paper (default) or live (needs confirmation). The Sandbox simulator does not fill multi-leg orders. (default: paper)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof options spread buy:AAPL261219C00150000 sell:AAPL261219C00160000 --limit 3.10
Paper bull call spread for a $3.10 debit.
idiotproof options spread sell:SPY261120P00560000 buy:SPY261120P00550000 --limit -1.25 --qty 2 --mode live
Live put credit spread; prints a confirmation code first.
options trades
Historical trades (prints) for one option contract, newest first.
Usage: idiotproof options trades <occ> [--start <date>] [--end <date>] [--limit <int>]
Risk: read
Parameters:
<occ> OCC option symbol, e.g. AAPL261120C00250000. (required)
--start <date> First ET date (yyyy-MM-dd); default 7 days back.
--end <date> Last ET date (yyyy-MM-dd); default today.
--limit <int> Most trades to return, newest first (default 50). (default: 50)
Examples:
idiotproof options trades AAPL261120C00250000
idiotproof options trades AAPL261120C00250000 --start 2026-10-29 --limit 200
options value
Intrinsic and extrinsic value, breakeven, DTE and Black-Scholes price for one option contract.
Usage: idiotproof options value <occ> [--spot <decimal>] [--premium <decimal>] [--iv <decimal>] [--rate <decimal>] [--feed <indicative|opra>]
Risk: read
Parameters:
<occ> OCC option symbol: ROOT + YYMMDD + C|P + strike x 1000 (8 digits), e.g. AAPL261120C00250000. (required)
--spot <decimal> Underlying price to value at (what-if) instead of Alpaca's last trade.
--premium <decimal> Premium per share to value instead of the current mid, e.g. what you paid.
--iv <decimal> Implied volatility in percent for the Black-Scholes price, e.g. 35 (default Alpaca's IV).
--rate <decimal> Risk-free rate in percent, e.g. 4.25 (default: the Options page setting, else 4).
--feed <indicative|opra> Options data feed: indicative (default, free) or opra (paid). (default: indicative)
Examples:
idiotproof options value AAPL261120C00250000
idiotproof options value AAPL261120C00250000 --spot 260 --premium 4.10
orders
orders bracket
Entry plus a take-profit and a stop-loss that cancel each other (Alpaca bracket). The stop-loss is the Risk Guardian's stop.
Usage: idiotproof orders bracket <symbol> <side> <qty> [--limit <decimal>] [--take-profit <decimal>] [--stop-loss <decimal>] [--stop-loss-limit <decimal>] [--tif <string>] [--client-id <string>] [--stop <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<side> buy or sell (the parent's side; an OCO's side closes the position: sell exits a long). (required)
<qty> Whole shares. (required)
-l, --limit <decimal> Entry limit price (bracket/OTO). Without it the entry is a market order.
--take-profit <decimal> Take-profit child's limit price.
--stop-loss <decimal> Stop-loss child's stop price.
--stop-loss-limit <decimal> Make the stop-loss a stop-limit with this limit price.
--tif <string> Time in force: day (default) or gtc. (default: day)
--client-id <string> Your own id for the parent order (Alpaca client_order_id).
-s, --stop <decimal> Planned protective stop for the Risk Guardian when the order has no stop-loss child (OTO with only a take-profit).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders bracket NVDA buy 10 --limit 131 --take-profit 140 --stop-loss 127 --tif gtc --mode paper
idiotproof orders bracket AAPL buy 5 --take-profit 240 --stop-loss 220 --stop-loss-limit 219.5
Market entry; the stop-loss is a stop-limit.
orders cancel
Cancel one working order through the gateway (audited; live needs a confirmation code).
Usage: idiotproof orders cancel <id> [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<id> The order id (from `orders list`). (required)
-m, --mode <sandbox|paper|live> The account the order is in: paper (default), live (needs confirmation) or sandbox. (default: paper)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders cancel 61e69015-8549-4bfd-b9c3-01e75843f47d
idiotproof orders cancel 61e69015-8549-4bfd-b9c3-01e75843f47d --mode live
orders cancel-all
Cancel every open order in an account, or only one symbol's, through the gateway (live needs a confirmation code).
Usage: idiotproof orders cancel-all [--symbol <string>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
--symbol <string> Only this symbol's open orders. Without it, every open order in the account.
-m, --mode <sandbox|paper|live> The account: paper (default), live (needs confirmation) or sandbox. (default: paper)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders cancel-all --mode paper
idiotproof orders cancel-all --symbol NVDA --mode live
orders history
Closed Alpaca orders (filled, cancelled, expired, rejected) over the last N days, newest first, with fill prices and totals.
Usage: idiotproof orders history [--days <int>] [--symbol <string>] [--mode <all|paper|live>]
Risk: read
Parameters:
--days <int> How far back, in days (default 7, up to 365). (default: 7)
--symbol <string> Only orders for these symbols (comma-separated).
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof orders history
idiotproof orders history --days 30 --symbol NVDA --mode paper
orders list
Your Alpaca orders (open by default) in the paper and live accounts, newest first, with bracket/OCO legs.
Usage: idiotproof orders list [--status <open|closed|all>] [--symbol <string>] [--side <string>] [--limit <int>] [--mode <all|paper|live>]
Risk: read
Parameters:
--status <open|closed|all> open (default: working orders), closed (filled/cancelled/expired) or all. (default: open)
--symbol <string> Only orders for these symbols (comma-separated).
--side <string> Only buy or sell orders.
--limit <int> Most orders per account (default 50, Alpaca's max 500). (default: 50)
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof orders list
idiotproof orders list --status closed --symbol NVDA --mode paper
orders oco
Exit a held position with a take-profit limit and a stop-loss; whichever fills cancels the other (Alpaca OCO).
Usage: idiotproof orders oco <symbol> <side> <qty> [--limit <decimal>] [--take-profit <decimal>] [--stop-loss <decimal>] [--stop-loss-limit <decimal>] [--tif <string>] [--client-id <string>] [--stop <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<side> buy or sell (the parent's side; an OCO's side closes the position: sell exits a long). (required)
<qty> Whole shares. (required)
-l, --limit <decimal> Entry limit price (bracket/OTO). Without it the entry is a market order.
--take-profit <decimal> Take-profit child's limit price.
--stop-loss <decimal> Stop-loss child's stop price.
--stop-loss-limit <decimal> Make the stop-loss a stop-limit with this limit price.
--tif <string> Time in force: day (default) or gtc. (default: day)
--client-id <string> Your own id for the parent order (Alpaca client_order_id).
-s, --stop <decimal> Planned protective stop for the Risk Guardian when the order has no stop-loss child (OTO with only a take-profit).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders oco NVDA sell 10 --take-profit 140 --stop-loss 127 --tif gtc --mode paper
orders oto
Entry that, once filled, triggers ONE child: a take-profit or a stop-loss (Alpaca OTO).
Usage: idiotproof orders oto <symbol> <side> <qty> [--limit <decimal>] [--take-profit <decimal>] [--stop-loss <decimal>] [--stop-loss-limit <decimal>] [--tif <string>] [--client-id <string>] [--stop <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<side> buy or sell (the parent's side; an OCO's side closes the position: sell exits a long). (required)
<qty> Whole shares. (required)
-l, --limit <decimal> Entry limit price (bracket/OTO). Without it the entry is a market order.
--take-profit <decimal> Take-profit child's limit price.
--stop-loss <decimal> Stop-loss child's stop price.
--stop-loss-limit <decimal> Make the stop-loss a stop-limit with this limit price.
--tif <string> Time in force: day (default) or gtc. (default: day)
--client-id <string> Your own id for the parent order (Alpaca client_order_id).
-s, --stop <decimal> Planned protective stop for the Risk Guardian when the order has no stop-loss child (OTO with only a take-profit).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders oto NVDA buy 10 --limit 131 --stop-loss 127 --mode paper
idiotproof orders oto NVDA buy 10 --limit 131 --take-profit 140 --stop 127
Take-profit child; --stop is the planned stop for the Risk Guardian.
orders place
Place any single Alpaca order: market/limit/stop/stop-limit/trailing, every TIF, fractional or notional, client id, position intent. Through the gateway; live needs a code.
Usage: idiotproof orders place <symbol> <side> [<qty>] [--notional <decimal>] [--type <market|limit|stop|stop-limit|trailing-stop>] [--limit <decimal>] [--stop-price <decimal>] [--trail-percent <decimal>] [--trail-price <decimal>] [--tif <string>] [--ext] [--client-id <string>] [--intent <string>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<side> buy or sell. (required)
<qty> Shares; fractions allowed (0.25, DAY only). Leave out and pass --notional to size by dollars.
--notional <decimal> Size by dollar amount instead of shares (DAY only).
--type <market|limit|stop|stop-limit|trailing-stop> market, limit, stop, stop-limit or trailing-stop. Default: worked out from the prices given (none = market).
-l, --limit <decimal> Limit price (limit and stop-limit orders).
--stop-price <decimal> Stop trigger price (stop and stop-limit orders).
--trail-percent <decimal> Trailing stop distance in percent.
--trail-price <decimal> Trailing stop distance in dollars.
--tif <string> Time in force: day (default), gtc, opg (at the open), cls (at the close), ioc or fok. (default: day)
--ext Extended hours (premarket/after-hours); limit + day only. (default: false)
--client-id <string> Your own order id (Alpaca client_order_id, up to 128 characters).
--intent <string> Position intent: buy-to-open, buy-to-close, sell-to-open or sell-to-close.
-s, --stop <decimal> Planned protective stop for an entry (the Risk Guardian refuses entries without one).
-t, --target <decimal> Planned take-profit (for the reward:risk check).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders place NVDA buy 10 --limit 131.20 --stop 127.50 --tif gtc --mode paper
idiotproof orders place AAPL buy 0.5 --stop 220 --mode paper
Fractional market buy (DAY only).
idiotproof orders place TSLA sell 5 --type trailing-stop --trail-percent 3 --tif gtc --mode paper
Trailing stop exit.
idiotproof orders place NVDA sell 10 --type stop-limit --stop-price 120 --limit 119.5 --client-id exit-nvda-1 --mode live
orders replace
Change a working order's quantity, limit/stop/trail, TIF or client id (Alpaca PATCH; it gets a new id). Through the gateway; live needs a code.
Usage: idiotproof orders replace <id> [--qty <decimal>] [--limit <decimal>] [--stop-price <decimal>] [--trail <decimal>] [--tif <string>] [--client-id <string>] [--stop <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<id> The working order to change (from `orders list`). (required)
--qty <decimal> New share count (fractions allowed).
-l, --limit <decimal> New limit price.
--stop-price <decimal> New stop trigger price.
--trail <decimal> New trailing distance, in the order's own unit (percent or dollars).
--tif <string> New time in force: day, gtc, opg, cls, ioc or fok.
--client-id <string> New client order id for the replacement order.
--stop <decimal> Protective stop for the position, needed when --qty raises an entry's size (the Risk Guardian checks the whole new size).
-m, --mode <sandbox|paper|live> The account the order is in: paper (default) or live (needs confirmation). (default: paper)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof orders replace 61e69015-8549-4bfd-b9c3-01e75843f47d --limit 131.50
idiotproof orders replace 61e69015-8549-4bfd-b9c3-01e75843f47d --qty 5 --tif gtc --mode live
orders show
One Alpaca order in full, by id or client id: prices, fills, timestamps (ET) and its nested bracket/OCO/OTO/multi-leg legs.
Usage: idiotproof orders show [<id>] [--client-id <string>] [--mode <all|paper|live>]
Risk: read
Parameters:
<id> The Alpaca order id (from `orders list`). Leave out and pass --client-id to look up by your own id.
--client-id <string> Look the order up by its client order id instead.
--mode <all|paper|live> paper, live or all (default all: whichever account has it). (default: all)
Examples:
idiotproof orders show 61e69015-8549-4bfd-b9c3-01e75843f47d
idiotproof orders show --client-id exit-nvda-1 --mode paper
orders stream
Live order events from Alpaca (new, fill, partial fill, canceled, replaced, rejected, expired); the Hub records every fill in the trade diary and audit log.
Starts (or joins) the Hub's trade_updates listener for each account; once started it keeps recording fills until the Hub stops. A terminal streams events until Ctrl+C; MCP and --json get the events of a bounded window (--seconds, default 15) plus the last few seen.
Usage: idiotproof orders stream [--mode <all|paper|live>] [--fills-only] [--seconds <int>] [--max <int>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all: every account with keys). (default: all)
--fills-only Show only fills and partial fills. (default: false)
--seconds <int> Stop after this many seconds (a terminal streams until Ctrl+C; MCP/--json default 15, at most 300).
--max <int> Stop after this many events.
Examples:
idiotproof orders stream
idiotproof orders stream --mode paper --fills-only
positions
positions close
Close (or trim) one Alpaca position as a market exit through the TransactionGateway. Live needs a confirmation code.
Usage: idiotproof positions close <symbol> [--qty <decimal>] [--percentage <decimal>] [--mode <sandbox|paper|live>] [--preview]
Risk: money
Parameters:
<symbol> Ticker or OCC option symbol of the position to close, e.g. NVDA. (required)
--qty <decimal> Close only this many shares/contracts (default: all of it).
--percentage <decimal> Close this percent of the position (0-100) instead of all of it.
-m, --mode <sandbox|paper|live> Which Alpaca account: paper (default) or live (needs a confirmation code). (default: paper)
--preview Run every gate and show the exit without sending it. (default: false)
Examples:
idiotproof positions close HIHO --mode paper
idiotproof positions close NVDA --percentage 50 --mode paper
Sell half.
idiotproof positions close TSLA --qty 5 --mode live
Prints a confirmation code first.
positions close-all
Close every Alpaca position in one account with market exits through the TransactionGateway; optionally cancel open orders first. Live needs a confirmation code.
Usage: idiotproof positions close-all [--cancel-orders] [--mode <sandbox|paper|live>] [--preview]
Risk: money
Parameters:
--cancel-orders Cancel every open order first (frees shares held by working sells/stops). (default: false)
-m, --mode <sandbox|paper|live> Which Alpaca account: paper (default) or live (one confirmation code covers the whole set). (default: paper)
--preview Run every gate and list everything that would close, without sending anything. (default: false)
Examples:
idiotproof positions close-all --preview
List what would close in paper; send nothing.
idiotproof positions close-all --cancel-orders --mode paper
idiotproof positions close-all --cancel-orders --mode live
Prints the full list and one confirmation code.
positions list
Every open position in your Alpaca paper and live accounts: price, today's move, unrealized P&L.
Usage: idiotproof positions list [--mode <all|paper|live>]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof positions list
idiotproof positions list --mode paper
positions reconcile
Read-only report: what Alpaca actually holds vs what your strategies book (PositionQty), per account.
Usage: idiotproof positions reconcile [--mode <all|paper|live>] [--problems]
Risk: read
Parameters:
--mode <all|paper|live> paper, live or all (default all). (default: all)
--problems Only the rows where the broker and the strategies disagree. (default: false)
Examples:
idiotproof positions reconcile
idiotproof positions reconcile --mode paper --problems
positions show
One position in your Alpaca paper/live accounts, the IdiotProof strategy that owns it, and its latest trade-diary row.
Usage: idiotproof positions show <symbol> [--mode <all|paper|live>]
Risk: read
Parameters:
<symbol> Ticker, OCC option symbol or crypto pair, e.g. NVDA. (required)
--mode <all|paper|live> paper, live or all (default all). (default: all)
Examples:
idiotproof positions show NVDA
idiotproof positions show HIHO --mode paper
prefs
prefs get
Show your preferences: theme, account pill and Risk Guardian limits.
Usage: idiotproof prefs get [<field>]
Risk: read
Parameters:
<field> One preference (theme, account-type, risk.max-loss-per-trade, ...); omit for all.
Examples:
idiotproof prefs get
idiotproof prefs get risk.max-loss-per-day
prefs set
Change one of your preferences (risk limits keep the Settings page's sanity rules).
Usage: idiotproof prefs set <field> <value>
Risk: write
Parameters:
<field> theme, account-type or a risk.* limit (see `prefs get`). (required)
<value> The new value. (required)
Examples:
idiotproof prefs set risk.max-loss-per-day 250
idiotproof prefs set account-type paper
replay
replay all
Replay every strategy family on one ticker/day and rank them by realized P&L (best fit first).
Usage: idiotproof replay all <symbol> [<date>] [--pages] [--out <string>]
Risk: write
Parameters:
<symbol> The ticker to try every family on. (required)
<date> The ET trading day (yyyy-MM-dd); default the last completed trading day.
--pages Render each run's page and the archive indexes (HTML only). (default: true)
--out <string> Archive folder for the pages (default the mindattic.com replays folder).
Examples:
idiotproof replay all NVDA 2026-10-29
idiotproof replay all ABCD --no-pages
replay compare
Two replay runs side by side: strategy, day, fires, round-trips, win rate, hold time and P&L, with the difference.
Usage: idiotproof replay compare <run-a> <run-b>
Risk: read
Parameters:
<run-a> First run id or prefix. (required)
<run-b> Second run id or prefix. (required)
Examples:
idiotproof replay compare 0190a3f2 0190b7c1
replay families
The built-in strategy families `replay run --family` and `replay all` use, with what each trades.
Usage: idiotproof replay families
Risk: read
Examples:
idiotproof replay families
replay list
The replay archive, newest first: ticker, day, strategy, sim or live, fired and P&L.
Usage: idiotproof replay list [--symbol <string>] [--since <date>] [--kind <string>] [--fired] [--limit <int>]
Risk: read
Parameters:
--symbol <string> Only this ticker.
--since <date> Only runs of ET trading days on or after this date (yyyy-MM-dd).
--kind <string> Only sim (hypothetical replays) or live (the Monitor's real trades).
--fired Only runs that fired. (default: false)
--limit <int> At most this many runs, newest first (default 50). (default: 50)
Examples:
idiotproof replay list
idiotproof replay list --symbol NVDA --since 2026-10-01 --fired
replay live
Render the Monitor's real trades for a day (from the trade diary) on that day's bars as LIVE runs in the archive.
Usage: idiotproof replay live [<symbol>] [--date <date>] [--pages] [--out <string>]
Risk: write
Parameters:
<symbol> Only this ticker (default every ticker the Monitor traded that day).
-d, --date <date> The ET day whose real trades to render (default today ET).
--pages Render the run pages and archive indexes (HTML only; publishing stays manual). (default: true)
--out <string> Archive folder for the pages (default the mindattic.com replays folder).
Examples:
idiotproof replay live
idiotproof replay live NVDA --date 2026-10-29
replay regen
Regenerate the replay archive's HTML (every run page and index) from SQL; never uploads or deploys.
Usage: idiotproof replay regen [--out <string>]
Risk: write
Parameters:
--out <string> Archive folder to (re)write (default the mindattic.com replays folder).
Examples:
idiotproof replay regen
idiotproof replay regen --out C:\temp\replays
replay run
Replay a strategy, gapper profile or built-in family over one past day with the Monitor's own evaluator; saves the run and its page.
Usage: idiotproof replay run <symbol> [<date>] [--strategy <string>] [--profile <string>] [--family <string>] [--repeat] [--pages] [--out <string>]
Risk: write
Parameters:
<symbol> The ticker to replay. (required)
<date> The ET trading day (yyyy-MM-dd); default the last completed trading day.
-s, --strategy <string> Replay this saved strategy (id, id prefix, stamp id or symbol) instead of the symbol's own.
-p, --profile <string> Replay a gapper profile on the fly (e.g. classic-gapper, penny-runner).
-f, --family <string> Replay a built-in family (momentum, reversal, rsireversal, emabreak, rthdrive, shortfade, swingreversal).
-r, --repeat Re-arm after every exit to show each round-trip the day offered. (default: false)
--pages Render the run page and archive indexes (HTML only; publishing stays manual). (default: true)
--out <string> Archive folder for the pages (default the mindattic.com replays folder).
Examples:
idiotproof replay run NVDA 2026-10-29
idiotproof replay run ABCD 2026-10-29 --profile penny-runner
idiotproof replay run TSLA --family rthdrive --repeat --no-pages
replay show
One replay run: its round-trips with entry features and its per-bar features (OHLCV, VWAP, volume ratio, conditions passed).
Usage: idiotproof replay show <run> [--bars <string>]
Risk: read
Parameters:
<run> Run id or its first 6+ characters (from `replay list`). (required)
--bars <string> Which per-bar rows to print: marked (entries/exits, default), session (in-session bars) or all. (default: marked)
Examples:
idiotproof replay show 0190a3f2
idiotproof replay show 0190a3f2 --bars session
research
research analyze
Extract catalysts and portents from a ticker's news, a URL or pasted text via the LLM (--save to keep them).
Uses your Claude key (else the host's). Without --save nothing is written; with --save the claims join the research feed like scanned ones.
Usage: idiotproof research analyze <target> [--ticker <string>] [--text <string>] [--source <string>] [--days <int>] [--max-articles <int>] [--save]
Risk: write
Parameters:
<target> A ticker (analyzes its recent Alpaca news, or --text) or an http(s) URL of an article or filing. (required)
--ticker <string> The company a URL is about (required with a URL).
--text <string> Analyze this text instead of fetching anything.
--source <string> Source name to record (default: the URL's host, Alpaca's outlet, or "manual").
--days <int> News lookback for a ticker, 1-30 days (default 3). (default: 3)
--max-articles <int> Most news articles to analyze for a ticker, 1-20 (default 5). (default: 5)
--save Persist the extracted claims to the research feed (skips a URL already analyzed). (default: false)
Examples:
idiotproof research analyze NVDA
idiotproof research analyze https://www.sec.gov/Archives/edgar/data/1045810/x.htm --ticker NVDA --save
idiotproof research analyze AMD --text "AMD signs a preliminary $4B supply deal, closing next quarter"
research backfill
Record what each old enough claim's stock actually did (Alpaca daily closes) and settle portents.
Usage: idiotproof research backfill [--min-wait-days <int>] [--window-days <int>] [--max <int>]
Risk: write
Parameters:
--min-wait-days <int> Only claims at least this many days old, 1-365 (default 5). (default: 5)
--window-days <int> Measure the price move this many days after the claim, 1-365 (default 7). (default: 7)
--max <int> Most claims to backfill this run, 1-5000 (default 200). (default: 200)
Examples:
idiotproof research backfill
idiotproof research backfill --min-wait-days 10 --window-days 10 --max 500
research claim
One research claim in full: source, trigger, outcome, insider lines and its score breakdown.
Usage: idiotproof research claim <claim>
Risk: read
Parameters:
<claim> Claim id, or the 8-character prefix `research claims` shows. (required)
Examples:
idiotproof research claim 3f2a91c0
research claims
Ranked research feed: catalysts and portents by significance score, filterable by ticker, date, score and macro.
Usage: idiotproof research claims [--ticker <string>] [--since <date>] [--min-score <number>] [--macro] [--portents] [--limit <int>]
Risk: read
Parameters:
--ticker <string> Only claims about this symbol (and macro claims that name it).
--since <date> First ET date a claim was found, yyyy-MM-dd (default: 14 days ago).
--min-score <number> Only claims scored at least this (0-100); unscored claims are left out.
--macro Only macro/regulatory claims (no single ticker). (default: false)
--portents Only pending portents: announced, not yet happened. (default: false)
--limit <int> Most claims to show, 1-500 (default 50). (default: 50)
Examples:
idiotproof research claims
idiotproof research claims --ticker NVDA --since 2026-10-01
idiotproof research claims --min-score 60 --portents
idiotproof research claims --macro
research gappers build-universe
Gapper study T1/T6 + universe: every Alpaca us_equity asset's daily bars and splits, then U(D), exclusions, candidates, ADV deciles and price tiers per the frozen protocol, and sample.json.
Research rows only, on the research database (the connection string must name a database containing '_Research_'); read-only market data; no orders. Every number comes from docs/research/gapper-study-2026-11/params.json. Resumable: covered symbols are not re-pulled; universe rows for the range are rebuilt.
Usage: idiotproof research gappers build-universe --from <date> --to <date> [--smoke] [--symbols <string>] [--max-calls <int>]
Risk: read
Parameters:
--from <date> First trading day D of the universe (ET, yyyy-MM-dd). (required)
--to <date> Last trading day D (ET, yyyy-MM-dd). (required)
--smoke Smoke run: only --symbols, daily bars from 60 days before --from, rows tagged split 'smoke', sample.smoke.json. (default: false)
--symbols <string> Comma-separated symbols for a --smoke run.
--max-calls <int> Stop pulling after this many Alpaca requests (0 = no cap); the run stays resumable. (default: 0)
Examples:
idiotproof research gappers build-universe --from 2021-11-01 --to 2026-10-30
idiotproof research gappers build-universe --smoke --symbols GOGO,STAK,BE --from 2026-11-03 --to 2026-11-05
research gappers catalysts
Re-run the deterministic CatalystPreClassifier over every backfilled catalyst row (idempotent) and spend an optional Haiku budget on rows never classified; each article/filing is classified at most once.
Research rows only, on the research database (the connection string must name a database containing '_Research_'); read-only market data; no orders.
Usage: idiotproof research gappers catalysts [--llm-budget <int>]
Risk: read
Parameters:
--llm-budget <int> At most this many never-classified backfilled rows get a Haiku classification (default 0). (default: 0)
Examples:
idiotproof research gappers catalysts
idiotproof research gappers catalysts --llm-budget 200
research gappers label
Gapper study labels: next-bar-open entry and forward returns per horizon, reach-20 by 09:45, premarket/RTH/full-session high times and bucket, fade, extension from open, velocity death, death-to-HOD, halt proxy and VWAP-loss time, per the frozen definitions.
Research rows only, on the research database (the connection string must name a database containing '_Research_'); read-only market data; no orders. Same holdout lock as snapshot.
Usage: idiotproof research gappers label --split <string> [--smoke] [--from <date>] [--to <date>]
Risk: read
Parameters:
--split <string> train, validation or holdout (holdout needs holdout-unlock.txt and runs once). (required)
--smoke Label the smoke-tagged rows instead. (default: false)
--from <date> Restrict to days on or after this ET date.
--to <date> Restrict to days on or before this ET date.
Examples:
idiotproof research gappers label --split train
idiotproof research gappers label --split train --smoke
research gappers pull
Gapper study data tiers: minute bars for candidate/prior/control days into the file store (then gapper tiers and controls), Alpaca news, ticker-CIK map, EDGAR form index with acceptance times, splits. Resumable, rate-limited, --max-calls capped.
Research rows only, on the research database (the connection string must name a database containing '_Research_'); read-only market data; no orders. Minute bars go to D:\IdiotProofData\gapper-study\bars (setting gapperStudy.barRoot) as packed day blocks; a killed pull is rerun, not restarted.
Usage: idiotproof research gappers pull --tier <string> [--smoke] [--from <date>] [--to <date>] [--max-calls <int>]
Risk: read
Parameters:
--tier <string> bars (T2 minute bars + gapper classification + controls), news (T3), cik (T5), edgar (T4 form index + acceptance times), splits (T6), or all. (required)
--smoke Operate on the smoke-tagged universe rows only. (default: false)
--from <date> Restrict to candidate days on or after this ET date.
--to <date> Restrict to candidate days on or before this ET date.
--max-calls <int> Stop after this many API requests per tier (0 = no cap); the pull resumes from its coverage marks next time. (default: 0)
Examples:
idiotproof research gappers pull --tier bars
idiotproof research gappers pull --tier all --smoke
idiotproof research gappers pull --tier edgar --max-calls 5000
research gappers snapshot
Gapper study feature snapshots: every candidate and control day at every frozen decision time through the shared GapperFormationFeatures.Compute, written as Source=backtest rows; fits and saves data/tod-profile.json on train control days first.
Research rows only, on the research database (the connection string must name a database containing '_Research_'); read-only market data; no orders. The holdout split refuses to run unless holdout-unlock.txt holds the frozen commit hash, and refuses a second run.
Usage: idiotproof research gappers snapshot --split <string> [--smoke] [--from <date>] [--to <date>]
Risk: read
Parameters:
--split <string> train, validation or holdout (holdout needs holdout-unlock.txt and runs once). (required)
--smoke Snapshot the smoke-tagged rows instead (profile goes to data/tod-profile.smoke.json). (default: false)
--from <date> Restrict to days on or after this ET date.
--to <date> Restrict to days on or before this ET date.
Examples:
idiotproof research gappers snapshot --split train
idiotproof research gappers snapshot --split train --smoke
research gappers status
What the gapper study holds per split (universe days, candidates, gappers per tier, controls, minute-bar coverage, snapshots, labels), the data tiers' row counts, and the holdout lock state.
Research rows only, on the research database (the connection string must name a database containing '_Research_'); read-only market data; no orders.
Usage: idiotproof research gappers status
Risk: read
Examples:
idiotproof research gappers status
research index-events
S&P 500 / S&P 100 additions and removals: announced and effective dates, pending or done.
Usage: idiotproof research index-events [--since <date>] [--ticker <string>] [--pending]
Risk: read
Parameters:
--since <date> First announcement date, yyyy-MM-dd (default: 180 days ago).
--ticker <string> Only this symbol.
--pending Only events whose effective date has not passed yet. (default: false)
Examples:
idiotproof research index-events
idiotproof research index-events --pending
idiotproof research index-events --ticker DDOG --since 2026-01-01
research insiders
Form 4 insider transactions for a ticker: filer, role, buy/sell, shares, price, value.
Usage: idiotproof research insiders <symbol> [--days <int>] [--code <string[]>] [--limit <int>]
Risk: read
Parameters:
<symbol> Ticker symbol, e.g. NVDA. (required)
--days <int> Transactions dated within this many days, 1-3650 (default 180). (default: 180)
--code <string[]> SEC transaction codes, comma-separated: P purchase, S sale, A award, M exercise, F tax, G gift (default: all).
--limit <int> Most lines to show, 1-1000 (default 100). (default: 100)
Examples:
idiotproof research insiders NVDA
idiotproof research insiders TSLA --code P,S --days 365
research macro
Macro and regulatory claims (rule changes, listing standards) with the tickers each affects.
Usage: idiotproof research macro [--since <date>] [--affects <string>] [--limit <int>]
Risk: read
Parameters:
--since <date> First ET date a claim was found, yyyy-MM-dd (default: 30 days ago).
--affects <string> Only claims whose affected-ticker list names this symbol.
--limit <int> Most claims to show, 1-500 (default 50). (default: 50)
Examples:
idiotproof research macro
idiotproof research macro --since 2026-09-01 --affects SOUN
research scan
Run one research scan pass now in the Hub (news, SEC filings, regulatory, index events, backfill, scoring).
Targeted with --tickers; otherwise watchlist + the next rotating batch of the ticker universe. Writes claims and a ScanRun row; the Monitor's trading loop is untouched.
Usage: idiotproof research scan [--tickers <string[]>] [--batch <int>] [--days-back <int>]
Risk: write
Parameters:
--tickers <string[]> Scan just these symbols, comma-separated (default: every watchlist symbol plus the next rotating batch of the universe).
--batch <int> Rotating-batch size beyond the watchlist, 1-5000 (default 300, or IDIOTPROOF_RESEARCHSCAN_BATCHSIZE).
--days-back <int> Lookback per source in days, 1-30 (default 2, or IDIOTPROOF_RESEARCHSCAN_DAYSBACK).
Examples:
idiotproof research scan --tickers NVDA,AMD
idiotproof research scan --batch 50 --days-back 3
research score
Explain a claim's 0-100 significance score term by term (magnitude, confidence, history, source, watchlist, recency).
Usage: idiotproof research score <claim>
Risk: read
Parameters:
<claim> Claim id, or the 8-character prefix `research claims` shows. (required)
Examples:
idiotproof research score 3f2a91c0
research similar
Look-alike past claims (LSH neighbours) and what their stocks did afterwards.
Usage: idiotproof research similar <claim> [--max-distance <int>] [--limit <int>]
Risk: read
Parameters:
<claim> Claim id, or the 8-character prefix `research claims` shows. (required)
--max-distance <int> Largest Hamming distance (of 64 signature bits) that counts as similar, 0-64 (default 20). (default: 20)
--limit <int> Most neighbours to list, 1-100 (default 20). (default: 20)
Examples:
idiotproof research similar 3f2a91c0
idiotproof research similar 3f2a91c0 --max-distance 12 --limit 10
research ticker
Everything research knows about one ticker: claims, portents, macro and index events, insiders, outcomes.
Usage: idiotproof research ticker <symbol> [--days <int>] [--limit <int>]
Risk: read
Parameters:
<symbol> Ticker symbol, e.g. NVDA. (required)
--days <int> Look back this many days, 1-3650 (default 90). (default: 90)
--limit <int> Most claims to list, 1-200 (default 15). (default: 15)
Examples:
idiotproof research ticker NVDA
idiotproof research ticker SMCI --days 365 --limit 30
research universe list
The tracked ticker universe the research scan sweeps: symbol, exchange, last price, freshness.
Usage: idiotproof research universe list [--exchange <string>] [--prefix <string>] [--min-price <decimal>] [--max-price <decimal>] [--limit <int>]
Risk: read
Parameters:
--exchange <string> Only NASDAQ or NYSE.
--prefix <string> Only symbols starting with this text.
--min-price <decimal> Only tickers whose last price is at least this.
--max-price <decimal> Only tickers whose last price is at most this.
--limit <int> Most rows to show, 1-10000 (default 100). (default: 100)
Examples:
idiotproof research universe list
idiotproof research universe list --exchange NASDAQ --max-price 5 --limit 50
idiotproof research universe list --prefix NV
research universe refresh
Reload the tracked ticker universe (asset list and last prices) from Alpaca when stale, or --force.
Usage: idiotproof research universe refresh [--force] [--max-age-hours <int>]
Risk: write
Parameters:
--force Reload even when the cache is fresher than --max-age-hours. (default: false)
--max-age-hours <int> Only reload when the newest row is older than this, 1-720 (default 24). (default: 24)
Examples:
idiotproof research universe refresh
idiotproof research universe refresh --force
risk
risk check
Dry-run a setup through your Risk Guardian: approved or why not, worst case, and the largest size allowed. Places nothing.
Usage: idiotproof risk check <symbol> --entry <decimal> --stop <decimal> --qty <int> [--target <decimal>] [--short]
Risk: read
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
--entry <decimal> Planned entry price. (required)
--stop <decimal> Planned protective stop price. (required)
--qty <int> Planned share count. (required)
--target <decimal> Planned take-profit price, for the reward:risk warning.
--short A short entry (stop above entry) instead of a long. (default: false)
Examples:
idiotproof risk check NVDA --entry 100 --stop 98 --qty 20
idiotproof risk check TSLA --entry 250 --stop 255 --qty 5 --target 240 --short
risk kill-switch
Halt every new entry now (on), or resume (off, which needs a confirmation code); exits always go through.
Usage: idiotproof risk kill-switch <state>
Risk: write
Parameters:
<state> on (halt every new entry now) or off (resume; needs a confirmation code). (required)
Examples:
idiotproof risk kill-switch on
idiotproof risk kill-switch off
Returns a code; re-run with --confirm <code> to resume entries.
risk set
Change Risk Guardian limits; unnamed ones keep their value and today's loss counter is preserved.
Usage: idiotproof risk set [--max-loss-per-trade <decimal>] [--max-loss-per-day <decimal>] [--min-stop-percent <decimal>] [--max-stop-percent <decimal>] [--account-balance <decimal>] [--max-account-risk-percent <decimal>]
Risk: write
Parameters:
--max-loss-per-trade <decimal> Most a single trade may lose in the worst case, in dollars.
--max-loss-per-day <decimal> Daily loss that trips the circuit breaker, in dollars (at least the per-trade limit).
--min-stop-percent <decimal> Tightest allowed stop, percent of entry (0.01-50).
--max-stop-percent <decimal> Widest allowed stop, percent of entry (at least the minimum).
--account-balance <decimal> Balance the position size is measured against, in dollars.
--max-account-risk-percent <decimal> Most of the balance one trade may risk, percent (0-100).
Examples:
idiotproof risk set --max-loss-per-trade 50 --max-loss-per-day 200
idiotproof risk set --max-stop-percent 8 --account-balance 25000
risk show
Your six Risk Guardian limits (per-trade and daily loss, stop range, balance, account risk %) and the kill switch.
Usage: idiotproof risk show
Risk: read
Examples:
idiotproof risk show
risk status
Today's realized P&L, losses counted against the daily breaker, remaining room, breaker and kill-switch state.
Usage: idiotproof risk status
Risk: read
Examples:
idiotproof risk status
scan
scan movers
Screen today's top gainers to the gapper band; --replay replays each survivor with a gapper profile and saves the runs.
Usage: idiotproof scan movers [--date <date>] [--replay] [--top <int>] [--min-gap <number>] [--min-price <number>] [--max-price <number>] [--profile <string>] [--pages] [--out <string>]
Risk: write
Parameters:
-d, --date <date> ET day to replay the survivors on (default today ET — movers are live).
-r, --replay Replay each survivor with the gapper profile and save the runs (and pages). (default: false)
--top <int> Keep at most this many gappers (default 10, max 25). (default: 10)
--min-gap <number> Minimum percent change (default 5). (default: 5)
--min-price <number> Lowest price (default 1). (default: 1)
--max-price <number> Highest price (default 50). (default: 50)
-p, --profile <string> Gapper profile or family to replay with (default classic-gapper). (default: classic-gapper)
--pages With --replay: render run pages and archive indexes (HTML only). (default: true)
--out <string> Archive folder for the pages (default the mindattic.com replays folder).
Examples:
idiotproof scan movers
idiotproof scan movers --min-gap 10 --max-price 20 --replay
settings
settings get
Show one runtime setting: value, default, range and meaning.
Usage: idiotproof settings get <key>
Risk: read
Parameters:
<key> The setting key, e.g. Options.RiskFreeRate. (required)
Examples:
idiotproof settings get Options.RiskFreeRate
settings list
List the app's runtime settings with current value, default, range and meaning.
Usage: idiotproof settings list [--all]
Risk: read
Parameters:
--all Also show internal bookkeeping keys the app writes for itself. (default: false)
Examples:
idiotproof settings list
idiotproof settings list --all
settings set
Change one runtime setting (type- and range-checked; unknown and internal keys refused).
Usage: idiotproof settings set <key> <value>
Risk: write
Parameters:
<key> The setting key (see `settings list`). (required)
<value> The new value; checked against the key's type and range. (required)
Examples:
idiotproof settings set Options.RiskFreeRate 0.045
idiotproof settings set decay.be-bex.threshold 10
strategy
strategy activate
Hand a strategy to the Monitor. A Live strategy needs a confirmation code.
Usage: idiotproof strategy activate <strategy>
Risk: money
Parameters:
<strategy> Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol. (required)
Examples:
idiotproof strategy activate NVDA
strategy bulk
Activate or deactivate many strategies at once (--all, --symbol, --mode). Live activations need one confirmation code for the batch.
Deactivation skips strategies holding a position (that would orphan the exit). Activation skips quarantined and soft-deleted strategies; when the batch would turn on any Live strategy, nothing happens until you re-run with the confirmation code, which is bound to exactly that batch.
Usage: idiotproof strategy bulk <action> [--all] [--symbol <string>] [--mode <sandbox|paper|live>]
Risk: money
Parameters:
<action> activate or deactivate. (required)
--all Every strategy you own (soft-deleted ones excluded). (default: false)
--symbol <string> Only strategies on this symbol.
--mode <sandbox|paper|live> Only strategies in this broker mode (sandbox, paper, live).
Examples:
idiotproof strategy bulk deactivate --all
idiotproof strategy bulk activate --symbol NVDA --mode paper
strategy clone
Copy a strategy (optionally onto another symbol) as a new, inactive Sandbox strategy.
The copy gets the same canon (re-validated), never the original's position, history or Live routing. Cloning onto another symbol warns about fixed prices that belonged to the original's chart.
Usage: idiotproof strategy clone <strategy> [--symbol <string>] [--title <string>] [--mode <sandbox|paper|live>]
Risk: write
Parameters:
<strategy> Id, id prefix, stamp id or symbol of the strategy to copy. (required)
--symbol <string> Trade a different symbol with the same rules.
--title <string> Title for the copy (default: "<title> (copy)").
-m, --mode <sandbox|paper|live> Broker mode for the copy: sandbox (default) or paper. (default: sandbox)
Examples:
idiotproof strategy clone NVDA
idiotproof strategy clone NVDA --symbol AMD --title "AMD VWAP reclaim"
strategy create
Create a strategy from IdiotScript or canonical JSON after validating it. It starts inactive in Sandbox.
Exactly one of --script or --canon. A strategy with no size buys 1 share. Errors (no stop, stop on the wrong side of the target, a broken canon) stop the save; warnings are shown.
Usage: idiotproof strategy create [--script <string>] [--canon <string>] [--title <string>] [--ticker <string>] [--description <string>] [--mode <sandbox|paper|live>] [--dry-run]
Risk: write
Parameters:
-s, --script <string> The strategy as IdiotScript text (`-` reads stdin).
--canon <string> The strategy as canonical JSON (what `strategy export --format json` prints) (`-` reads stdin).
--title <string> Title (default: the strategy's own name, else "SYM strategy").
--ticker <string> Symbol to use when the script doesn't name one.
--description <string> Free-form description stored with the strategy.
-m, --mode <sandbox|paper|live> Broker mode: sandbox (default) or paper. Live is a separate, confirmed step. (default: sandbox)
--dry-run Validate and show the stamp without saving anything. (default: false)
Examples:
idiotproof strategy create --script "Stock.Ticker(\"NVDA\").IsAboveVwap().Long().StopLoss(170).TakeProfit(190).Build()"
idiotproof strategy create --canon - --mode paper
Reads canonical JSON from stdin.
strategy deactivate
Stop the Monitor evaluating a strategy (refused while it holds a position).
Usage: idiotproof strategy deactivate <strategy>
Risk: write
Parameters:
<strategy> Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol. (required)
Examples:
idiotproof strategy deactivate NVDA
strategy delete
Soft-delete a strategy: deactivate it and mark it [deleted] (reversible with --restore). Refused while it holds a position.
Deleting is a reversible disable (HOUSE-LAW-2): the row, canon and history stay, and `strategy list` hides it unless --deleted. --hard permanently removes a strategy that is already deleted — a separate, explicit second step.
Usage: idiotproof strategy delete <strategy> [--restore] [--hard]
Risk: destructive
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
--restore Undo a delete: take the [deleted] marker off (it stays inactive). (default: false)
--hard Permanently remove an ALREADY deleted strategy and its progress row. Cannot be undone. (default: false)
Examples:
idiotproof strategy delete NVDA
idiotproof strategy delete 0193ab12 --restore
idiotproof strategy delete 0193ab12 --hard
strategy diff
Compare two strategies field by field at the canon level (what the Monitor actually runs), plus title, mode and state.
Usage: idiotproof strategy diff <a> <b>
Risk: read
Parameters:
<a> First strategy: id, id prefix, stamp id or symbol. (required)
<b> Second strategy: id, id prefix, stamp id or symbol. (required)
Examples:
idiotproof strategy diff NVDA AMD
idiotproof strategy diff IP-P4AY-UXZU IP-Q7RB-K2MD
strategy explain
Explain a strategy in plain English, phase by phase — generated from its canon, no LLM, the same words every time.
Usage: idiotproof strategy explain <strategy>
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol. (required)
Examples:
idiotproof strategy explain NVDA
strategy export
Export a strategy as a stamp, armored payload, canonical JSON or IdiotScript.
Usage: idiotproof strategy export <strategy> [--format <stamp|armor|json|script>]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
-f, --format <stamp|armor|json|script> stamp (default), armor (payload only), json (canonical) or script (IdiotScript). (default: stamp)
Examples:
idiotproof strategy export NVDA --format json
strategy fires
Why a strategy did or didn't fire: its recent gate verdicts (conditions met, LLM veto, Risk Guardian block, order placed or rejected) and where it stands now.
Usage: idiotproof strategy fires <strategy> [--limit <int>]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
-n, --limit <int> How many verdicts to show (default 20, max 200). (default: 20)
Examples:
idiotproof strategy fires NVDA
idiotproof strategy fires NVDA --limit 50
strategy from-text
Turn a plain-English description into a strategy (via the LLM), show its stamp, and save it only when you confirm.
The first call writes the IdiotScript, validates it and shows the stamp with a confirmation code; nothing is saved. Re-run with --confirm <code> to save exactly what was shown (the LLM is not called again). It saves inactive, in Sandbox by default, 1 share when unsized.
Usage: idiotproof strategy from-text <description> [--ticker <string>] [--mode <sandbox|paper|live>] [--title <string>]
Risk: write
Parameters:
<description> The strategy in plain English (`-` reads stdin). (required)
-t, --ticker <string> The symbol to trade (default: the first ticker-looking word, e.g. $NVDA or NVDA).
-m, --mode <sandbox|paper|live> Broker mode for the saved strategy: sandbox (default) or paper. (default: sandbox)
--title <string> Title for the saved strategy (default: its own name, else "SYM strategy").
Examples:
idiotproof strategy from-text "Buy NVDA when it reclaims VWAP with volume, stop 2% under, take profit at 190"
idiotproof strategy from-text "long on a 9 EMA reclaim above VWAP, 3% stop" --ticker AMD --mode paper
strategy from-watchlist
Create one strategy per item of a watchlist JSON file (the Monitor's create-strategies, through the CLI).
Each item's script is validated like `strategy create`; an item that fails is reported and skipped. Items already present (same symbol and title) or repeated in the file are skipped, so re-running is safe. New strategies start inactive in Sandbox with 1 share when unsized; --activate turns on the items marked active.
Usage: idiotproof strategy from-watchlist <file> [--mode <sandbox|paper|live>] [--activate] [--dry-run]
Risk: write
Parameters:
<file> A watchlist JSON file (absolute path: the Hub reads it), the JSON itself, or `-` for stdin: [{"title","symbol","script","description","author","originTranscript","active"}]. (required)
-m, --mode <sandbox|paper|live> Broker mode for every new strategy: sandbox (default) or paper. (default: sandbox)
--activate Activate items marked "active": true (default: everything starts inactive). (default: false)
--dry-run Validate every item and report what would happen without saving. (default: false)
Examples:
idiotproof strategy from-watchlist D:/watchlists/2026-10-30.json
idiotproof strategy from-watchlist -
Reads the watchlist JSON from stdin, e.g. `type watchlist.json | idiotproof strategy from-watchlist -`.
idiotproof strategy from-watchlist - --mode paper --activate --dry-run
strategy history
A strategy's trail, newest first: Monitor verdicts and fills, diary trades, and the CLI/MCP commands that touched it.
Usage: idiotproof strategy history <strategy> [--limit <int>]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
-n, --limit <int> How many events to show (default 40, max 500). (default: 40)
Examples:
idiotproof strategy history NVDA
idiotproof strategy history NVDA --limit 100
strategy import
Create a strategy from a stamp, canonical JSON or IdiotScript. It starts inactive in Sandbox.
Usage: idiotproof strategy import <source> [--title <string>] [--mode <sandbox|paper|live>]
Risk: write
Parameters:
<source> A pasted stamp/armor/IPS1 payload, canonical JSON, or IdiotScript text (`-` reads stdin). (required)
--title <string> Title for the new strategy (default: the strategy's own name or symbol).
-m, --mode <sandbox|paper|live> Broker mode for the new strategy: sandbox (default) or paper. Live is a separate, confirmed step. (default: sandbox)
Examples:
idiotproof strategy import -
Reads the pasted stamp from stdin, e.g. `type gapper-stamp.txt | idiotproof strategy import -`.
idiotproof strategy import "Ticker(\"NVDA\").IsAboveVwap().StopLoss(2)" --mode paper
strategy list
List your strategies with mode, position and live condition progress.
Usage: idiotproof strategy list [--active] [--symbol <string>] [--mode <sandbox|paper|live>] [--deleted]
Risk: read
Parameters:
-a, --active Only strategies the Monitor is evaluating. (default: false)
--symbol <string> Only this symbol.
--mode <sandbox|paper|live> Only this broker mode (sandbox, paper, live).
--deleted Include soft-deleted strategies (hidden by default). (default: false)
Examples:
idiotproof strategy list
idiotproof strategy list --active --mode live
strategy mode
Route a strategy to sandbox, paper or live. Switching to live needs a confirmation code.
Usage: idiotproof strategy mode <strategy> <mode>
Risk: money
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
<mode> sandbox, paper or live (live needs a confirmation code). (required)
Examples:
idiotproof strategy mode NVDA paper
idiotproof strategy mode NVDA live
strategy progress
How close a strategy is to firing: conditions passing N/M, the first failing verb and the last price, optionally watched.
Reads the row the Monitor writes every tick. --watch samples it every --every seconds and reports each change, stopping when every condition passes: in a terminal each change streams live until Ctrl+C; for MCP and --json it takes --samples samples (at most two minutes in all).
Usage: idiotproof strategy progress <strategy> [--watch] [--every <int>] [--samples <int>]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
-w, --watch Keep sampling the Monitor's progress row and report each change: a terminal streams until Ctrl+C or all conditions pass; MCP/--json are bounded by --samples. (default: false)
--every <int> Seconds between samples while watching (0-60, default 5). (default: 5)
--samples <int> How many samples to take while watching (1-120; default 12 for MCP/--json, unlimited in a terminal).
Examples:
idiotproof strategy progress NVDA
idiotproof strategy progress NVDA --watch --every 10 --samples 6
strategy quarantine
List strategies the Monitor refuses to evaluate (canon unreadable, or no canon and a script that doesn't parse), with the reason.
A quarantined strategy never fires; one that is quarantined while holding a position has NO managed exit and is listed first.
Usage: idiotproof strategy quarantine [--symbol <string>]
Risk: read
Parameters:
--symbol <string> Only this symbol.
Examples:
idiotproof strategy quarantine
strategy rename
Give a strategy a new title. Its canon, stamp id and state are untouched.
Only the title changes, so the stamp id stays the same. The Monitor's audit lines carry the title at the time, so `strategy history` matches the new title from now on.
Usage: idiotproof strategy rename <strategy> <title>
Risk: write
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
<title> The new title (1-200 characters). (required)
Examples:
idiotproof strategy rename NVDA "NVDA VWAP reclaim"
strategy resync-canon
Re-derive your strategies' canons from their scripts where the script now yields a richer canon; dry run unless --apply.
The repair for verbs an older parser dropped silently. A row is rewritten only when the re-derived canon has at least as many entry conditions and branches as the stored one; anything that would lose a condition is skipped and reported. Only the canon (ScriptJson) changes — position bookkeeping is untouched.
Usage: idiotproof strategy resync-canon [--apply]
Risk: write
Parameters:
--apply Write the repaired canons (default is a dry run that changes nothing). (default: false)
Examples:
idiotproof strategy resync-canon
idiotproof strategy resync-canon --apply
strategy samples
List the built-in sample strategies, or show one as IdiotScript, a stamp or canonical JSON.
Samples are worked examples you can save and edit: `idiotproof strategy samples vwap-reclaim --format json | idiotproof strategy create --canon -`.
Usage: idiotproof strategy samples [<name>] [--format <stamp|armor|json|script>]
Risk: read
Parameters:
<name> A sample's name to show in full (omit to list them all).
-f, --format <stamp|armor|json|script> How to show one sample: script (default), stamp or json. (default: script)
Examples:
idiotproof strategy samples
idiotproof strategy samples vwap-reclaim
idiotproof strategy samples sune-wedge --format stamp
strategy set
Edit a strategy's stop, target, trailing, size, sell-by time or session; the canon is rewritten and re-validated.
Only the named fields change. The result must still validate (a stop, stop below target on a long, ...). A Live strategy needs a confirmation code bound to exactly these changes.
Usage: idiotproof strategy set <strategy> [--stop <decimal>] [--stop-percent <decimal>] [--target <decimal>] [--target-percent <decimal>] [--trailing <decimal>] [--giveback <decimal>] [--qty <int>] [--notional <decimal>] [--sell-by <string>] [--session <premarket|rth|after-hours|extended>]
Risk: money
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
--stop <decimal> Stop-loss price (replaces a percent stop).
--stop-percent <decimal> Stop-loss percent from the fill (replaces a price stop).
--target <decimal> Take-profit price (replaces a percent target and any scale-out ladder).
--target-percent <decimal> Take-profit percent from the fill (replaces a price target).
--trailing <decimal> Trailing-stop percent; 0 removes it.
--giveback <decimal> Peak-giveback exit percent; 0 removes it.
--qty <int> Share quantity per entry (replaces a notional size).
--notional <decimal> Dollar size per entry (replaces a share quantity).
--sell-by <string> Sell anything still held at this ET time (HH:mm); "none" removes it.
--session <premarket|rth|after-hours|extended> Trading session: premarket, rth, afterhours or extended.
Examples:
idiotproof strategy set NVDA --stop 168.5 --target 195
idiotproof strategy set NVDA --qty 2 --sell-by 15:45
strategy show
Everything about one strategy: settings, script, position, progress.
Usage: idiotproof strategy show <strategy>
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol. (required)
Examples:
idiotproof strategy show NVDA
idiotproof strategy show IP-P4AY-UXZU
strategy stamp
Print the strategy's ASCII stamp: header, phase flow, exit ladder, fingerprint and a paste-back payload.
Usage: idiotproof strategy stamp <strategy> [--unicode] [--qr] [--compact]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id or symbol. (required)
-u, --unicode Box-drawing characters instead of plain ASCII. (default: false)
--qr Add a terminal QR code of the payload. (default: false)
--compact Leave out the armored payload block (picture only). (default: false)
Examples:
idiotproof strategy stamp NVDA
idiotproof strategy stamp IP-P4AY-UXZU --unicode --qr
strategy step
Where a sequenced strategy stands (step k/N, armed or awaiting its transition); --reset starts it over at step 1.
Usage: idiotproof strategy step <strategy> [--reset]
Risk: write
Parameters:
<strategy> Id, id prefix, stamp id (IP-XXXX-XXXX) or symbol. (required)
--reset Put the sequence back at step 1 (refused while it holds a position). (default: false)
Examples:
idiotproof strategy step NVDA
idiotproof strategy step NVDA --reset
strategy validate
Check a saved strategy or a script: parse, canon round-trip, phase rules and a risk preview. Changes nothing.
Usage: idiotproof strategy validate [<strategy>] [--script <string>] [--canon <string>]
Risk: read
Parameters:
<strategy> Id, id prefix, stamp id or symbol of a saved strategy (omit with --script/--canon).
-s, --script <string> Validate this IdiotScript text instead of a saved strategy (`-` reads stdin).
--canon <string> Validate this canonical JSON instead of a saved strategy (`-` reads stdin).
Examples:
idiotproof strategy validate NVDA
idiotproof strategy validate --script "Stock.Ticker(\"AMD\").IsAboveVwap().Long().StopLoss(150).Build()"
trade
trade buy
Buy shares (open or add to a long). Sandbox by default; live needs a confirmation code.
Usage: idiotproof trade buy <symbol> [<qty>] [--dollars <decimal>] [--limit <decimal>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--ext] [--tif <string>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<qty> Shares. Leave out and pass --dollars to size by amount.
--dollars <decimal> Size by dollar amount instead of shares (fractional, regular hours only).
-l, --limit <decimal> Limit price. Without it the order is a market order.
-s, --stop <decimal> Protective stop price for an entry; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--ext Extended hours (premarket/after-hours); requires --limit, DAY. (default: false)
--tif <string> Time in force: day (default) or gtc. (default: day)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof trade buy NVDA 10 --limit 131.20 --stop 127.50
Sandbox limit buy with a protective stop.
idiotproof trade buy AAPL --dollars 500 --stop 220 --mode paper
idiotproof trade buy GAPT 100 --limit 4.12 --stop 3.90 --ext --mode live
Premarket live buy; prints a confirmation code first.
trade confirm
Execute a pending Live order by its confirmation code (exactly what was previewed, once).
Usage: idiotproof trade confirm <code>
Risk: money
Parameters:
<code> The six-character code a Live preview returned. (required)
Examples:
idiotproof trade confirm K7Q2ZP
trade cover
Buy to cover a short.
Usage: idiotproof trade cover <symbol> [<qty>] [--dollars <decimal>] [--limit <decimal>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--ext] [--tif <string>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<qty> Shares. Leave out and pass --dollars to size by amount.
--dollars <decimal> Size by dollar amount instead of shares (fractional, regular hours only).
-l, --limit <decimal> Limit price. Without it the order is a market order.
-s, --stop <decimal> Protective stop price for an entry; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--ext Extended hours (premarket/after-hours); requires --limit, DAY. (default: false)
--tif <string> Time in force: day (default) or gtc. (default: day)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof trade cover TSLA 5 --mode paper
trade flatten
Flatten a symbol, a strategy's position, or the whole account with market exits through the TransactionGateway. Live needs a confirmation code.
Usage: idiotproof trade flatten [--symbol <string>] [--strategy <string>] [--all] [--mode <sandbox|paper|live>] [--preview]
Risk: money
Parameters:
--symbol <string> Close the whole broker position in this symbol.
--strategy <string> Close what this strategy books (id, id prefix, stamp id or symbol), capped at what the broker holds.
--all Close every position in the account. (default: false)
-m, --mode <sandbox|paper|live> paper or live (live needs a confirmation code). Default: the strategy's mode with --strategy, else paper.
--preview Run every gate and list the exits without sending them. (default: false)
Examples:
idiotproof trade flatten --symbol HIHO --mode paper
idiotproof trade flatten --strategy IP-P4AY-UXZU
Uses the strategy's own mode.
idiotproof trade flatten --all --mode live --preview
List every Live exit without sending anything.
trade notional
Buy (or sell) a dollar amount of a stock: a fractional, DAY, market order sized in dollars. Live needs a code.
Usage: idiotproof trade notional <symbol> <amount> [--side <buy|sell>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. AAPL. (required)
<amount> Dollars to buy (or sell) — Alpaca works out the fractional shares. (required)
--side <buy|sell> buy (default, opens/adds to a long) or sell (trims a long by dollar value). (default: buy)
-s, --stop <decimal> Protective stop price for a buy; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof trade notional AAPL 500 --stop 220 --mode paper
idiotproof trade notional AAPL 250 --side sell --mode live
Trim $250 of a long; prints a confirmation code first.
trade pending
List Live confirmations still waiting for a yes.
Usage: idiotproof trade pending
Risk: read
Examples:
idiotproof trade pending
trade preview
Run every gate on an order without placing it (no code issued).
Usage: idiotproof trade preview <action> <symbol> [<qty>] [--dollars <decimal>] [--limit <decimal>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--ext]
Risk: read
Parameters:
<action> buy, sell, short or cover. (required)
<symbol> Ticker. (required)
<qty> Shares (or use --dollars).
--dollars <decimal> Size by dollar amount.
-l, --limit <decimal> Limit price.
-s, --stop <decimal> Protective stop price.
-t, --target <decimal> Take-profit price.
-m, --mode <sandbox|paper|live> sandbox (default), paper or live. (default: sandbox)
--ext Extended hours. (default: false)
Examples:
idiotproof trade preview buy NVDA 10 --limit 131 --stop 127 --mode live
trade sell
Sell shares you hold (close or trim a long). Exits always clear the gates.
Usage: idiotproof trade sell <symbol> [<qty>] [--dollars <decimal>] [--limit <decimal>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--ext] [--tif <string>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<qty> Shares. Leave out and pass --dollars to size by amount.
--dollars <decimal> Size by dollar amount instead of shares (fractional, regular hours only).
-l, --limit <decimal> Limit price. Without it the order is a market order.
-s, --stop <decimal> Protective stop price for an entry; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--ext Extended hours (premarket/after-hours); requires --limit, DAY. (default: false)
--tif <string> Time in force: day (default) or gtc. (default: day)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof trade sell NVDA 10 --mode paper
trade short
Sell short (open a short). Needs a stop above entry; margin + shortable name at the broker.
Usage: idiotproof trade short <symbol> [<qty>] [--dollars <decimal>] [--limit <decimal>] [--stop <decimal>] [--target <decimal>] [--mode <sandbox|paper|live>] [--ext] [--tif <string>] [--note <string>]
Risk: money
Parameters:
<symbol> Ticker, e.g. NVDA. (required)
<qty> Shares. Leave out and pass --dollars to size by amount.
--dollars <decimal> Size by dollar amount instead of shares (fractional, regular hours only).
-l, --limit <decimal> Limit price. Without it the order is a market order.
-s, --stop <decimal> Protective stop price for an entry; the Risk Guardian refuses entries without one.
-t, --target <decimal> Take-profit price (for the reward:risk check).
-m, --mode <sandbox|paper|live> Where it routes: sandbox (simulator, the default), paper, or live (needs confirmation). (default: sandbox)
--ext Extended hours (premarket/after-hours); requires --limit, DAY. (default: false)
--tif <string> Time in force: day (default) or gtc. (default: day)
--note <string> Why — kept in the audit trail.
Examples:
idiotproof trade short TSLA 5 --limit 240 --stop 246
users
users create
Create an IdiotProof account (blocklist and password rules of web sign-up; Argon2id via MindAttic.Authentication).
Usage: idiotproof users create <email> --password <string> [--role <string>] [--must-change]
Risk: write
Parameters:
<email> The new account's email (also its user name). (required)
--password <string> Initial password: 8 to 128 characters with at least one digit. (required)
--role <string> User (default) or Admin. (default: User)
--must-change Make them choose a new password at first sign-in. (default: false)
Examples:
idiotproof users create trader@example.com --password <password>
idiotproof users create admin@example.com --password <password> --role Admin --must-change
users list
List the IdiotProof accounts (test fixtures hidden unless --all); * marks who you act as.
Usage: idiotproof users list [--all]
Risk: read
Parameters:
--all Include test-fixture accounts (@idiotproof.local and bare user names), hidden by default. (default: false)
Examples:
idiotproof users list
idiotproof users list --all
watchlist
watchlist add
Add symbols to your IdiotProof watchlist (creates a 'Main' workspace when you have none).
Usage: idiotproof watchlist add <symbols>... [--workspace <string>]
Risk: write
Parameters:
<symbols> One or more ticker symbols (space or comma separated). (required)
--workspace <string> Which workspace (name or id); needed only when you have more than one.
Examples:
idiotproof watchlist add NVDA AAPL
idiotproof watchlist add TSLA --workspace Main
watchlist list
Your IdiotProof watchlist: the symbols on each of your workspaces (not Alpaca's watchlists).
Usage: idiotproof watchlist list [--workspace <string>]
Risk: read
Parameters:
--workspace <string> Only this workspace (name or id).
Examples:
idiotproof watchlist list
idiotproof watchlist list --workspace Main
watchlist remove
Remove symbols from your IdiotProof watchlist.
Usage: idiotproof watchlist remove <symbols>... [--workspace <string>]
Risk: write
Parameters:
<symbols> One or more ticker symbols (space or comma separated). (required)
--workspace <string> Which workspace (name or id); needed only when you have more than one.
Examples:
idiotproof watchlist remove AAPL
watchlists
watchlists add
Add symbols to an Alpaca watchlist (by id or name).
Usage: idiotproof watchlists add <watchlist> <symbols>... [--mode <paper|live>]
Risk: write
Parameters:
<watchlist> Watchlist id or name. (required)
<symbols> One or more symbols (space or comma separated). (required)
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists add tech AMD AVGO
watchlists create
Create an Alpaca watchlist, optionally with symbols.
Usage: idiotproof watchlists create <name> [<symbols>...] [--mode <paper|live>]
Risk: write
Parameters:
<name> Name for the new watchlist. (required)
<symbols> Symbols to start with (space or comma separated).
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists create tech AAPL MSFT NVDA
watchlists delete
Delete an Alpaca watchlist (by id or name).
Usage: idiotproof watchlists delete <watchlist> [--mode <paper|live>]
Risk: destructive
Parameters:
<watchlist> Watchlist id or name. (required)
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists delete tech
watchlists list
Your Alpaca server-side watchlists (not IdiotProof's local watchlist): name, id, last update.
Usage: idiotproof watchlists list [--mode <paper|live>]
Risk: read
Parameters:
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists list
idiotproof watchlists list --mode live
watchlists remove
Remove symbols from an Alpaca watchlist (by id or name).
Usage: idiotproof watchlists remove <watchlist> <symbols>... [--mode <paper|live>]
Risk: write
Parameters:
<watchlist> Watchlist id or name. (required)
<symbols> One or more symbols (space or comma separated). (required)
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists remove tech AMD
watchlists rename
Rename an Alpaca watchlist, keeping its symbols.
Usage: idiotproof watchlists rename <watchlist> <new-name> [--mode <paper|live>]
Risk: write
Parameters:
<watchlist> Watchlist id or current name. (required)
<new-name> The new name. (required)
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists rename tech megacaps
watchlists show
One Alpaca watchlist (by id or name) and its symbols.
Usage: idiotproof watchlists show <watchlist> [--mode <paper|live>]
Risk: read
Parameters:
<watchlist> Watchlist id or name. (required)
--mode <paper|live> Alpaca account: paper (default) or live. (default: paper)
Examples:
idiotproof watchlists show tech
idiotproof watchlists show 3174d6df-7726-44b4-a5bd-7fda5ae6e009 --mode live