Charles

What's new in Charles v1.12.0

Fetch can now run a rule you describe to Claude Code, and a new test shows how that rule would have done on past minutes.

Give Fetch your own rule

Fetch is the add-on that follows one coin and one stock you pick, trade by trade, with the reason for every move. It runs its built-in rule unless you choose your own. In v1.12.0, you can choose your own.

You describe the rule to Claude Code in plain words, and it writes fetch_my_rule.py. The repo includes a starting point, fetch_my_rule.example.py. Updates never touch your file, so a new release won't overwrite your rule.

  1. Turn Fetch on, if it isn't already:
charles-addon on fetch
  1. Open Claude Code in the Charles folder:
cd ~/charles
claude
  1. Describe the rule. For example: "Give Fetch my own rule: buy after three rising minutes in a row. Test it on past prices first."
  1. Read what it changed and the test result before you keep it.

Claude Code isn't part of Charles. It needs a Claude subscription or API credit on your own bill, and a bigger server than the smallest size. The setup guide shows how to resize a Droplet and move back down later.

Test a rule before Fetch uses it

A new command shows how a Fetch rule would have done on past minutes, after fees:

python fetch_test.py

The result doesn't show the rule alone. It sits next to two comparisons:

  • Simply holding the same thing over the same span.
  • Random entries with the same exits. Same way out, but buying at random moments.

It also splits the span in two and shows each half on its own.

Each comparison answers its own question. If your rule looks about the same as random entries with the same exits, your entries aren't doing the work. If one half looks very different from the other, a single stretch of the past may be carrying the result. That's the point of the test: to show where a rule is weak before you rely on it.

It's still the past. A rule that tested well on old minutes says nothing certain about the next ones.

The guide Claude Code reads, CLAUDE.md, now covers this too. It tells Claude Code to test a rule before Fetch uses it, and to show you the whole result, not just the parts that look good.

What stays the same

Nothing changes until you choose your own rule. Without fetch_my_rule.py, Fetch keeps running its built-in rule.

The stock, crypto and Kalshi bots trade the same way they did before this release.

Fetch stays practice money. It uses your Alpaca keys only for the stock's prices, never places an order, and can't connect to a real account. Pause and the ticker are still on its dashboard tab.

Set it upRead the code on GitHub