https://github.com/tamnd/codeforces-cli
Browse Codeforces problems, contests, and standings as structured records
https://github.com/tamnd/codeforces-cli
cli codeforces competitive-programming golang json scraper
Last synced: 1 day ago
JSON representation
Browse Codeforces problems, contests, and standings as structured records
- Host: GitHub
- URL: https://github.com/tamnd/codeforces-cli
- Owner: tamnd
- License: apache-2.0
- Created: 2026-06-13T19:18:25.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-29T12:36:36.000Z (16 days ago)
- Last Synced: 2026-06-29T14:26:36.770Z (16 days ago)
- Topics: cli, codeforces, competitive-programming, golang, json, scraper
- Language: Go
- Size: 46.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cf
Browse Codeforces competitive programming problems
`cf` is a single pure-Go binary. It speaks to codeforces over plain
HTTPS, shapes the responses into clean records, and pipes into the rest of your
tools. No API key, nothing to run alongside it.
## Install
```bash
go install github.com/tamnd/codeforces-cli/cmd/cf@latest
```
Or grab a prebuilt binary from the [releases](https://github.com/tamnd/codeforces-cli/releases), or run
the container image:
```bash
docker run --rm ghcr.io/tamnd/cf:latest --help
```
## Usage
```bash
cf --help
cf version
```
This is a fresh scaffold. The command tree starts with `version`; build out the
real commands in `cli/` on top of the `codeforces` library package.
## Development
```
cmd/cf/ thin main, wires cli.Root into fang
cli/ the cobra command tree
codeforces/ the library: HTTP client and data models
docs/ tago documentation site
```
```bash
make build # ./bin/cf
make test # go test ./...
make vet # go vet ./...
```
## Releasing
Push a version tag and GitHub Actions runs GoReleaser, which builds the
archives, Linux packages, the multi-arch GHCR image, checksums, SBOMs, and a
cosign signature:
```bash
git tag v0.1.0
git push --tags
```
The Homebrew and Scoop steps self-disable until their tokens exist, so the first
release works with no extra secrets.
## License
Apache-2.0. See [LICENSE](LICENSE).