Developer tooling · CLI
python-ecd
A command-line tool for setting up, testing, and submitting solutions to Everybody Codes programming challenges.
Python · Typer · uv · GitHub Actions · PyPI

The problem
Initialising projects, fetching inputs, running solutions, and submitting answers requires repetitive work and manual credential handling.
My contribution
Design and development of the tool, its command interface, packaging, and quality and release automation.
Outcome
An installable open-source tool with CI and automated publishing that I use in my own solutions repository.
Technical decisions
- Commands aligned with the real workflow: init, pull, test, run, and push.
- Local state in .ecd.toml to track accepted parts and migrate existing workspaces.
- Session-token management through hidden input and separate storage, avoiding exposure in shell history.
- PyPI distribution, isolated execution through uvx, and automated releases with Trusted Publishing.