02, Quickstart

Quickstart

The fastest path from clone to first desk run, private repo, connect the Robinhood MCP over OAuth, fund a small Agentic budget, set your caps, and drive the desk in plain language.

This is the shortest route from an empty folder to your first desk run. You'll make the repo private, clone it, connect the Robinhood Trading MCP server over OAuth, fund an isolated Agentic account with a small dedicated budget, write your risk caps, and then talk to the Portfolio Manager in plain language. The desk researches, risk-checks, and stops at a preview card, you approve; it places.

Every step below is grounded in the repo's own `README.md` and `docs/SETUP.md`. For the full, annotated walkthrough, refining permissions, verifying tool names, tightening guardrails, read Installation & Setup after you finish here.

Before you start

You need four things: a Robinhood individual account in good standing, a desktop device, Claude Code installed and logged in, and a funding amount you've decided in advance.

  • Robinhood individual investing account, in good standing. The desk connects on top of it and trades only inside a separate Agentic account.
  • A desktop device, you can only open the Agentic account and complete authentication on desktop.
  • Claude Code, installed and logged in, the desk runs entirely inside a Claude Code session.
  • A small dedicated budget, decided up front, this is the most the agent can ever lose. Start small.

The funding cap limits loss; it does not make a strategy sound. You stay responsible for monitoring.

From clone to first run

The whole path is seven moves. Each is expanded with the exact commands below.

Step 1

Make the repo private

Before pushing anything anywhere, set the repository to private. It holds guardrails and strategy notes, never secrets, and never the OAuth token.

Step 2

Clone it

A plain git clone is enough, the shipped .mcp.json already declares the robinhood-trading server at project scope.

Step 3

Open, trust, authenticate, fund

Launch claude, trust the project MCP server, run /mcp to authenticate over OAuth, then create and fund the Agentic account.

Step 4

Set your caps

Write your risk caps in `strategies/`. If a cap is missing, the Risk Manager VETOes every trade.

Step 5

Start the dashboard

Run the read-only dashboard so you can watch the desk's state as it runs.

Step 6

Drive the desk

Ask the PM in plain language to screen your watchlist or run the desk on specific tickers.

Step 7

Approve at the preview

The desk stops at a preview card. You approve in-session; only then does it place, still gated by the ask rule.


1 · Make the repo private

This repository holds the guardrails, strategy notes, agents, dashboard, and setup docs, never secrets, and never the OAuth token (those live outside the repo). Even so, set it to private before you push anything. Do this first.

2 · Clone the repo

Clone your private repo. The shipped .mcp.json already defines the Robinhood Trading MCP server at project scope, so you don't need a separate claude mcp add step, the plain clone is enough.

bash
git clone <your-private-repo-url> rh-trading-agent
cd rh-trading-agent

Prefer to register it by hand? claude mcp add robinhood-trading --transport http https://agent.robinhood.com/mcp/trading adds the same HTTP server.

3 · Open, trust, authenticate, and fund

Open the project with claude. The first time, Claude Code asks whether to trust the project-scoped MCP server from .mcp.json, approve robinhood-trading (it's already pre-listed under enabledMcpjsonServers in .claude/settings.json). Then, inside the session, run /mcp, pick robinhood-trading, and authenticate: a browser opens Robinhood's OAuth consent screen (the agent never sees your password), with a verification step in the Robinhood mobile app. Once connected, Robinhood's onboarding auto-opens so you can create your Agentic account and fund it with your dedicated budget.

one-time setup
claude                  # 1. open the project; trust the robinhood-trading server
#  /mcp                 # 2. in-session: pick robinhood-trading -> OAuth in browser
#                       #    then complete the verify step in the Robinhood mobile app
#  (onboarding opens)   # 3. create the Agentic account, fund your dedicated budget
cp .env.example .env    # 4. record your Agentic account number in .env

To see the real tool names once connected, run claude mcp get robinhood-trading (or /mcp in-session). By default every Robinhood tool call is gated by an ask rule on mcp__robinhood-trading__*, that's intentional for the first runs. Refining that gate is covered in Configuration.

4 · Set your strategy caps

CLAUDE.md requires every proposed trade to map to a written rule in `strategies/`, and the Risk Manager reads that folder before clearing any trade. If a cap is removed, blank, or left as TODO, the Risk Manager VETOes, so fill these in before you trade. The defaults below are conservative starting values you own and edit; they're illustrative, not advice.

CapDefaultPurpose
Per-trade cap15% of equityHard ceiling on any one place_equity_order.
Max concentration25% of equity in one symbolBlocks over-concentration; includes all adds.
Max open positions6Forces diversification in a small account.
Max daily orders4Throttles churn; counts buys + sells per day.
Per-position stop-loss−8% from average entryEvery entry must define this before it's placed.
Daily loss halt−5% account day P&LStop, report, and ask for the rest of the day.
Cash buffer≥10% of equity in cashNever fully deploy.

Default risk caps from strategies/README.md, edit to match your budget.

5 · Start the dashboard

The dashboard is a read-only mirror, not a controller, it visualizes the desk-state.json snapshot the PM writes after each run and cannot place orders. Start it in a separate terminal.

bash
cd ui
npm install
npm run dev          # opens http://localhost:5180

A demo public/desk-state.example.json ships so the UI looks alive on a fresh clone; your first live run replaces it. The app polls the snapshot every ~5s and cache-busts each poll, so writes appear within about five seconds without a reload.

6 · Drive the desk

You talk to the Portfolio Manager, the main Claude Code session, in plain language. It fans out to the three analysts in parallel, routes their verdicts through the Risk Manager, and comes back with a preview. Try prompts like these.

example PM prompts
Screen my watchlist and bring me the top 2 ideas with full team analysis.

Run the desk on AAPL and NVDA, fundamental, technical, macro, then
risk-check a small starter position in the better one.

After the desk run, write the state to ui/public/desk-state.json.

The desk senses the account, screens your watchlist, researches the survivors with three analysts, synthesizes a candidate tied to a written rule, and risk-checks it. Those steps produce no order. See The Desk Run for the full pipeline and The Desk Team for who does what.

Kill switch

You can cut the desk off from your broker at any time, either disconnect the MCP from the Robinhood app, or remove the server locally.

bash
claude mcp remove robinhood-trading

Common gotchas

Restart after editing agents
The sub-agents in .claude/agents/ load when Claude Code starts. After adding or editing them, restart the session so roles like fundamental-analyst are recognized with their restricted tool sets.
Permission order is deny → ask → allow
First match wins, and a matching ask rule prompts even when a more specific allow also matches. Keep order-placing tools in ask (or deny while testing), not overridden by a broad allow. Details in Configuration.
Unset caps mean VETO
If strategies/ caps are missing, blank, or TODO, the Risk Manager blocks every trade. Fill them in before your first run, see Strategies.
The dashboard can't trade
The UI at http://localhost:5180 only mirrors desk-state.json. Approval and execution happen only in the Claude Code session. More in Dashboard.
Private repoDesktop onlySmall budget = max losslocalhost:5180Human-in-the-loopBeta