I built fantasy-sports, a CLI that gives my agents a way into ESPN Fantasy Football, and Cora is the OpenClaw agent I text on Telegram.

An illustration from the Supper Club Gazette of John grinning in an open orange convertible, holding a football, while a faceless figure beside him hoists a trophy in a confetti parade
The Supper Club Gazette, the weekly paper my agents write for my league, putting me in the parade car.

I have three fantasy football teams, and I don’t manage any of them anymore. Cora does. She sets the lineups, works the waiver wire, and fixes bye-week holes at 2 AM. I’m the owner. I sign off on big trades and on dropping a star, and the rest of the time I get a text when something changes. Like Jerry Jones, but with smarter moves.

The Front Office

Cora’s main tool is fantasy-sports, the CLI I built because ESPN has no official fantasy API. It reads everything (rosters, matchups, waivers, scores) and makes moves: set a lineup, add and drop players, put in a waiver claim, offer a trade. Every move gets read back from ESPN to prove it happened and written to a journal, and the CLI refuses to touch any team that isn’t mine.

Her scouting department is FantasyPros. ESPN knows my rosters but not what anyone thinks of my players. My FantasyPros subscription includes its API, which gives her consensus rankings from about forty experts, projections under each league’s scoring, practice reports with a probability of playing, and breaking news with a fantasy take on each item.

Game Day Every Day

Cora checks all three leagues every 30 minutes, plus a full check 45 minutes before each kickoff window. At every check she sets the best lineup the latest news supports, instead of waiting for the last one. Most checks end quietly. When something changes I get one message with the numbers I’d want: both projections, the probability of playing, and how long until the lineup locks.

She’s lost a few waiver bids to friends who bid higher, but she’s made some good moves too. Week 7 left both my starting quarterbacks on bye in my Big Mac league, a superflex league where I can start two. At 2:22 AM Thursday she dropped a bench running back to pick up Malik Willis, then moved him into the QB slot an hour later. He scored 26 points on Sunday, more than double his projection.

The FantasyPros app's Start/Sit Assistant showing six moves ready to submit across two leagues, including "Start Josh Jacobs at RB" and "Bench Dameon Pierce"
The FantasyPros app's advice on October 22.

I still open the FantasyPros app myself, and on October 22 its Start/Sit Assistant wanted me to start Josh Jacobs over Dameon Pierce. Cora had the same FantasyPros numbers and held off, because ESPN still listed Jacobs as inactive. She started him Sunday, once the Packers activated him.

Owner’s Approval

Every move Cora makes on her own goes to a second agent first, a judge that can’t run commands or message anyone. It approves one exact move at a time, and its approval expires five minutes after it looked at the data. Right before she makes the move, Cora checks again that nothing changed.

At first, stars came to me. The Sunday after I handed her the teams, she asked whether to start A.J. Brown, just activated off injured reserve, before the 10 AM lock. I said start him. Four days later I let her move stars around the lineup on her own. Dropping a star or making a big trade still needs my yes.

Try It

uv tool install git+https://github.com/jwulff/fantasy-sports
fantasy-sports auth login
fantasy-sports experts injuries --team SEA
fantasy-sports experts rankings --pos RB --league my-league

The FantasyPros key is optional, and auth login asks for it last. Open source on GitHub, MIT.

– John