Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

QuizPort

Kris KelleyKris Kelley17 downloads

Run interactive quizzes inside your notes using the QuizPort JSON format, with explanations, hints, and scoring.

Add to Obsidian
QuizPort screenshot
  • Overview
  • Scorecard
  • Updates5

Run interactive quizzes inside your notes. Quizzes are plain JSON in the QuizPort format, so the same file works here and on quizport.io — no conversion, no lock-in.

  • Answer questions inline in reading view, with scoring and instant feedback
  • Explanations and hints shown at the right moment (hint before you answer, explanation after)
  • Three question types: single choice, true/false and multi-select — every question answered with a click, so a quiz stays quick to get through
  • End-of-quiz review of what you missed, and a one-click retry of just the missed questions
  • Shuffle mode randomises question and answer order
  • Works offline, on desktop and mobile. Nothing leaves your vault.

Usage

A quiz inside a note

Put the JSON in a quizport code block:

```quizport
{
  "title": "Capitals",
  "questions": [
    {
      "question": "What is the capital of France?",
      "choices": ["London", "Paris", "Berlin", "Madrid"],
      "answer": 1,
      "explanation": "Paris has been the capital since 987 AD.",
      "hint": "It is on the Seine."
    }
  ]
}
```

Switch to reading view and the quiz becomes interactive.

The Insert quiz template command drops a working block in for you.

A quiz stored as its own file

Keep the JSON as a real .json file in your vault and point at it. This is the better option for anything you reuse, and it means a file downloaded from the QuizPort library works untouched:

```quizport
file: quizzes/security-plus.json
shuffle: true
```

The path resolves like an Obsidian link, so it can be relative to the note.

A quiz in its own tab

Open a .json quiz (or a note containing a quizport block) and run Run quiz from active file, or click the ribbon icon.

Quiz format

The minimum is a title and some questions:

{
  "title": "My Quiz",
  "questions": [
    { "question": "2 + 2 = ?", "choices": ["3", "4", "5"], "answer": 1 }
  ]
}

Everything else is optional. answer is a 0-based index into choices.

Field Where Notes
title quiz Required
description, category, difficulty, author, tags quiz Shown as badges
question question Required
choices question Required
answer question Index, or a list of indices for multi-select
explanation question Shown after answering
hint question Offered before answering

Question types

The type is inferred from the shape, so you never have to declare it and existing quizzes keep working:

{ "question": "Pick one",   "choices": ["a", "b"],      "answer": 0 }
{ "question": "True/false", "choices": ["True","False"],"answer": 1 }
{ "question": "Pick many",  "choices": ["a","b","c"],   "answer": [0, 2] }

There is deliberately no typed-answer type: making the user type is the slowest thing a quiz can ask for.

Settings

Setting Default
Shuffle by default Off Randomise question and answer order
Instant feedback On Reveal correctness and the explanation after each answer
Keep attempt history On Store scores locally so you can export them

Export attempt history to a note writes a summary table plus the raw JSON into your vault.

Install

From the community plugins browser

Search for QuizPort in Settings → Community plugins. (Pending review — see "Status" below.)

Manually

  1. Download main.js, manifest.json and styles.css from the latest release.
  2. Put them in <vault>/.obsidian/plugins/quizport/.
  3. Enable QuizPort in Settings → Community plugins.

Status

Version 0.4.0. Submitted to the community directory; awaiting review.

Requires Obsidian 1.13.0 or later. The settings tab uses the declarative settings API introduced in 1.13, which is also what makes QuizPort's settings findable from Obsidian's global settings search.

Development

npm install
npm run dev     # watch build
npm run build   # type-check and produce main.js

src/quizSchema.ts is a port of the quizport.io web app's schema module. The two are verified to produce identical results — normalization, canonical export, and scoring — against every quiz in the public library. The JSON Schema is the source of truth for the format; if you change one implementation, change both.

Privacy

Everything runs locally. The plugin makes no network requests: quizzes are read from your vault, and scores are stored in the plugin's own data file.

License

MIT

HealthExcellent
ReviewPassed
About
Run interactive quizzes inside notes using plain QuizPort JSON compatible with quizport.io. Answer inline in reading view with scoring and instant feedback; show hints before answers and explanations after, review missed questions and retry, shuffle order, and work fully offline.
FlashcardsJSONReview
Details
Current version
0.4.1
Last updated
3 days ago
Created
4 days ago
Updates
5 releases
Downloads
17
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Kris KelleyKris Kelleykelleyblackmore
GitHubkelleyblackmore
  1. Community
  2. Plugins
  3. Flashcards
  4. QuizPort

Related plugins

LearnKit

A native study system for your Obsidian vault. LearnKit turns notes into durable knowledge with flashcards, spaced repetition, tests, and more.

CBT Exam Simulator

A robust, offline-first CBT exam simulator using FlashQuiz format.

Review

Add a link to the current note to a daily note on a future date (or a past date, you time traveller).

Repeat

Review notes using periodic or spaced repetition.

Recall

A flexible and configurable spaced repetition plugin with multiple algorithms to choose from.

Feynman Learning

Learn concepts deeply using the Feynman Technique — AI-guided explanation, gap analysis, spaced repetition review, and Notion sync.

Echo Recall

Memorize, Revise and Review your notes and paragraphs actively with spaced repetition and retrospective deadlines.

Decks

Decks - Spaced repetition flashcards plugin with FSRS algorithm.

Come Through

Drill flashcards using spaced repetition.

Spaced Repetition

Fight the forgetting curve by reviewing flashcards & entire notes.