A conversational CLI copilot for Fantasy Premier League, powered by Claude
Project description
FPL Copilot
A conversational CLI copilot for Fantasy Premier League. Chat with Claude to analyze your team, scout players, check fixtures, and execute transfers — all from your terminal.
Think of it like Claude Code, but for FPL.
Prerequisites
- Python 3.11+
- An Anthropic API key
- Your FPL team ID (find it in the URL when viewing your team on the FPL website)
- (Optional) FPL login credentials for executing transfers
- (Optional) Firecrawl API key for enhanced player news
Installation
git clone git@github.com:amit3992/fpl-copilot.git
cd fpl-copilot
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium
Copy .env.example to .env and fill in your keys:
cp .env.example .env
Usage
python cli.py
What you can ask
- "Show me my team" — view your full squad with form, price, and status
- "How's my budget looking?" — bank balance, free transfers, available chips
- "Any injury news?" — check which of your players are flagged
- "Tell me about Palmer" — detailed stats, recent form, upcoming fixtures
- "Who should I replace Salah with?" — top 5 ranked alternatives within budget
- "Is it worth taking a hit to bring in Haaland for Watkins?" — projected net gain analysis
- "What are Arsenal's next 5 fixtures?" — fixture difficulty ratings
- "Transfer out Salah, bring in Palmer" — stages the transfer for your approval
- "Show my transfer history" — past transfers from previous sessions
Commands
| Command | Description |
|---|---|
/quit |
Exit the CLI |
/clear |
Clear conversation history |
/history |
Show conversation history |
/debug |
Toggle verbose tool call logging |
Environment Variables
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
Yes | Your Anthropic API key |
FPL_TEAM_ID |
Yes | Your FPL team ID |
FPL_EMAIL |
No | FPL login email (needed for transfers) |
FPL_PASSWORD |
No | FPL login password (needed for transfers) |
FIRECRAWL_API_KEY |
No | Firecrawl API key for enhanced news scraping |
Architecture
cli.py → Chat loop (Rich UI + Anthropic API)
core/fpl.py → Async FPL API wrapper (aiohttp)
core/scoring.py → Player scoring and ranking logic
tools/team.py → Team, budget, and player stat tools
tools/news.py → Injury news and player availability
tools/analysis.py → Transfer recommendations and fixture analysis
tools/browser.py → Playwright-based login and transfer execution
tools/registry.py → Anthropic tool definitions and handler mapping
db/schema.sql → SQLite schema for session state and transfer history
Claude handles all orchestration — no LangGraph or agent frameworks. The CLI sends your message plus the tool definitions to Claude, which decides what to call based on your question. Transfers require explicit y confirmation before executing.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fpl_copilot-0.1.0.tar.gz.
File metadata
- Download URL: fpl_copilot-0.1.0.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e7a4d1a81e1689f6e6e5e0ceeaabb183ddbd3602a2cc3f27d9eceded1b87f02
|
|
| MD5 |
28a819f7046348b23be1dd30c10fb048
|
|
| BLAKE2b-256 |
2306e04d4f32bcd6be310016ac35e6a95292f0479fc8375bdaddc172751181db
|
File details
Details for the file fpl_copilot-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fpl_copilot-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b05632c992c9fb65c71497dd9604997910858a85f462b8e48fef9af9e7f67991
|
|
| MD5 |
b35847098462b6245e04b67539357954
|
|
| BLAKE2b-256 |
172ec36a449477935a73c9251c402288afc5e5da5a1d351cb1ff9283172c49d2
|