Dotfiles-nix hashcards
Plain-text flashcard system using FSRS spaced repetition. Use when 'hashcards' is explicitly mentioned — for creating cards, managing decks, running reviews, or scripting card generation.
install
source · Clone the upstream repo
git clone https://github.com/not-matthias/dotfiles-nix
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/not-matthias/dotfiles-nix "$T" && mkdir -p ~/.claude/skills && cp -r "$T/modules/home/programs/cli-agents/shared/skills/hashcards" ~/.claude/skills/not-matthias-dotfiles-nix-hashcards && rm -rf "$T"
manifest:
modules/home/programs/cli-agents/shared/skills/hashcards/SKILL.mdsource content
<!-- Source: https://github.com/eudoxia0/hashcards -->
Hashcards is a plain-text, Rust-based flashcard system using the FSRS algorithm. Cards are Markdown files identified by content hash — editing a card resets its review progress.
Card Syntax
Question-Answer
Q: What is the capital of France? A: Paris
Cloze Deletion
C: The capital of France is [Paris].
Multiple deletions in one card generate multiple review items:
C: [Paris] is the capital of [France].
Escape literal brackets with backslash:
\[not a deletion\].
Separators
Use
--- between cards for visual organization (optional, ignored by parser).
Rich Content
- LaTeX math: Inline
, display$E = mc^2$$$\int_0^1 x\,dx$$ - Custom macros: Define in frontmatter or shared macro files
- Images:
(relative paths) - Audio: Standard Markdown link/embed syntax
- Code blocks: Fenced with syntax highlighting
- Tables: Standard Markdown tables
Deck Frontmatter (optional TOML)
+++ deck = "physics" +++ Q: What is Newton's second law? A: F = ma
CLI Commands
hashcards drill [DIRECTORY] # Start review session (web UI on localhost:8000) hashcards drill --host 0.0.0.0 # Bind to all interfaces hashcards stats # Collection statistics as JSON hashcards check # Verify collection integrity hashcards orphans # Manage deleted cards still in database hashcards export # Export collections as JSON
Drill Options
— Bind address (default: 127.0.0.1)--host <addr>- Port selection for custom listening port
- Card limit to cap review session size
- Deck filtering to review specific decks only
Review Grading
Four levels: Forgot / Hard / Good / Easy (keyboard shortcuts available in web UI).
Sibling burial: when a cloze card generates multiple items, reviewing one buries the others to prevent spoilers.
Workflow Best Practices
- Version control: Store card files in Git — content-addressed design works naturally with diffs and history
- Scripted generation: Generate cards programmatically from CSV or structured data, writing Q:/A: or C: format to
files.md - Deck organization: Use directories and/or TOML frontmatter
field to group cards by topicdeck - Editing awareness: Changing card text resets its FSRS progress (the hash changes). Typo fixes or rewords will lose review history
- Integrity checks: Run
periodically to catch corrupt or malformed cardshashcards check - Stats monitoring: Use
to track review load and identify struggling deckshashcards stats