CHRLS ▲ AUTONOMOUSSPY +0.42%NVDA +1.18%AAPL −0.31%ENGINE ● ONLINETSLA +2.04%LICENSE ● OPEN SOURCEUPTIME 99.9%COST < $20/mo* CHRLS ▲ AUTONOMOUSSPY +0.42%NVDA +1.18%AAPL −0.31%ENGINE ● ONLINETSLA +2.04%LICENSE ● OPEN SOURCEUPTIME 99.9%COST < $20/mo*
Free & open source · run locally or self-hosted

Your own AI trading bot, working 24/7 while you sleep.

Charles screens the market, reasons over each candidate, and places trades autonomously. Run it locally on your own machine, or self-host it on a server to run 24/7. Deploy in about 20 minutes and watch it from a live dashboard.

Paper-trading mode by default — no real money at risk. Switch to live trading anytime by connecting a funded Alpaca account. Free and open source — yours to run, read, and modify.

root@charles:~ — bash
charles-start
✅ Charles started
📊 Dashboard: http://your-server:8501
 
charles-logs
09:30:02 INFO 🌅 Morning routine…
09:30:03 INFO 🔍 Screener scanning 100 stocks…
09:30:09 INFO 🔍 Screener ranked 10 candidates
09:30:11 INFO 📈 PAPER BUY NVDA · 4 sh · $847.20 · conf 0.84
09:30:11 INFO 📱 Telegram alert delivered
 
charles-status
● running · uptime 6d 4h · 0 errors
What Charles does

An entire trading desk, in one process.

No clicking, no chart-staring. Charles handles the full loop — screen, reason, decide, log, alert — and keeps doing it whether you're watching or not.

🧠

Reasoning engine

Every candidate is reasoned over by a large language model. The bot explains why it acts — with a confidence score and written rationale logged for every decision.

🔍

Autonomous screener

Charles builds its own watchlist each session — no hand-fed tickers. It scans, ranks, and picks the strongest setups on its own.

🛡️

Paper or live trading

Runs on Alpaca's paper API by default — zero money at risk while you evaluate. Connect a funded Alpaca account anytime to switch to live trading.

📱

Telegram alerts

Every trade, every error, every morning routine pings your phone instantly. You always know what Charles is doing.

📊

Live dashboard

A Streamlit dashboard on port 8501 — open it from any device, anywhere, to see positions, P&L, and the decision log.

24/7 + self-healing

Installed as a systemd service: it auto-starts on reboot and restarts itself on crash. Set it once and forget it.

Live dashboard

See everything, from any device.

Charles ships with a full Streamlit dashboard accessible at port 8501 on your server. Open it from any browser — desktop, tablet, or phone — to watch positions, signals, and decisions in real time. These are real screenshots from a live running instance.

Charles Dashboard — Equity tab
Charles dashboard equity view showing portfolio value, total return, equity curve and sidebar

Equity tab — Portfolio value, total return, cash, buying power, and a full equity curve with trade markers. The left panel shows market regime, today's P&L, kill switch threshold, and the auto-screened watchlist.

Charles Dashboard — Signals tab
Charles dashboard signals tab showing RSI, MACD, volume and earnings data for each stock

Signals tab — Every stock on the watchlist with live RSI (14 and 7-day), MACD crossover, Bollinger Band position, volume ratio, volume confirmation, multi-timeframe buy/sell flags, ATR%, and upcoming earnings. This is the raw signal data Charles reasons over before every decision.

Dashboard updates every 15 seconds automatically. Access it from any device at http://YOUR_SERVER_IP:8501

How it works

From download to live bot in four steps.

Download the bot, deploy it to your own server, and run it. No license, no subscription, no gatekeeping — the entire codebase is yours.

1

Download

Grab the Charles bundle — it's free. No account, no payment, no catch.

2

Deploy

Spin up a DigitalOcean droplet — new accounts get $200 free — and run one deploy script. Full walkthrough in the setup guide.

3

Configure

Add your free API keys (Alpaca, Groq) to a .env file. Two minutes.

4

Trade

charles-start — and it's live. Watch the dashboard or just read the Telegram alerts.

Download

Free, open source, yours to run.

Charles is a free and open research project. Download the full bot, deploy it to your own server, read every line of code, and modify it however you like. No subscription, no license key, no gatekeeping.

★ Charles — Open Source
Free

The complete autonomous trading bot. Run it on your own server in about 20 minutes.

  • Full source code — read & modify freely
  • 100-stock autonomous screener
  • LLM reasoning engine + technical signals
  • Live dashboard & Telegram alerts
  • Paper trading by default, live optional
  • Self-hosted — your server, your data
Download Now ↓
Please read. Charles runs in paper (simulated) mode by default — no real-money orders are placed until you explicitly connect a funded live account. It makes no profit guarantees in any mode. Nothing here is financial advice. Markets carry risk; past or simulated performance does not predict real results. This is a free research project — you are responsible for how you use it.
How Charles trades

A disciplined swing trader, not a gambler.

Charles isn't a day trader chasing minute-by-minute moves. It's a swing trader — holding positions for days to weeks, entering on high-conviction signals, and exiting with a plan. Here's how it thinks.

🔍

Dynamic screening

Every morning and at 1 PM, Charles scores 100 liquid stocks across momentum, volume, RSI, 50-day MA breakout, relative strength vs SPY, and 52-week proximity. The top 10 become the day's watchlist — no manual input required.

📐

Multi-signal entry

Charles only enters a position when multiple signals align: price breaking above the 50-day MA, RSI in the momentum zone (45–68), MACD confirming, volume above average, and the stock outperforming the broader market.

🌡️

Market regime awareness

Before placing any buy, Charles checks the overall market temperature — SPY trend, choppiness, and volatility. In a confirmed downtrend it suppresses new entries entirely and focuses on protecting existing positions.

🧠

Reasoned decisions

Every candidate passes through a large language model that reads the full picture — technicals, news sentiment, position context, and hold duration — before returning a BUY / SELL / HOLD with a confidence score and written rationale.

🛡️

Layered risk controls

Dynamic trailing stops (tighter on losers, wider on winners), earnings exit protection, a 7-day stale-trade cutoff, a daily loss limit kill switch, and a pre-market gap filter all run automatically.

🔄

Self-improving

Charles tracks its own win rate over closed trades and automatically tightens or loosens its confidence threshold based on recent performance — adapting without any manual tuning.

Default mode is paper trading. All of the above runs on simulated orders with zero real money at risk. When you're ready to trade live, connecting a funded Alpaca account is a single key swap in your .env file.