lite-quests
curl-quests
Rust

Hands-on practice for curl

Last updated Jun 24, 2026
86
Stars
2
Forks
2
Issues
0
Stars/day
Attention Score
35
Language breakdown
No language data available.
โ–ธ Files click to expand
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.

| Key | Action | | --------- | ------------------------------------------------ | | โ† / โ†’ | Move between tabs (Levels / Instructions / Exit) | | Enter | Open selected tab or quest | | Esc | Go back / dismiss | | q | Quit |

Inside a quest:

| Key | Action | | --------------------- | ----------------------------------------------- | | Tab / Shift+Tab | Switch focus between sections | | โ†‘ / โ†“ | Scroll instructions or navigate command history | | Shift+โ†‘ / Shift+โ†“ | Scroll terminal output | | โ† / โ†’ | Resize the left/right columns | | Enter | Run the typed curl command | | Ctrl+V | Paste from clipboard | | Ctrl+C | Copy last command output |

Focus moves through: Instructions โ†’ Solutions โ†’ Terminal โ†’ Answer โ†’ Submit โ†’ Back


Quests

| # | Quest | Folder | | --- | -------------------------- | -------------------------------------------------------------- | | 1 | Day 1: Inventory Check | quests/01-Get | | 2 | Day 2: Adding Items | quests/02-Post | | 3 | Day 3: Maintain and Update | quests/03-Put-Patch-Delete | | 4 | The Elemental Search | quests/04-Query & Encoding | | 5 | Payslip Uploader | quests/05-File-Upload | | 6 | Strict API Contracts | quests/06-Headers | | 7 | The Manager's Secret | quests/07-Header-Inspection | | 8 | The Galactic Relay | quests/08-Status-Codes | | 9 | The Digital Detour | quests/09-Redirects | | 10 | Identity & Access | quests/10-Auth-JWT | | 11 | JSON Querying with jq | quests/11-JQ |


How to solve a quest

  • Launch the app and press Enter on Levels
  • Select a quest and press Enter to open it
  • Read the Instructions panel on the left
  • Use the Terminal panel on the right to run curl commands against the local server
  • If the quest asks for an answer, type it in the Answer box
  • Tab to Submit and press Enter to verify the app checks your work against the database
  • 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:

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท lite-quests/curl-quests ยท Updated daily from GitHub