Taurus
Taurus turns plain-English investment intent into real, executable portfolios.
Core trick
An LLM emits a declarative StrategySpec with target weights that a deterministic engine validates and executes as paper orders.
Description
Taurus turns plain-English investment intent into real, executable portfolios. Type a thesis — "$5,000 in defence" or "long the AI infrastructure trade" — and Taurus reasons about the market, builds a weighted basket of US-listed ETFs and stocks using live broker data, and routes the order via Kite MCP.
The interface is a chat, not a ticker grid.
We're closing the gap between having a view and implementing it: tens of millions of US retail investors form views every day but freeze at the broker UI because the tools assume you already know which symbols to type. Robo-advisors are too generic, Bloomberg is too expensive, influencers are conflicted. Taurus is the expressive robo — the missing translation layer between intent and execution.
README excerpt
# Taurus
**Prompt-driven investing.** Describe a strategy in plain English (for example, "invest $4,000 in AI companies") and Taurus's AI agent designs a weighted stock basket, funds it from your paper account, executes the orders, and then manages the portfolio on a daily schedule.
**Live:** https://taurus-nu.vercel.app

## What it does
- **Natural-language strategy generation.** A Gemini-powered generator turns a prompt into a declarative `StrategySpec`: a basket of stocks with target weights, entry prices, a rebalance rule, and a cash reserve. Nothing is persisted until you confirm the spec ("ETF on demand").
- **Deterministic paper-trading engine.** A dependency-injected execution engine fills orders against real market prices, tracks positions, average entry price, and cash, and is idempotent per (strategy, account, day) so scheduler retries never double-fill.
- **Autonomous portfolio agent.** A daily cron drives a Gemini tool-calling loop (`get_quote`, `get_positions`, `get_cash`, `get_strategies`, `place_order`) that reviews each account and acts. Guardrails (max orders per run, max order notional, long-only) are enforced in code, not by the prompt.
- **Real market data.** Quotes come from Zerodha Kite Connect when a session token is present, with Alpha Vantage as the fallback source, behind a common `MarketDataProvider` interface.
- **Optional live execution.** With `KITE_LIVE_TRADING=true`, buy orders route to Zerodha as real