← Back to projects

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

Visual identity for the python-ecd project

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.

Links