anki
Create and manage Anki flashcards. Use when the user wants to create flashcards, add notes to Anki, manage decks, or work with spaced repetition learning. Also use when user mentions "anki", "make cards", "add to anki", "learn this", "memorize", "remember this", "SRS", or asks to turn content into f
By terkelg · 396 installs
npx skills add terkelg/anki-markdown --skill anki
Source repository · Upstream listing
Anki Flashcard Management
Use the anki.sh script to create and manage flashcards via AnkiConnect.
Preflight:
Ensure Anki desktop is running with AnkiConnect enabled
Ensure curl and jq are available in PATH
CRITICAL: User Approval Required
NEVER add cards to Anki without explicit user approval.
Before adding any cards:
1. Display all proposed cards in full (front + back)
2. Ask user to confirm: "Ready to add these cards?"
3. Only proceed after explicit "yes" / approval
This is non negotiable. Users must review card quality before adding.
For potentially destructive or irreversible actions:
delete : ask explicit confirmation before deleting notes
update : confirm exact fields/IDs before updating notes
rate : show card + suggested rating, then wait for user confirmation before submitting
Guidelines
MUST use the Anki Markdown note type for basic cards or Anki Markdown Cloze for cloze deletions
Use markdown for both front and back fields
Test exactly one fact or idea per card
Make questions atomic and simple
Keep questions and answers short, clear, and unambiguous
Ensure each card has one unique, specific answer
Avoid long lists or multiple items in one card
Add context or hints so your future self understands
Personalize with examples or mnemonics if helpful
Allow multiple simple cards for important concepts
Create multiple variants of important questions from different angles
Connect cards to personal goals and projects to avoid "orphan" facts
Always use syntax highlighting for code (see Code Snippets section)
When creating multiple related cards, use bulk operations for efficiency
Choosing Card Type
Use Anki Markdown (Front/Back) for question answer pairs where you write a specific question.
Use Anki Markdown Cloze (Text/Extra) for fill in the blank cards where hiding parts of a statement is more natural than writing a question.
Cloze Cards
Use Anki Markdown Cloze for fill in the blank cards. Fields are Text and Extra .
Syntax
Three forms:
{{c1::answer}} shows [...] on front
{{c1::answer::hint}} shows [hint] on front
{{c1::answer::blur}} shows blurred content on front (reveals shape but not text)
Full markdown works inside cloze deletions: bold, italic, highlights, inline code with language tags, links, images, code blocks, and tables.
Multiple Cards
Each cloze number (c1, c2, c3...) generates a separate card. Use different numbers to test different facts from the same note:
This produces 2 cards. Card 1 hides "HTML", card 2 hides "CSS".
Using the same number multiple times hides all instances on the same card:
This produces 1 card that hides both "React" and "Vue".
Nested Cloze
Cloze deletions can be nested. The outer cloze hides everything including the inner:
Card 1 hides "Canberra was founded". Card 2 only hides "founded".
Inline Code in Cloze
Inline code with language tags works inside cloze. Note the triple closing braces ( }}} ) when code uses {lang} syntax:
Extra Field
The Extra field appears on the back of every card. Use it for context, examples, or references. It supports full markdown including code blocks and callouts.
Cloze Examples
Front Field Format
Use markdown on the front to highlight key terms the question is about:
Use bold or ==highlight== for the main concept being tested
Use inline code for technical terms, functions, or syntax
Example: What does vertex index return in WGSL?
Back Field Format
Use this format for the Back field:
1. Bold one liner with the direct answer
2. Blank line
3. Additional context in normal text (optional)
Formatting for Fast Skimming
Use ==highlighted== to make key terms stand out at a glance
Use bold for critical concepts within explanations
Use syntax highlighting for all code blocks including inline
Optimize for quick visual scanning—readers should grasp the core idea instantly
Keyboard Shortcuts
Use <kbd tags for keyboard keys:
Code Snippets
Always use syntax highlighting:
Fenced blocks: Use triple backticks with language ( js, python, js {2} to highlight line 2
Word highlighting: markdown
[!TIP]
Brief helpful insight here.
[!NOTE]
Useful context the learner should know.
[!WARNING]
Common mistake or gotcha to avoid.
Front: What does passEncoder.draw(3) {js} do with no vertex buffer ?
Back:
Invokes the ==vertex shader== 3 times.
The shader uses @builtin(vertex index) {wgsl} to generate positions ==procedurally==.
[!TIP]
Useful for fullscreen quads without geometry data.
bash
$ANKI sync sync first
$ANKI decks check available decks
$ANKI models verify required model exists
$ANKI fields "Anki Markdown" verify field names for selected model
$ANKI find "deck:MyDeck front:test" check for duplicates
$ANKI add "MyDeck" "Anki Markdown" '{"Front":"...","Back":"..."}'
$ANKI sync sync after changes