Ib options overview
Read-only Interactive Brokers (IBKR) diagnostics as portable AI-agent skills: account health, positions, daily P&L, trade history, dividends, options Greeks, and a P0–P3 graded portfolio report. Never places orders.
npx -y skills add luyangkk/ib-suite --skill ib-options-overviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 17 days oldThe repository was created 17 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Read-only Interactive Brokers option positions and Greeks overview. Use when the user asks for open option contracts, IV, Delta, Gamma, Theta, Vega, moneyness, expiry exposure, or option concentration. Reads live positions only - never places, modifies, or cancels an order.
SKILL.md
3.5 KB, 717 tokens by cl100k_base, as published. Nobody here has run it
ib-options-overview
Read every open option position and return one JSON risk overview. This connects
with readonly=True and never places, modifies, or cancels orders.
By default it runs in free mode (options.fetch_market_data: false): it reads
only IB-computed portfolio fields (position, price, market value, unrealized P&L)
and requests no market data, so it never risks IBKR snapshot charges. Greeks, IV,
underlying price, and moneyness are unavailable in this mode.
To collect Greeks/IV, set options.fetch_market_data: true in config.yaml. The
skill then briefly subscribes for model Greeks, requests one deduplicated
underlying quote when option model data lacks an underlying price, and cancels
both subscriptions afterward. This may incur IBKR snapshot charges for symbols
without a real-time market-data subscription.
{baseDir}/../.venv/bin/python {baseDir}/scripts/options_overview.py --config .ib-suite/config.yaml
The JSON lists each contract's underlying, Call/Put, long/short side, strike,
expiry, inclusive calendar DTE, quantity, cost, price, market value, unrealized
P&L, IV, Delta, Gamma, Theta, Vega, and ITM/ATM/OTM state. summary includes
aggregate Greeks, daily time-value decay, expiry distribution, and absolute
market-value underlying concentration.
Present the result in the language of the user's current request. Start with a position-detail Markdown table, then a moneyness Markdown table, and only then the account overview, principal risk observations, and data limitations.
The position-detail table must contain these columns in order:
underlying_symbol, right, expiry_date, days_to_expiry, strike,
quantity, market_value, and unrealized_pnl. Localize the table title,
headings, Call/Put labels, and surrounding prose; keep ticker symbols, dates,
DTE values, currency values, and ITM/ATM/OTM/UNKNOWN unchanged. Sort rows by
expiry_date, then underlying_symbol, then strike, all ascending. Render
strikes compactly without unnecessary trailing zeros. Render market value and
unrealized P&L to two decimal places with an explicit plus sign for positive values.
Bold the unrealized_pnl cells for the two largest available losses (the two most negative values);
if fewer than two losses exist, bold only those, and never bold zero or profitable values.
In the second table, group positions by moneyness in this order: ITM, ATM, OTM, and UNKNOWN,
including empty groups. Within each group, sort by
underlying_symbol, then expiry_date, then strike. For a classified
position with an underlying price, show the underlying price and the in/out-of-
the-money distance as the absolute difference between underlying_price and strike.
You may combine strikes only when symbol, right, expiry, and moneyness are
identical. Put positions with null moneyness in UNKNOWN and explain their
matching data_limitations after the tables.
Delayed data is accepted. Unavailable price, underlying price, IV, or Greek
fields remain null and are explained in data_limitations; no unavailable
market data is fabricated as zero.
What ships with it: 3 files
68.8 KB alongside SKILL.md, 2 of them executable
scripts/
- options_overview.pyruns24.4 KB
tests/
- fixtures/ib_raw_options_sample.json1.7 KB
- test_options_overview.pyruns42.7 KB