Charles

What's new in Charles v1.6.0

Charles v1.6.0 removes the dashboard's chat and adds a CLAUDE.md guide, so you can change Charles in plain words with Claude Code.

The dashboard's chat is gone

The dashboard's chat is gone in v1.6.0, and so is the Anthropic key it needed. The rest of the dashboard works as before: the sliders, presets, Copy and Undo are where they were. How Charles trades doesn't change.

charles-keys no longer asks for an Anthropic key. If you added one before, Charles ignores it. You don't need to remove it.

The AI that reads headlines before a new pick is a separate check and works as before. It uses the optional GROQ_API_KEY in ~/charles/.env. Without that key, Charles skips the check.

Change Charles with Claude Code instead

Charles is plain Python on your own server, so you can change anything about it. To make a change in plain words, run Claude Code on that server. You describe the change, and it reads the code, makes the change and runs the tests.

Your Charles folder now has a CLAUDE.md. It's a guide for Claude Code that explains how the bot fits together and what's safe to change. It also sets some rules:

  • Stay on practice money.
  • Keep your keys out of the conversation.
  • Run the tests.
  • Keep your changes on a git branch, so charles-update still works.

There's a trade-off. Claude Code needs a Claude subscription or API credit, on your own bill. It also runs more comfortably on a 4 GB server than on the smallest size.

To start, connect to your server and run:

curl -fsSL https://claude.ai/install.sh | bash
exec bash
cd ~/charles
claude

Then ask it things like:

  • Why did Charles pick these stocks this month?
  • Backtest the plan with 6 picks instead of 4.
  • Add a card to the dashboard that shows my trades by month.
  • The dashboard won't load. Find out why and fix it.

Read what it changed before you keep it. The README and the setup guide both show how to start.

The Terms, the Privacy Policy and the Risk Disclosure now name the seller, Charles LLC, and give its address. The Terms are still version 2.0, so there's nothing new to accept. To see what you've accepted, run:

charles-terms --status

Set it upRead the code on GitHub