Run markdown quizzes in the terminal
Project description
quizmd
quizmd is a terminal quiz app for:
- Markdown MCQs (single/multiple)
- Imposter quizzes (spot misleading options)
- Chaos quizzes (branch + recovery scenarios)
- Essay quizzes (AI rubric scoring)
- Online room types (compete/collaborate/eliminate)
- Terminal game modes (Alien Attack)
Install
Recommended:
pip install quizmd
Update to latest:
pip install -U quizmd
From GitHub (latest repo state):
pip install "git+https://github.com/steliosot/quizmd.git"
Check install:
quizmd --version
Quick Start
Create starter files:
quizmd init
This creates:
hello-quiz.md(single + multiple MCQ)hello-imposter.md(imposter mode)hello-chaos.md(branching scenario mode)hello-essay.md(essay mode)QUIZ_GUIDE.md(quick commands)
Run starters:
quizmd --validate hello-quiz.md
quizmd hello-quiz.md
quizmd --validate hello-imposter.md
quizmd hello-imposter.md
quizmd --validate hello-chaos.md
quizmd hello-chaos.md
quizmd --validate hello-essay.md
export GEMINI_API_KEY="your_key_here" # or OPENAI_API_KEY / ANTHROPIC_API_KEY
quizmd hello-essay.md
Modes (What + How to Start)
1) Classic MCQ (Local)
- What: single/multiple-choice timed quiz.
- Start:
quizmd hello-quiz.md
2) Imposter (Local)
- What: select correct answers and flag misleading options.
- Start:
quizmd hello-imposter.md
3) Debug (Local)
- What: fix broken Python code with line-aware scoring.
- Start:
quizmd hello-debug.md
4) Challenge (Local)
- What: category board + risk levels (stars scoring).
- Start:
quizmd hello-challenge.md
5) Reverse (Local)
- What: infer code behavior/output in reverse-engineering style MCQs.
- Start:
quizmd hello-reverse.md
6) Millionaire (Local)
- What: 15-question ladder with lifelines and safety nets.
- Start:
quizmd hello-millionaire.md
7) Chaos (Local)
- What: branch + recovery scenario that rejoins at final decision.
- Start:
quizmd hello-chaos.md
8) Essay (Local + AI)
- What: write a short response and get rubric feedback.
- Start:
quizmd hello-essay.md
9) Room: Compete (Online)
- What: fastest correct answers win points.
- Start room:
quizmd room --create --mode compete --quiz hello-quiz.md
10) Room: Collaborate (Online)
- What: discussion + voting phase, team consensus scoring.
- Start room:
quizmd room --create --mode collaborate --quiz hello-quiz.md
11) Room: Eliminate (Online)
- What: wrong answers eliminate players from scoring, but everyone keeps playing for practice.
- Start room:
quizmd room --create --mode eliminate --quiz hello-quiz.md
12) Game: Alien Attack (Terminal)
- What: arcade shooter mini-game.
- Start:
quizmd alien-attack
Join any room:
quizmd room --join <room-name> [--token <room-token>]
Room quiz requirement:
- In online room types, each question
Time/time_limitmust be 5 seconds or higher. - For JSON room quizzes, optional
discussion_time(seconds) controls collaborate chat phase per question.
quizmd init Coverage
Yes, quizmd init covers all mode types:
- MCQ single/multiple via
hello-quiz.md - Imposter via
hello-imposter.md - Chaos via
hello-chaos.md - Essay via
hello-essay.md - Room types by using
hello-quiz.mdwith--mode compete|collaborate|eliminate
Essay Keys (Essay Mode Only)
MCQ quizzes do not require API keys.
Supported keys:
GEMINI_API_KEYOPENAI_API_KEYANTHROPIC_API_KEY
Auto provider order:
- Gemini
- OpenAI
- Anthropic
Mac/Linux example:
export GEMINI_API_KEY="your_key_here"
Windows PowerShell example:
$env:GEMINI_API_KEY="your_key_here"
Validate Any Quiz
quizmd --validate quizzes/harry-potter-quiz.md
Theme
quizmd --theme auto quizzes/harry-potter-quiz.md
quizmd --theme light quizzes/harry-potter-quiz.md
quizmd --theme dark quizzes/harry-potter-quiz.md
Notes
- Local question modes support
Qfor graceful quit with summary. - Press
Ctrl+Cat any time to exit. - Each multiple-choice question must have at least 2 non-empty options.
- If your question text includes markdown bullet lines, add an
Options:line before answer choices to disambiguate parsing.
Development
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m pytest tests -q
Related Repositories
- Room server: steliosot/quizmd-server
- Web app: steliosot/quizmd-web
This repository is the CLI/PyPI package.
Community
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quizmd-2.4.3.tar.gz.
File metadata
- Download URL: quizmd-2.4.3.tar.gz
- Upload date:
- Size: 131.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0e52c90a5de34398b1242805d58492b11a957691b153093512302666872e2b2
|
|
| MD5 |
74800bbc563edc8f69243032cb2285c0
|
|
| BLAKE2b-256 |
d3381adda27c2e0af7e5ed945c2a93ff44696b6412266e122a4230013097aca6
|
File details
Details for the file quizmd-2.4.3-py3-none-any.whl.
File metadata
- Download URL: quizmd-2.4.3-py3-none-any.whl
- Upload date:
- Size: 96.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f6e1a716823308c09024799abab1e4cfb02cac3e5d50c21373b307fdce1a873
|
|
| MD5 |
03e4620421b58774703c7454c80cf601
|
|
| BLAKE2b-256 |
399519e82d3daa0a02677963e4375ea5019cf5c95a1619f421706ecf3b5ebe11
|