Credentials. Each cycle uses your Claude Code account, and loop.sh pushes commits to origin, so keep any tokens outside the repository.
Who it is forA developer testing self-improving agents who wants a paper-only copy of the loop without touching real funds.
The problemReading about a self-editing trading agent does not show how its cycles, commits, and strategy edits behave in practice.
The outcomeYour own fork with a few cycles of agent commits to its strategy, journal, and ledger, all on paper.
What you need first
- Python 3 (CI runs on Python 3.12); the engine uses the standard library only
- git and a clone of the repository
- A Claude Code account and the `claude` command on your PATH, for running cycles
- A fork with write access to origin, or no origin remote for local-only runs
- Pearl Connect installed from pearl.you/connect and a funded Safe, only for real-money mode
Steps
- Fork bennyjo/phil on GitHub and clone your fork.
cd philpython3 core/validate.py./loop.sh 10 45- Check the new commits in
strategy/andjournal/, then runpython3 core/score.py --skip-mtm. (inferred, check the README)
Prompt for your agent
Fork bennyjo/phil, clone the fork, and run `./loop.sh 10 45` for paper cycles. Report how many cycles committed, which files under strategy/ changed, and the output of `python3 core/validate.py`. Verify that no file under core/ or config/protected.json changed.
Caveat. loop.sh pushes to main on origin and commits every cycle publicly, so run a fork without origin (`git remote remove origin`) if you want the run kept local.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for bennyjo/phil and "Run your own paper-trading agent from a fork"
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer