A Bun-based command line tool for querying MeetCal lifting data from Convex.
Install the released CLI with Homebrew:
brew tap memohnsen/tap
brew install meetcalInstall dependencies for local development:
bun installThe install step also runs bunli generate, which refreshes generated Bunli command files.
During development, run the CLI directly from TypeScript:
bunli dev search --name "Maddisen Mohnsen"You can also pass the athlete name as positional arguments:
bunli dev search Maddisen MohnsenThe search command prints the athlete's competition PRs and meet results in tables.
Print the list of available commands and examples.
meetcal helpSearch for an athlete by name.
meetcal search --name "First Last"
meetcal search First LastOptions:
--name,-n: Athlete name to search for.
Search adaptive American records by gender.
meetcal adaptive --gender Men
meetcal adaptive WomenOptions:
--gender,-g: Gender to search for.
Search USAW A/B standards for an age group and gender.
meetcal standards --age Senior --gender Men
meetcal standards U17 WomenOptions:
--age,-a: Age group to search for.--gender,-g: Gender group to search for.
Search qualifying totals for an age group, gender, and event.
meetcal qualifyingTotals --age Senior --gender Men --event Nationals
meetcal qualifyingTotals --age U17 --gender Women --event "AO Finals"Options:
--age,-a: Age group to search for.--gender,-g: Gender group to search for.--event,-e: Event to search for.
Search records for an age group, gender, and federation.
meetcal records --age Senior --gender Men --federation USAW
meetcal records U17 Women IWFOptions:
--age,-a: Age group to search for.--gender,-g: Gender group to search for.--federation,-f: Record federation. Supported values includeIWF,USAW,USAMW, andUMWF.
Search meet entries by meet name, session number, and platform.
meetcal meet --name "2026 Virus Weightlifting Series 2, Powered by Rogue Fitness" --sessionNumber 1 --sessionPlatform Red
meetcal meet "2026 Virus Weightlifting Series 2, Powered by Rogue Fitness" 1 RedOptions:
--name,-n: Meet name to search for.--sessionNumber,-s: Session number to search for.--sessionPlatform,-p: Session platform to search for.
Search full results and event make-rate stats for a meet.
meetcal meetResults --name "2026 Virus Weightlifting Series 2, Powered by Rogue Fitness"
meetcal meetResults "2026 Virus Weightlifting Series 2, Powered by Rogue Fitness"Options:
--name,-n: Meet name to search for.
Search WSO records for an age group, gender, and WSO region.
meetcal wsoRecords --age Senior --gender Men --wso Carolinas
meetcal wsoRecords U17 Women CarolinasOptions:
--age,-a: Age group to search for.--gender,-g: Gender group to search for.--wso,-w: WSO region to search for.
Search international rankings for an age group, gender, and meet.
meetcal intlRankings --age Senior --gender Men --meet Worlds
meetcal intlRankings --age U17 --gender Women --meet "Pan Ams"Options:
--age,-a: Age group to search for.--gender,-g: Gender group to search for.--meet,-m: Meet to search for.
Search USAW national rankings for a weight class.
meetcal natRankings --weightClass "Open Men's 110kg"
meetcal natRankings --weightClass "Junior Women's 77kg"Options:
--weightClass,-a: Weight class to search for.
Analyze club performance stats for a meet, including averages, make rates, PRs, and medals.
meetcal clubResults --club "POWER AND GRACE PERFORMANCE." --meet "2025 UMWF World Championships"
meetcal clubResults "POWER AND GRACE PERFORMANCE." "2025 UMWF World Championships"Options:
--club,-c: Club name.--meet,-m: Meet name.
Get meet results and summary stats for a WSO at a given meet.
meetcal wso --meet "2026 Masters National Championships & National University Championships" --wso Carolina
meetcal wso "2026 Masters National Championships & National University Championships" CarolinaOptions:
--meet,-m: Meet name.--wso,-w: WSO region.
Export Carolina WSO records as an OWLCMS CSV.
meetcal wsoOWLCMSOutput:
- Writes
wsoOWLCMS.csvto~/Downloads.
Export USAMW PDF results as Convex lifting_results seed data.
meetcal usamwResultsScraper --meet "2026 USA Masters Nationals" --date 2026-03-29 --pdf "https://..."
meetcal usamwResultsScraper --meet "2026 USA Masters Nationals" --date 2026-03-29 --pdf "https://..." --pdf "https://..."
meetcal usamwResultsScraper "2026 USA Masters Nationals" 2026-03-29 "https://..."Options:
--meet,-m: Meet name.--date,-d: Meet date inYYYY-MM-DDformat.--adaptive,-a: Mark results as adaptive.--pdf,-p: PDF URL. Repeat this flag for multiple PDFs.
Output:
- Writes
usamwResultsScraper.tsto~/Downloads.
Build compressed standalone archives for all configured platforms:
bunli buildExpected release artifacts:
dist/darwin-arm64.tar.gz
dist/darwin-x64.tar.gz
dist/linux-arm64.tar.gz
dist/linux-x64.tar.gz
dist/windows-x64.tar.gzCommon checks:
bun run typecheck
bun testProject layout:
src/index.ts: CLI entry point. Registers commands with Bunli.src/commands/: Command implementations.src/types/: Shared TypeScript types.bunli.config.ts: Bunli command, build, dev, and test configuration.
To add or edit a command:
- Add or update a file in
src/commands/. - Export a
defineCommand(...)command from that file. - Import and register the command in
src/index.tswithcli.command(...). - Run
bun run typecheck. - Run the command locally with
bunli dev -- <command>.