LinuxCommandLibrary

exercism

Download and submit Exercism exercises

TLDR

Configure exercism following instructions for the API token

$ exercism configure
copy

Download hello-world for any programming language into exercism workspace
$ exercism download --track [programming_language] --exercise hello-world
copy

Open an exercise directory on the website
$ exercism open [path/to/directory]
copy

Test your solution. It will also tell you if you are missing tools for the programming language
$ exercism test [path/to/directory]
copy

Submit your solution. You can share from the website or ask a community mentor for help
$ exercism submit [path/to/directory]
copy

SYNOPSIS

exercism [options] command [arguments...]
exercism [command] --help

PARAMETERS

--help, -h
    Displays help information for the main command or a specific subcommand.

--version
    Displays the version of the Exercism CLI currently installed.

configure
    Sets up the CLI by authenticating with your Exercism.io API token and defining your local workspace directory where exercises will be stored.

download <track_slug> <exercise_slug>
    Downloads a specific coding exercise from a given language track to your local workspace, ready for you to work on.

submit <file_path> [<file_path>...]
    Submits one or more solution files for a completed exercise back to the Exercism.io platform for review.

debug
    Provides diagnostic information about your CLI configuration and environment, which is helpful for troubleshooting setup issues.

login
    Authenticates your CLI with Exercism.io using your API token, granting access to your personal account and exercises.

logout
    Clears your stored API token and logs you out of your Exercism.io account on the CLI.

DESCRIPTION

The exercism command is the official command-line interface (CLI) for Exercism.io, a free online platform for improving coding skills through practice exercises and mentorship. It allows users to interact with the Exercism platform directly from their terminal.

Users can download coding exercises (called "problems") for various programming languages (tracks), work on them locally in their preferred development environment, and then submit their solutions back to the platform for automated feedback and/or human mentorship. The CLI streamlines the entire workflow, from managing exercise directories and fetching new problems to submitting completed work, making it an indispensable tool for anyone using Exercism.io to learn and grow as a developer.

CAVEATS

The exercism CLI requires an active Exercism.io account and a generated API token for full functionality. An internet connection is essential for operations like downloading exercises, submitting solutions, and configuring the client. While the CLI manages the local workspace structure, manual alterations to exercise directories can sometimes cause submission issues.

API TOKEN REQUIREMENT

To use the exercism CLI, you must generate an API token from your Exercism.io account settings (typically found under 'Settings' -> 'API'). This token must be provided to the CLI, usually via the exercism configure command, to authenticate and perform account-specific operations like downloading new exercises or submitting solutions.

WORKSPACE STRUCTURE

The CLI maintains a specific and critical directory structure for all downloaded exercises. By default, exercises are placed within a path like your_workspace_directory/exercism/<track_slug>/<exercise_slug>/. It is crucial to work within these managed directories and place your solution files appropriately for successful submission.

HISTORY

The exercism CLI was developed as an open-source companion to the Exercism.io platform, aiming to provide a seamless, terminal-based workflow for developers. Its inception aimed to eliminate the need for constant browser interaction, allowing users to download, work on, and submit exercises directly from their development environment. Over time, it has evolved to support new platform features, improve user experience, and become the de facto tool for interacting with Exercism.io, streamlining the entire learning and practice lifecycle for its users.

SEE ALSO

git(1), ls(1), cd(1), vim(1), emacs(1)

Copied to clipboard