robinhood-for-agents
AI-native Robinhood trading interface. No MCP server required — this skill works standalone via the TypeScript client API and bun.
How to Use
Run Robinhood operations by executing TypeScript code with bun. The robinhood-for-agents npm package provides a full client library — just import it and call methods:
bun -e '
import { getClient } from "robinhood-for-agents";
const rh = getClient();
await rh.restoreSession();
// call any method, print results as JSON
const holdings = await rh.buildHoldings();
console.log(JSON.stringify(holdings, null, 2));
'
See client-api.md for all available methods and signatures.
MCP users: If you have the robinhood-for-agents MCP server configured, you may use MCP tools instead. See reference.md for tool parameters. MCP is optional — the client API above does everything the MCP tools do.
CRITICAL SAFETY RULES
- Always confirm before placing any order — show order preview, get explicit "yes"
- Show current price before order confirmation so user knows the cost
- Never place orders without user confirmation
- Fund transfers and bank operations are BLOCKED — refuse these requests
- Never place bulk cancel operations — cancel orders one at a time
BLOCKED Operations (never use)
- Bulk cancel operations
- Fund transfers (withdraw/deposit)
- Bank unlinking
Routing
| User Intent |
Domain File |
Example Triggers |
| Auth / login / connect |
setup.md |
"setup robinhood", "connect to robinhood", "robinhood login" |
| Portfolio / holdings / positions |
portfolio.md |
"show my portfolio", "my holdings", "account summary" |
| Stock research / analysis |
research.md |
"research AAPL", "analyze TSLA", "due diligence on NVDA" |
| Buy / sell / orders / cancel |
trade.md |
"buy 10 shares of AAPL", "sell my TSLA", "cancel my order" |
| Options / calls / puts / chains |
options.md |
"show AAPL options", "SPX calls", "0DTE options", "covered calls" |
Read the corresponding domain file for detailed workflow instructions.
Authentication Prerequisite
Before any data-fetching or trading operation, verify the session is active:
bun -e 'import { getClient } from "robinhood-for-agents"; const rh = getClient(); await rh.restoreSession(); console.log("ok");'
If it throws, follow setup.md to authenticate.
Client Method Inventory
| Method |
Category |
Description |
restoreSession() |
Auth |
Restore/validate session (throws if not authenticated) |
getAccountProfile() |
Account |
Account details and preferences |
getAccounts() |
Account |
All brokerage accounts |
buildHoldings(opts?) |
Portfolio |
Holdings with P&L, equity, buying power |
getCryptoPositions() |
Crypto |
Crypto holdings |
getCryptoQuote(symbol) |
Crypto |
Current crypto price |
getQuotes(symbols) |
Research |
Stock quotes (price, bid/ask, P/E) |
getFundamentals(symbols) |
Research |
Market cap, 52-week range, sector |
getNews(symbol) |
Research |
Recent news articles |
getRatings(symbol) |
Research |
Analyst buy/hold/sell ratings |
getEarnings(symbol) |
Research |
Quarterly EPS history |
getStockHistoricals(symbols, opts?) |
Research |
OHLCV price history |
findInstruments(query) |
Research |
Search stocks by keyword |
getChains(symbol) |
Options |
Option chain expirations |
findTradableOptions(symbol, opts?) |
Options |
Option instruments by expiration/strike/type |
getOptionMarketData(symbol, exp, strike, type) |
Options |
Greeks and pricing |
getIndexValue(symbol) |
Options |
Current index value (SPX, NDX, etc.) |
getMovers() |
Markets |
Top market movers |
orderStock(symbol, side, qty, opts?) |
Trading |
Place stock order |
orderOption(symbol, legs, price, qty, dir, opts?) |
Trading |
Place option order |
orderCrypto(symbol, side, amount, opts?) |
Trading |
Place crypto order |
getAllStockOrders() / getOpenStockOrders() |
Trading |
View stock orders |
cancelStockOrder(id) |
Trading |
Cancel stock order |
getStockOrder(id) |
Trading |
Check order fill status |
Important Notes
- Do NOT use
phoenix.robinhood.com — use api.robinhood.com endpoints only
- Multi-account is first-class: always ask which account when multiple exist
- Session tokens expire ~24h; the client auto-refreshes before requiring re-auth
Source: kevin1chun/robinhood-for-agents — distributed by TomeVault.
1---2name: robinhood-for-agents3description: Trade stocks, options, and crypto on Robinhood — dual mode (MCP tools or TypeScript client). Use when this capability is needed.4---56# robinhood-for-agents78AI-native Robinhood trading interface. **No MCP server required** — this skill works standalone via the TypeScript client API and `bun`.910## How to Use1112Run Robinhood operations by executing TypeScript code with `bun`. The `robinhood-for-agents` npm package provides a full client library — just import it and call methods:1314```bash15bun -e '16import { getClient } from "robinhood-for-agents";17const rh = getClient();18await rh.restoreSession();19// call any method, print results as JSON20const holdings = await rh.buildHoldings();21console.log(JSON.stringify(holdings, null, 2));22'23```2425See [client-api.md](client-api.md) for all available methods and signatures.2627> **MCP users:** If you have the `robinhood-for-agents` MCP server configured, you may use MCP tools instead. See [reference.md](reference.md) for tool parameters. MCP is optional — the client API above does everything the MCP tools do.2829## CRITICAL SAFETY RULES301. **Always confirm before placing any order** — show order preview, get explicit "yes"312. **Show current price** before order confirmation so user knows the cost323. **Never place orders without user confirmation**334. **Fund transfers and bank operations are BLOCKED** — refuse these requests345. **Never place bulk cancel operations** — cancel orders one at a time3536### BLOCKED Operations (never use)37- Bulk cancel operations38- Fund transfers (withdraw/deposit)39- Bank unlinking4041## Routing4243| User Intent | Domain File | Example Triggers |44|---|---|---|45| Auth / login / connect | [setup.md](setup.md) | "setup robinhood", "connect to robinhood", "robinhood login" |46| Portfolio / holdings / positions | [portfolio.md](portfolio.md) | "show my portfolio", "my holdings", "account summary" |47| Stock research / analysis | [research.md](research.md) | "research AAPL", "analyze TSLA", "due diligence on NVDA" |48| Buy / sell / orders / cancel | [trade.md](trade.md) | "buy 10 shares of AAPL", "sell my TSLA", "cancel my order" |49| Options / calls / puts / chains | [options.md](options.md) | "show AAPL options", "SPX calls", "0DTE options", "covered calls" |5051Read the corresponding domain file for detailed workflow instructions.5253## Authentication Prerequisite54Before any data-fetching or trading operation, verify the session is active:55```bash56bun -e 'import { getClient } from "robinhood-for-agents"; const rh = getClient(); await rh.restoreSession(); console.log("ok");'57```58If it throws, follow [setup.md](setup.md) to authenticate.5960## Client Method Inventory6162| Method | Category | Description |63|---|---|---|64| `restoreSession()` | Auth | Restore/validate session (throws if not authenticated) |65| `getAccountProfile()` | Account | Account details and preferences |66| `getAccounts()` | Account | All brokerage accounts |67| `buildHoldings(opts?)` | Portfolio | Holdings with P&L, equity, buying power |68| `getCryptoPositions()` | Crypto | Crypto holdings |69| `getCryptoQuote(symbol)` | Crypto | Current crypto price |70| `getQuotes(symbols)` | Research | Stock quotes (price, bid/ask, P/E) |71| `getFundamentals(symbols)` | Research | Market cap, 52-week range, sector |72| `getNews(symbol)` | Research | Recent news articles |73| `getRatings(symbol)` | Research | Analyst buy/hold/sell ratings |74| `getEarnings(symbol)` | Research | Quarterly EPS history |75| `getStockHistoricals(symbols, opts?)` | Research | OHLCV price history |76| `findInstruments(query)` | Research | Search stocks by keyword |77| `getChains(symbol)` | Options | Option chain expirations |78| `findTradableOptions(symbol, opts?)` | Options | Option instruments by expiration/strike/type |79| `getOptionMarketData(symbol, exp, strike, type)` | Options | Greeks and pricing |80| `getIndexValue(symbol)` | Options | Current index value (SPX, NDX, etc.) |81| `getMovers()` | Markets | Top market movers |82| `orderStock(symbol, side, qty, opts?)` | Trading | Place stock order |83| `orderOption(symbol, legs, price, qty, dir, opts?)` | Trading | Place option order |84| `orderCrypto(symbol, side, amount, opts?)` | Trading | Place crypto order |85| `getAllStockOrders()` / `getOpenStockOrders()` | Trading | View stock orders |86| `cancelStockOrder(id)` | Trading | Cancel stock order |87| `getStockOrder(id)` | Trading | Check order fill status |8889## Important Notes90- **Do NOT use `phoenix.robinhood.com`** — use `api.robinhood.com` endpoints only91- Multi-account is first-class: always ask which account when multiple exist92- Session tokens expire ~24h; the client auto-refreshes before requiring re-auth9394---95> Source: [kevin1chun/robinhood-for-agents](https://github.com/kevin1chun/robinhood-for-agents) — distributed by [TomeVault](https://tomevault.io).96<!-- tomevault:4.0:skill_md:2026-06-23 -->