agentsclimarketplace

Ib options overview

Skill luyangkk/ib-suite/skills/ib-suite/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.

Install
npx -y skills add luyangkk/ib-suite --skill ib-options-overview

Assembled 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/

Keep looking

Skills are one crate of 326,984. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.