Skip to main content

🌟 Queck: An YAML based Format for Quiz Authoring

Queck is a simple and structured format for authoring quizzes based on YAML and Markdown. It provides a flexible schema for different types of questions, supporting both basic and complex quiz designs. Queck can export quizzes into HTML or Markdown, with options for live watching and automatic re-exporting upon file changes.


🆚 Alternatives

  • GIFT – A widely used Moodle format for quiz authoring, but with more complex syntax compared to Queck’s simple YAML structure.

🔑 Key Features

  • 📝 YAML-based quiz authoring: Author quizzes in a clean, human-readable YAML format.
  • 🧠 Support for diverse question types: Including multiple-choice, true/false, numerical answers, comprehension passages, and more.
  • ✔️ Multiple answer formats: Single select, multiple select, numerical ranges, and tolerance-based answers.
  • 🔍 Schema validation with Pydantic and Json Schema: Ensures your quiz structure is validated for correctness before exporting.
  • 📤 Flexible export options: Export quizzes in JSON, HTML (print-ready), or Markdown formats.
  • ⚙️ Command-line interface: Simple CLI for validation and export operations.
  • ♻️ Live reloading for development: Integrated live reload server to auto-update quizzes as you edit.
  • 📐 Mathematical equation support: Native support for dollar-math ($..$ and $$..$$ ) based LaTeX-style equations for math-based quizzes.
  • 💻 Code block rendering: Display code snippets within quiz questions for technical assessments.
  • 💯 Optional Scoring: Optional scoring support.
  • 🛠️ Easy Integration: Can be easily integrated into any system as it is available as a python package.

📝 Answer Types

Queck supports a variety of question types, including:

  • Choice Based

    • The separater /# is used to mark option-wise feedback. To use the literal /#, use html code for / (/) or # (#) or both.

    • Single Select Choices
      List of yaml string marked with (o) resembling resembling radio button.

      answer:
        - ( ) Option 1
        - (o) Option 2 /# feedback for option 2
        - ( ) Option 3
        - ( ) Option 4
      
    • Multiple Select Choices
      List of yaml string marked with (x) resembling to-do list or checkboxes.

      answer:
        - ( ) Option 1
        - (x) Option 2 /# feedback for option 2
        - ( ) Option 3 /# feedback for option 3
        - (x) Option 4
      
    • True/False
      Yaml value true/false.

      answer: true
      
  • Numerical

    • Integer
      Yaml integer.

      answer: 5
      
    • Numerical Range
      Yaml string of format {low}..{high}.

      answer: 1.25..1.35
      
    • Numerical Tolerance
      Yaml string of format {value}|{tolerance}.

      answer: 1.3|.5
      
    • Single Floating Point Values
      By default floating point values are not supported as a best practice. But they can be added with range or tolerance type. For example, 0.5..0.5 or 0.5|0.

  • Short Answer
    Yaml string.

    answer: France
    

Other validation rules

  1. Every choice based question should have atleast one incorrect option.
  2. Common data questions should have atleast two contextual questions inside them.

VS Code Profile

The below VS code profile contains the necessary extensions and configurations for syntax highlighting and validation of queck files.

https://gist.github.com/livinNector/596a7c507a95eaa59014df9505159ce8

Check this for the instructions to import the vscode profile.

📄 Sample Queck Format

Refer the example queck files from examples.


🚀 Installation

Installation as uv tool

The recommended way to install queck is to install as uv tool using the below command. Ensure uv is installed your system.

uv tool install queck

Installation using pip

Queck requres python>=3.12 install the latest version of python before installing queck.

To install Queck, run the following command:

pip install queck

💻 Commands

qeuck format

Formats the markdown content inside the queck file using mdformat.

queck format quiz.queck

queck export

To export a quiz in HTML format with live watching enabled:

queck export path/to/quiz.queck --format html --output_folder export --render_mode fast --watch
  • --format: Specify output format as html,md or json.
  • --output_folder: Directory for exported files.
  • --render_mode: (For html export only) Use fast for KaTeX and Highlight.js compat for inline styles, latex for using Latex.css.

Shorthands for options are also supported.

queck export path/to/quiz.queck -f html -o export -r fast -w

Experimental GenAI Features

To enable this feature install queck using the following extras.

uv tool install "queck[genai]"

queck extract

To extract questions from text based formats like markdown or latex.

queck extract path/to/file.md --model "openai:gpt-4o-mini"

The model is provided with the format {provider}:{model_name}

Available providers:

  • openai
  • groq

🤝 Contribution

We welcome contributions! Feel free to submit pull requests, report issues, or suggest new features. Let's make Queck better together! 🙌


⚖️ License

This project is licensed under the MIT License.

Metadata

Release files for queck 2.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for queck 2.1.1
File Size Uploaded
queck-2.1.1.tar.gz 29.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for queck 2.1.1
File Interpreter ABI Platform
queck-2.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 58.3 kB

Release files / queck-2.1.1.tar.gz

Download URL queck-2.1.1.tar.gz
Size 29.2 kB
Tags Source
SHA-256 checksum
How to use checksums
152faa5fba00736e7d2e7e542c2abdcdbc27980b31672870ed44bd3b340dc4f2
BLAKE2b-256 checksum
How to use checksums
e4c80749a6a3cd7f1de0e2d3113fe66a2872bdb12b5a3c1eeb0155e111ab3f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2025.

Transparency log

Release files / queck-2.1.1-py3-none-any.whl

Download URL queck-2.1.1-py3-none-any.whl
Size 29.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c26b4a512d198a1a71a3372fb239611ed43e872f2621970a41ccc3fc89d5cc2
BLAKE2b-256 checksum
How to use checksums
19c05a916517355cf04b80c586f640fdb402a974e642b18ecea4fb7c0c8e1ff2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.1 This release

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page