flashcards

majiayu000's avatarfrom majiayu000

Create printable PDF flashcards optimized for double-sided printing with a 2x5 grid layout. Use when users request to create flashcards, study cards, or memory cards for any subject. Supports both duplex printers and manual printing workflows.

5stars🔀1forks📁View on GitHub🕐Updated Jan 11, 2026

When & Why to Use This Skill

This Claude skill automates the creation of professional, printable PDF flashcards with a precise 2x5 grid layout. It solves the common formatting struggle of aligning front and back content for double-sided printing, providing users with a seamless way to transform digital information into high-quality physical study materials complete with cutting guides.

Use Cases

  • Language Learning: Automatically generate vocabulary cards with foreign terms on the front and translations or definitions on the back.
  • Exam Preparation: Convert complex study notes into structured Q&A cards for medical, legal, or technical certification exams.
  • Educational Instruction: Teachers can quickly produce uniform, ready-to-cut physical learning aids for classroom drills and student activities.
  • Professional Training: Create portable reference cards for product specifications, company policies, or technical workflows to facilitate rapid memorization.
nameflashcards
descriptionCreate printable PDF flashcards optimized for double-sided printing with a 2x5 grid layout. Use when users request to create flashcards, study cards, or memory cards for any subject. Supports both duplex printers and manual printing workflows.

Flashcards

Overview

This skill enables creating professional PDF flashcards with a 2x5 grid layout (10 cards per sheet) optimized for efficient double-sided printing. The skill automatically handles proper alignment between front and back sides, adds cutting guides, and supports both automatic duplex printing and manual printing workflows.

When to Use This Skill

Use this skill when users request:

  • "Create flashcards for [topic]"
  • "Make study cards for [subject]"
  • "Generate flashcards from this content"
  • "Help me make printable flashcards"
  • Any request involving creating physical or printable study materials

Quick Start

The skill automatically handles Python environment setup. Simply use the add_flashcards() function:

from scripts.create_flashcards import add_flashcards

# Define flashcards as a list of dictionaries
flashcards = [
    {"front": "Question 1", "back": "Answer 1"},
    {"front": "Question 2", "back": "Answer 2", "category": "Topic Name"},
    # ... up to any number of cards
]

# Generate PDF
add_flashcards(flashcards, "output.pdf")

Categories are optional and will appear in the top-right corner of the back side of each card when provided.

Setup Requirements

The skill handles setup automatically. When Claude Code uses this skill:

  • A virtual environment is created automatically if needed
  • Dependencies (reportlab) are installed automatically
  • No manual setup required

Creating Flashcards

Basic Usage

from scripts.create_flashcards import add_flashcards

cards = [
    {"front": "7 × 8 = ?", "back": "56", "category": "Math"},
    {"front": "What is Python?", "back": "A programming language", "category": "Programming"},
]

add_flashcards(cards, "my_flashcards.pdf")

For Duplex Printers (Default)

Generate a single PDF with alternating front/back pages:

add_flashcards(flashcards, "flashcards.pdf", separate_pdfs=False)

Printer settings to look for:

  • "Two-Sided" or "Duplex Printing"
  • "Long-Edge binding" or "Flip on Long Edge"
  • "Automatic 2-Sided"

For Printers Without Duplex Support

Generate separate PDFs for fronts and backs:

add_flashcards(flashcards, "flashcards.pdf", separate_pdfs=True)

This creates:

  • flashcards_fronts.pdf - Print first
  • flashcards_backs.pdf - Print after flipping the stack

Printing instructions:

  1. Print all pages from _fronts.pdf
  2. Take the printed stack and flip it over
  3. Reinsert into printer tray (blank side up)
  4. Print all pages from _backs.pdf
  5. Cut along the dotted lines

Layout Specifications

  • Grid: 2 columns × 5 rows = 10 cards per sheet
  • Card size: Approximately 3.5" × 1.9" (calculated based on page size and margins)
  • Margins: 0.5 inch on all edges for safe printing
  • Spacing: 0.2 inch between cards
  • Cutting guides: Dotted lines centered between cards
  • Back alignment: Automatically mirrored for proper alignment with fronts

Workflow

When Claude Code creates flashcards for you, it will:

  1. Gather content: Collect or generate the questions and answers based on your request
  2. Format data: Structure as list of dictionaries with "front", "back", and optional "category" keys
  3. Setup environment: Automatically create venv and install dependencies (first time only)
  4. Generate PDF(s): Call add_flashcards() with appropriate parameters
  5. Deliver PDF: Provide the PDF file ready for printing

When you print:

  1. Print: Follow instructions based on printer capabilities (duplex or manual)
  2. Cut: Use dotted lines as guides to separate individual cards

Resources

scripts/create_flashcards.py

The main Python script for generating flashcard PDFs. Contains the add_flashcards() function which handles:

  • PDF generation using reportlab
  • 2x5 grid layout calculation
  • Front/back page alignment (mirroring for proper double-sided printing)
  • Cutting guide generation
  • Category display on back side of cards
  • Both single PDF and separate PDF modes

Key function:

add_flashcards(flashcards_data, output_filename="my_flashcards.pdf", separate_pdfs=False)

Parameters:

  • flashcards_data: List of dicts with 'front' and 'back' keys, and optional 'category' key (max 50 characters)
  • output_filename: Name of output PDF file
  • separate_pdfs: If True, creates separate files for fronts and backs

scripts/ensure_venv.py

A helper script that automatically sets up the Python virtual environment and installs dependencies. Claude Code uses this to ensure seamless operation without manual setup.

scripts/run.sh

A bash wrapper script that handles venv activation and runs the flashcard generator. Alternative to the Python wrapper.