01, Overview

What is Aelix?

Least-privilege AI trading: on Robinhood you approve every order; on-chain the agent holds a scoped, revocable, expiring key. An AI research desk in Claude Code — two surfaces, one rulebook.

Least-privilege AI trading: on Robinhood you approve every order; on-chain the agent holds a scoped, revocable, expiring key. Aelix is an AI research desk in Claude Code with two surfaces and one rulebook. The headline surface is the brokerage desk: it connects to a Robinhood Agentic account over MCP and behaves like a small institutional desk — a team of specialist AI analysts screens your watchlist, debates each candidate, and hands you a one-click preview card. You approve; it places. It never places an order without your yes, and that isn't changing.

Every safeguard on the desk is structural, not aspirational, and a stranger can verify each one on their own laptop: the analysts hold no order tools in their .claude/agents/*.md frontmatter, an independent Risk Manager can veto any trade, orders sit behind a deny → ask → allow permission gate, the written guardrails in `CLAUDE.md` cannot be weakened by the agent, and the kill switch is one command: claude mcp remove robinhood-trading.

Two surfaces, one rulebook

The second surface is the on-chain vault on Robinhood Chain — explicitly labeled, operator-funded, and separate from the desk. There, the risk caps are compiled into a vault that reverts any order breaching them, and the agent's key is separately scoped by expiry, size, budget, trade count and ticker — a rejected order spends none of that budget. The desk is how we develop the rulebook; the vault is how that rulebook becomes code. Mechanics in Architecture.

The geographic split is a chosen constraint, not an accident: the desk is US, beta, equities; the Stock Tokens the vault trades are not for US persons and are price-tracking instruments, not shares. Two doors, one brand — not a funnel from one into the other.

The core idea

Retail traders rarely get a second opinion. Aelix gives you five: a Portfolio Manager who orchestrates the run, three analysts who gather evidence in parallel, and a Risk Manager who can kill a trade the analysts liked. The output of a run is almost never an order, it's a decision, most often *"stand aside."*

A team, not one prompt

MULTI-AGENT

Fundamental, Technical, and Macro/News analysts gather evidence at the same time. An independent Risk Manager reviews the synthesis and can veto it.

Human-in-the-loop

STRUCTURAL

Only the PM can place orders, and only after your explicit in-session approval. No order is ever placed on a schedule or on its own.

Prompt-injection-aware

CONTAINED

The news analyst treats every fetched page as untrusted data. Instruction-like text is quoted and flagged, never obeyed.

A real dashboard

READ-ONLY

A Robinhood-style UI mirrors the desk's state live from a snapshot the PM writes after every run. It cannot place orders.

What a desk run looks like

You talk to the desk in plain language. It senses the account, screens your watchlist, researches the survivors with three analysts, synthesizes a candidate trade tied to a written rule, risk-checks it, and stops at a preview card. The full pipeline is documented in The Desk Run.

One desk run, end to end
YOU ──▶ PORTFOLIO MANAGER (main Claude Code session · only role that can order)
              │
   1. SENSE   ├─▶ read portfolio + positions (Agentic account only, read-only)
   2. SCREEN  ├─▶ Technical Analyst runs scans ─▶ candidate shortlist
   3. RESEARCH├─▶ Fundamental ┐
              │   Technical    ├─ in parallel, read-only ─▶ 3 verdicts
              │   Macro/News   ┘  (news is injection-isolated)
   4. SYNTH   ├─▶ propose a trade tied to a rule in strategies/
   5. RISK    ├─▶ Risk Manager ─▶ APPROVE / CHANGES / VETO   (veto stops here)
   6. PREVIEW ├─▶ review_equity_order ─▶ build a preview card
   7. APPROVE ├─▶ ⏸ present to YOU and wait                  ← the desk stops here
   8. EXECUTE ├─▶ only on your "yes": place_equity_order (still gated by 'ask')
   9. CONFIRM └─▶ verify the fill · write desk-state.json · log to JSONL

Steps 1–6 are research and produce no order. The desk's standard output is the preview card at step 7, it stops there until you say go.

Bot that YOLOs vs. the Aelix desk

A bot that YOLOs
Auto-executes on a hunch
One black-box prompt
No independent risk check
Acts on hype it reads online
Can reach your whole balance
The Aelix desk
Stops at a preview, you place the order
A team of four specialist analysts
Independent risk manager with veto
Quotes suspicious “instructions”, ignores them
Isolated Agentic budget only

What's in the box

ComponentWhereWhat it does
Portfolio Managermain Claude Code sessionOrchestrates the run; the only role that can place orders, after your approval.
The desk team.claude/agents/*.mdFour least-privilege sub-agents: three analysts + a Risk Manager with veto.
GuardrailsCLAUDE.md + .claude/settings.jsonThe operating contract plus a deny → ask → allow permission gate.
Strategiesstrategies/*.mdWritten risk caps and entry/exit rules the Risk Manager enforces.
Dashboardui/ (Vite + React)Read-only mirror of desk-state.json. Cannot trade.
Backtesterbacktest/ (Node ESM)Offline, dependency-free sanity check of strategy logic.
Audit loglogs/ + tools/desk-log.mjsAppend-only JSONL trail of every desk decision.

Who it's for

  • Builders studying multi-agent orchestration, MCP, and human-in-the-loop design on a real, high-stakes surface.
  • Retail traders who want a structured second opinion, and a desk that mostly tells them to wait.
  • Anyone who wants agent guardrails they can read, audit, and edit, not trust blindly.
Equities onlyLong onlyUSDHuman-in-the-loopMCPClaude Code nativeBeta