Skip to main content

coderpad-cli

Upload starter code to an existing CoderPad Interview question using coderpad-py. This independent CLI preserves titles, descriptions, and other metadata by updating only the supplied starter-code field.

Requires Python 3.12 or later. No package release has been published yet. Install the checkout for now:

uv sync --locked
uv run coderpad --help
uv run python -m coderpad_cli --version

After the first PyPI release, install with uv tool install coderpad-cli or pip install coderpad-cli.

Usage

Use synthetic question ID 123456 below in place of your own question ID. Exactly one content source is required:

coderpad questions upload 123456 --directory ./starter --dry-run
coderpad questions upload 123456 --directory ./starter --exclude '*.zip'
coderpad questions upload 123456 --file ./starter.py

Real uploads read CODERPAD_API_KEY from the environment. Get a key from your CoderPad dashboard settings. Missing, empty, and whitespace-only keys fail clearly. Dry runs need no key and make no network requests.

Single files must be UTF-8. Their text is preserved exactly, including CRLF, blank lines, trailing whitespace, a UTF-8 BOM, and documentation markers. Empty files are valid. Neither paths nor IDs are inferred from repository configuration. Inputs are fully read or staged before a mutation is issued. Errors exit nonzero; API response bodies and credentials are never printed. Uploads retain the SDK’s retry behavior; the CLI adds no retries.

Directory selection

  • Both Git and non-Git directories work. Paths are relative to the current working directory. A Git worktree’s .git file also identifies its root.

  • In a Git repository, rules are inherited from the nearest Git root down to the upload directory. Outside Git, rules start at the upload directory; unrelated parent .gitignore files are not used.

  • Each traversed directory adds its own .gitignore rules. Later matching rules override earlier ones, and deeper files override ancestor rules. Patterns are relative to their owning directory. Directory-only rules and negations follow Gitignore semantics. Excluded directories are pruned, so a child cannot re-include itself unless its parent is re-included first. This also applies to ancestors of an explicitly selected nested upload root.

  • Ignore rules apply to tracked files too. Global Git excludes and .git/info/exclude are not read. Hidden files, including .gitignore, are uploaded unless excluded.

  • .git files and directories are always excluded at every depth. Repeatable --exclude PATTERN options form a final Gitignore rule layer, relative to the upload root. This layer can exclude files re-included by .gitignore; its own later negations can undo its earlier patterns. It cannot re-include a file excluded by .gitignore or Git metadata.

  • ZIP files are included by default. Use --exclude '*.zip' to omit them. Add other exclusions explicitly, for example --exclude node_modules/.

  • Selected symlinks (including directory, broken, and external links) and symlinks in the source path are rejected rather than dereferenced. Ignored links are skipped. Symlinked .gitignore files are rejected when their rules would be read. Special files are rejected. Empty selections fail. File bytes are copied to a temporary directory, and the SDK independently validates and serializes that directory using its ZIP importer.

Development and distribution

See docs/source/development.rst for checks, release setup, and local Docker, standalone binary, and Nix builds. The generated CLI reference is in docs/source/cli.rst. There are no prebuilt artifacts yet.

See docs/source/migration.rst for migrating an existing shell uploader and keeping repository-specific snippet preparation outside this CLI.

Metadata

Release files for coderpad-cli 2026.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coderpad-cli 2026.10.1
File Size Uploaded
coderpad_cli-2026.10.1.tar.gz 144.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for coderpad-cli 2026.10.1
File Interpreter ABI Platform
coderpad_cli-2026.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 153.8 kB

Release files / coderpad_cli-2026.10.1.tar.gz

Download URL coderpad_cli-2026.10.1.tar.gz
Size 144.9 kB
Tags Source
SHA-256 checksum
How to use checksums
74577bcd0156747421bcf1af32b6be40d40831bba16cfec3faec2ecb89e045a7
BLAKE2b-256 checksum
How to use checksums
7cd62d7eaa7649dec745f787975ae08061ef509731a2514a7b0474b97de110df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / coderpad_cli-2026.10.1-py3-none-any.whl

Download URL coderpad_cli-2026.10.1-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0764b185175c3a4d927be677337eed1f56bab78f58d0acc76f9952e67b42413
BLAKE2b-256 checksum
How to use checksums
d94e9310b17293650751f2726aeef59be605bd410009a052e15f9dae63a6dc97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.10.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page