CURL-QUESTS(1)

NAME

curl-questsHands-on practice for curl

SYNOPSIS

$sudo apt install jq

INFO

79 stars
2 forks
0 views

DESCRIPTION

Hands-on practice for curl

README

Curl Quests

Crates.io Downloads

Group 21

⭐ If these quests helped you learn curl and HTTP, please consider starring the repo.

An interactive terminal game for learning curl and HTTP APIs through hands-on quests. Each quest spins up a real local server, gives you instructions, and verifies your work directly against the database no guessing, just doing.


Requirements

  • Rust & Cargo: install via rustup (includes both)
  • curl: usually pre-installed on macOS/Linux
  • jq: required for Quest 11 onwards

Check your versions:

rustc --version
cargo --version
curl --version
jq --version

Get started (two ways)

Option A: Install via Cargo (recommended)

cargo install curl-quests
curl-quests

Option B: Clone and build manually

git clone https://github.com/lite-quests/curl-quests.git
cd curl-quests
cargo build
cargo run

Navigating the app

When you launch curl-quests you'll see a terminal UI with a quest grid and a top navigation bar.

KeyAction
/ Move between tabs (Levels / Instructions / Exit)
EnterOpen selected tab or quest
EscGo back / dismiss
qQuit

Inside a quest:

KeyAction
Tab / Shift+TabSwitch focus between sections
/ Scroll instructions or navigate command history
Shift+↑ / Shift+↓Scroll terminal output
/ Resize the left/right columns
EnterRun the typed curl command
Ctrl+VPaste from clipboard
Ctrl+CCopy last command output

Focus moves through: Instructions → Solutions → Terminal → Answer → Submit → Back


Quests

#QuestFolder
1Day 1: Inventory Checkquests/01-Get
2Day 2: Adding Itemsquests/02-Post
3Day 3: Maintain and Updatequests/03-Put-Patch-Delete
4The Elemental Searchquests/04-Query & Encoding
5Payslip Uploaderquests/05-File-Upload
6Strict API Contractsquests/06-Headers
7The Manager's Secretquests/07-Header-Inspection
8The Galactic Relayquests/08-Status-Codes
9The Digital Detourquests/09-Redirects
10Identity & Accessquests/10-Auth-JWT
11JSON Querying with jqquests/11-JQ

How to solve a quest

  1. Launch the app and press Enter on Levels
  2. Select a quest and press Enter to open it
  3. Read the Instructions panel on the left
  4. Use the Terminal panel on the right to run curl commands against the local server
  5. If the quest asks for an answer, type it in the Answer box
  6. Tab to Submit and press Enter to verify the app checks your work against the database
  7. If it fails, read the error and try again. The server stays running until you go back.

Start from Quest 1 and work your way up each quest builds on concepts from the previous ones.


Tips

  • Maximize your terminal: For the best experience, run your terminal in full screen. This ensures all quest content, animations, and the dual-column layout are displayed correctly without clipping.
  • The server is already running when you open a quest you don't need to start anything manually.
  • Read the instructions fully before running any command. The quest often tells you the exact endpoint and method to use.
  • If a command produces no output, the server may still be starting. Wait a second and try again.
  • Disable AI assistance while solving you'll learn far more by reading the error, checking the curl man page, and trying again.

Troubleshooting

  • curl-quests: command not found after cargo install make sure ~/.cargo/bin is in your PATH:

    export PATH="$HOME/.cargo/bin:$PATH"
    

    Add that line to your ~/.bashrc or ~/.zshrc to make it permanent.

  • (no output — is the server running?) in the terminal the server needs a moment to bind the port. Press Enter again to rerun the command.

  • Quest stuck / server not responding press Esc to go back to the quest grid, then re-enter the quest. This restarts the server and reseeds the database.

  • jq: command not found install jq before attempting Quest 11+:

    • macOS: brew install jq
    • Ubuntu/Debian: sudo apt install jq

Contact

For any issues, contact either:

SEE ALSO

clihub5/20/2026CURL-QUESTS(1)