Skip to main content

agenthood

Robinhood trading agent: talk to your portfolio in plain English.

https://github.com/user-attachments/assets/ad8595ab-e735-4967-a095-e49b18a33f63

pip install agenthood
agenthood setup

setup walks you through Robinhood OAuth and LLM selection. Config saves to ~/.agenthood/config.json. After that, just run agenthood.

Quick start

import asyncio
from agenthood import AgentHood

async def main():
    async with AgentHood() as agent:
        print(await agent.chat("What are my open positions?"))
        print(await agent.chat("Get me a quote for NVDA and AAPL"))
        print(await agent.chat("Review a limit buy of 5 AAPL at $210"))

asyncio.run(main())

chat() sends a prompt and returns the response. The agent picks the right Robinhood tools, fetches data, and explains what it found.

CLI

agenthood                          # interactive REPL
agenthood "What is TSLA at?"       # one-shot
agenthood --live                   # real orders
agenthood --stream                 # token-by-token

Inside the REPL, dot commands skip the LLM entirely:

.portfolio          show portfolio (alias: .p)
.positions          show open positions (alias: .pos)
.quote NVDA         quick price quote (alias: .q NVDA)
.analyze PYPL       multi-source analysis
.help               all commands

Direct tool calls

import asyncio, json
from agenthood import AgentHood

async def main():
    async with AgentHood() as agent:
        result = json.loads(await agent.call_tool("robinhood_get_equity_quotes", {
            "symbols": ["NVDA", "AAPL"]
        }))
        print(result["data"]["results"])

asyncio.run(main())

call_tool(name, params) bypasses the LLM and calls a Robinhood MCP tool directly. 53 tools available.

Safety

from agenthood import AgentHood, AgentHoodConfig

cfg = AgentHoodConfig(
    dry_run=False,           # default True -- blocks place_* tools
    max_order_value=1000,    # hard cap per order in USD
    allowed_symbols=["AAPL", "NVDA", "TSLA"],
)

Safety hooks run at the tool-call level. The LLM cannot talk its way around them.

Config

All config lives in ~/.agenthood/:

~/.agenthood/
  config.json       # model, api keys, safety settings
  history           # readline history
  sessions/         # saved chat sessions
  watches.json      # price alerts
  triggered.db      # alert history
  logs/             # daemon logs
  daemon.pid        # background process
{
  "model": "meta-llama/llama-3.3-70b-instruct:free",
  "api_base": "https://openrouter.ai/api/v1",
  "api_key": "sk-or-...",
  "analyze_model": "llama-3.3-70b-versatile",
  "analyze_api_base": "https://api.groq.com/openai/v1",
  "analyze_api_key": "gsk_...",
  "dry_run": false,
  "max_order_value": 1000,
  "max_turns": 20
}

Robinhood token is auto-discovered from ~/.mcp-auth/. No manual setup needed after the first npx mcp-remote auth flow.

Multi-provider routing

{
  "model": "google/gemma-4-26b-a4b-it:free",
  "model_fallbacks": ["nvidia/nemotron-3-super-120b-a12b:free"],
  "analyze_model": "llama-3.3-70b-versatile",
  "analyze_api_base": "https://api.groq.com/openai/v1"
}

model handles chat. analyze_model handles .analyze -- Groq runs analysis in ~1s vs ~14s on free tier. Dot commands use no model at all.

Autonomous scanning

cfg = AgentHoodConfig(scan_interval=300)  # every 5 minutes

The agent wakes up on a schedule, checks for positions down >5%, scans for RSI breakouts, and records findings.

License

MIT Hemanth.HM

Metadata

Release files for agenthood 0.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agenthood 0.3.4
File Size Uploaded
agenthood-0.3.4.tar.gz 71.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agenthood 0.3.4
File Interpreter ABI Platform
agenthood-0.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 157.8 kB

Release files / agenthood-0.3.4.tar.gz

Download URL agenthood-0.3.4.tar.gz
Size 71.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0efabafb83f20b269080e7455c76eff32ddf8b83227516cde74452450922bddf
BLAKE2b-256 checksum
How to use checksums
d2d78e7a787601ad6ac635c60fb5a1a63c00e1cec55e041efcbacf67ac7daa49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / agenthood-0.3.4-py3-none-any.whl

Download URL agenthood-0.3.4-py3-none-any.whl
Size 86.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5adfe15c6586466f563489dfd0eedbdedfed9ed6a08c703af77cf9f31dda9b1
BLAKE2b-256 checksum
How to use checksums
863af828ad19b9a875cedb893c1e8cdd9d66404a31e103dcf96d9a594487bdc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.4 This release

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page