exercism
Download and submit Exercism exercises
TLDR
Configure exercism following instructions for the API token
Download hello-world for any programming language into exercism workspace
Open an exercise directory on the website
Test your solution. It will also tell you if you are missing tools for the programming language
Submit your solution. You can share from the website or ask a community mentor for help
SYNOPSIS
exercism [global options] command [arguments…]
PARAMETERS
--config
User config directory (default ~/.exercism)
--help, -h
Show help
--json
Enable JSON output
--quiet
Quiet mode
--timeout
Timeout for API requests (default 30s)
--verbose
Verbose mode
--version, -v
Show exercism version
DESCRIPTION
The exercism command-line tool is the official CLI for the Exercism platform, helping programmers improve skills via coding exercises, automated analysis, and mentorship.
It streamlines downloading exercises across 50+ language tracks, editing locally, submitting solutions, viewing feedback, and managing progress.
Key workflows:
• Configure with your API token.
• Install tracks to a local workspace (git-based).
• Download specific exercises.
• Submit files for review.
• Browse iterations or mentor requests.
Version 3 (Rust-based) uses a unified workspace directory for all tracks, improving organization and offline work. Requires internet for sync operations but supports local editing.
Ideal for TDD practice and deliberate practice in real-world scenarios.
CAVEATS
Requires API token from exercism.org/account/api_token. Most commands need internet; workspace tracks use git. Subcommands have additional options (use --help).
INSTALLATION
Download binaries from exercism.org/cli; or brew install exercism/tap/exercism (macOS), apt install exercism (some distros). Run exercism version to verify.
QUICK START
exercism configure (enter token).
exercism workspace install javascript
exercism workspace download javascript hello-world
exercism submit javascript/hello-world/hello-world.js
HISTORY
v1 (Ruby, ~2013); v2 (Go, 2016, per-track dirs); v3 (Rust, 2020+) with unified workspace, better UX, and 50+ tracks support.
SEE ALSO
git(1)


