Skip to content
Skillv1.0.0

ibkr

Interactive Brokers — global stocks/forex/futures via a LOCAL TWS/IB Gateway, not cloud. Covers stocks, ETFs, forex, futures; account, positions, orders, quotes, history, order placement. Use when the

by starchild-ai-agent(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from starchild-ai-agent/official-skills (ibkr/SKILL.md). Install upstream with npx skills add starchild-ai-agent/official-skills --skill ibkr. Copyright stays with the author.

What this is — read this first

🖥️ Local-gateway broker. IBKR has no key-based public API. You run Trader Workstation (TWS) or the lighter IB Gateway on a machine, log in, enable the API socket, and this CLI connects over a local socket. Your IBKR credentials live in TWS — they never reach this skill.

⚠️ This will NOT work from the Starchild container by default, because TWS runs on your computer and the container's 127.0.0.1 is the container itself. Two ways to use it:

  1. Run locally — run TWS/Gateway + this script on your own computer. (simplest)
  2. Bridge the network — run IB Gateway on a host the container can reach, add the container's IP to TWS's "Trusted IPs", and set IBKR_HOST/IBKR_PORT. You handle network/security; never expose the API socket to the open internet.

If status says the socket isn't listening, this is why.

Set up TWS / IB Gateway (one time)

  1. Download TWS or IB Gateway from interactivebrokers.com → Trading → Platforms. IB Gateway is lighter and headless-friendly; TWS is the full GUI.
  2. Log in. Paper trading: IBKR gives every account a free paper login (account id starts with DU); log into the paper session for testing.
  3. Enable the API: TWS → File → Global Configuration → API → Settings → check "Enable ActiveX and Socket Clients". For trading, leave "Read-Only API" unchecked (read-only blocks order placement). Note the Socket port.
  4. Default ports: 7497 = TWS paper, 7496 = TWS live, 4002 = IB Gateway paper, 4001 = IB Gateway live.
  5. Market data requires the relevant data subscriptions on the account, or quotes/bars return empty.

Configure (.env)

No secret keys — only the gateway location. Request via secure input if non-default.

Variable Required Notes
IBKR_HOST no default 127.0.0.1
IBKR_PORT no overrides the profile default (7497 paper / 7496 live)
IBKR_CLIENT_ID no API client id, default 1 (use distinct ids for concurrent connections)
IBKR_ACCOUNT no pin a specific account code (e.g. DU1234567); blank = first managed account

Paper accounts start with DU, live with U. --profile paper guards against accidentally hitting a live account.

Usage

pip install ib_async (first run). JSON output. Default profile paper (port 7497).

python skills/ibkr/scripts/ibkr_cli.py status                  # checks socket + lists managed accounts
python skills/ibkr/scripts/ibkr_cli.py account
python skills/ibkr/scripts/ibkr_cli.py positions
python skills/ibkr/scripts/ibkr_cli.py orders [--executions]
python skills/ibkr/scripts/ibkr_cli.py quote --symbol AAPL
python skills/ibkr/scripts/ibkr_cli.py history --symbol AAPL --duration "30 D" --bar-size "1 day"
# place (paper): qty in units; market or limit; contract defaults STK/SMART/USD
python skills/ibkr/scripts/ibkr_cli.py place --symbol AAPL --side buy --qty 10 --type limit --limit-price 180 --tif day
python skills/ibkr/scripts/ibkr_cli.py cancel --order-id <numeric-id>
# live (real money): TWS on live port + --confirm-live
python skills/ibkr/scripts/ibkr_cli.py --profile live --confirm-live place --symbol AAPL --side buy --qty 1

Non-US / non-stock instruments: pass --exchange, --currency, --sec-type (e.g. --sec-type CASH --symbol EUR --currency USD --exchange IDEALPRO for forex). history uses IB's --duration ("30 D", "1 Y") and --bar-size ("1 day", "1 hour", "5 mins").

Gotchas

  • "socket not listening" / connection refused = TWS not running, not logged in, on another machine, wrong port, or API socket disabled. Re-read setup step 3.
  • For order placement, "Read-Only API" must be OFF in TWS settings — otherwise placement is silently blocked even with --confirm-live.
  • cancel needs the numeric IBKR order id and only cancels orders currently open in this session/account.
  • Quotes/history return empty without the right market-data subscription on the account.
  • Use a unique IBKR_CLIENT_ID if TWS complains about a client id already in use.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/starchild-ai-agent-official-skills-ibkr/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

starchild-ai-agent-official-skills-ibkr.ocm.jsonjson
{
  "ocm": "1",
  "id": "starchild-ai-agent-official-skills-ibkr",
  "kind": "skill",
  "name": "ibkr",
  "description": "Interactive Brokers — global stocks/forex/futures via a LOCAL TWS/IB Gateway, not cloud. Covers stocks, ETFs, forex, futures; account, positions, orders, quotes, history, order placement. Use when the user wants to check or trade an Interactive Brokers account (e.g. \"IBKR positions\", \"buy 10 AAPL on IBKR paper\", \"my IB account net liq\"). Requires a running TWS / IB Gateway — NOT a cloud key.",
  "publisher": "starchild-ai-agent",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "ibkr",
      "interactive-brokers",
      "tws",
      "ib-gateway",
      "broker",
      "global-stocks",
      "forex",
      "futures",
      "trading"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Interactive Brokers — global stocks/forex/futures via a LOCAL TWS/IB Gateway, not cloud. Covers stocks, ETFs, forex, futures; account, positions, orders, quotes, history, order placement. Use when the user wants to check or trade an Interactive Brokers account (e.g. \"IBKR positions\", \"buy 10 AAPL on IBKR paper\", \"my IB account net liq\"). Requires a running TWS / IB Gateway — NOT a cloud key."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/starchild-ai-agent/official-skills",
      "path": "ibkr/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/starchild-ai-agent/official-skills/blob/HEAD/ibkr/SKILL.md",
      "key": "starchild-ai-agent/official-skills/ibkr/SKILL.md"
    }
  },
  "instructions": "## What this is — read this first\n\n🖥️ **Local-gateway broker.** IBKR has **no key-based public API**. You run **Trader Workstation (TWS)** or the lighter **IB Gateway** on a machine, log in, enable the API socket, and this CLI connects over a local socket. Your IBKR credentials live in TWS — they never reach this skill.\n\n**⚠️ This will NOT work from the Starchild container by default**, because TWS runs on *your* computer and the container's `127.0.0.1` is the container itself. Two ways to use it:\n\n1. **Run locally** — run TWS/Gateway + this script on your own computer. (simplest)\n2. **Bridge ",
  "cost": {
    "context_tokens": 1034
  }
}

Fetch it by URL: GET /api/v1/registry/starchild-ai-agent-official-skills-ibkr/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.