MyNixOS website logo
Description

Read and Analyze 'Anki' Flashcard Databases.

Comprehensive toolkit for reading and analyzing 'Anki' flashcard collection databases. Provides functions to access notes, cards, decks, note types, and review logs with a tidy interface. Features extensive analytics including retention rates, learning curves, forgetting curve fitting, and review patterns. Supports 'FSRS' (Free Spaced Repetition Scheduler) analysis with stability, difficulty, retrievability metrics, parameter comparison, and workload predictions. Includes visualization functions, comparative analysis, time-based analytics, card quality assessment, sibling card analysis, interference detection, predictive features, session simulation, and an interactive Shiny dashboard. Academic/exam preparation tools for medical students and board exam preparation. Export capabilities include CSV, Org-mode, Markdown, SuperMemo, Mochi, Obsidian SR, and JSON formats with progress reports.

ankiR

R-CMD-check r-universe

Comprehensive R toolkit for reading, analyzing, and visualizing Anki flashcard collection databases. 135 functions for collection analysis. For FSRS algorithm implementation, see r-fsrs.

Installation

# From r-universe (recommended)
install.packages("ankiR", repos = "https://cran.r-universe.dev")

# From GitHub
remotes::install_github("chrislongros/ankiR")

# Arch Linux (AUR)
# yay -S r-ankir

Quick Start

library(ankiR)

# One-liner overview
anki_quick_summary()
#> Anki: 5847 cards (4521 mature, 892 young, 434 new) | Due: 127 | Streak: 47 days | Retention: 91.2%

# Detailed report
anki_report()

# Collection health check (0-100 score)
anki_health_check()

Core Functions (Start Here)

FunctionDescription
anki_quick_summary()One-line collection overview
anki_report()Comprehensive statistics
anki_health_check()Collection health score (0-100)
anki_cards()Read all cards
anki_notes()Read all notes
anki_revlog()Read review history
anki_retention_rate()Calculate retention
anki_streak()Current study streak
anki_plot_heatmap()Review calendar heatmap
anki_plot_retention()Retention over time

Advanced users: See full function list below for forecasting, burnout detection, A/B testing, gamification, and more.

What's New in 0.6.0

Learning Efficiency Analysis

anki_learning_efficiency()    # ROI: retention per time spent
anki_retention_by_type()      # Retention by card type (cloze, basic, media)
anki_roi_analysis()           # Knowledge half-life extension per study minute

Forgetting Curve Fitting

# Fit your personal forgetting curve and compare to FSRS defaults
curve <- anki_fit_forgetting_curve()
anki_plot_forgetting_curve(curve)

Optimal Review Times

anki_best_review_times()      # Find when you learn best
anki_session_analysis()       # Analyze study session patterns
anki_simulate_session(30)     # Simulate a 30-minute session

Sibling & Interference Analysis

anki_sibling_analysis()       # How do sibling cards affect each other?
anki_interference_analysis()  # Find cards you confuse with each other
anki_weak_areas()             # Tags/decks with lowest retention

Actionable Recommendations

anki_card_recommendations()   # Leeches to rewrite, cards to unsuspend
anki_health_check()           # Comprehensive health score (0-100)
anki_summary()                # One-liner stats
anki_today()                  # Today's activity breakdown

Academic/Exam Preparation

anki_exam_readiness("2024-06-15")  # Will you be ready for your exam?
anki_coverage_analysis()           # % complete by topic
anki_study_priorities()            # What to study first
anki_study_plan("2024-06-15", hours_per_day = 2)

Enhanced FSRS Analysis

fsrs_compare_parameters()     # Compare your FSRS params to defaults
fsrs_memory_states()          # Current memory state for all cards
fsrs_decay_distribution()     # FSRS-6 per-card decay analysis

New Export Formats

anki_to_obsidian_sr()         # Obsidian Spaced Repetition plugin
anki_to_mochi()               # Mochi Cards JSON
anki_to_json()                # Full collection as JSON
anki_progress_report("html")  # Shareable progress report

Enhanced Search

# Advanced search operators
anki_search_enhanced("added:7 rated:3:1")      # Added in 7 days, rated Again in 3 days
anki_search_enhanced("prop:lapses>5 is:leech") # High-lapse leeches
anki_search_enhanced("re:^The\\s+")            # Regex search
anki_search_enhanced("deck:German OR deck:Spanish")

# Find similar cards with TF-IDF
anki_find_similar(1234567890, method = "tfidf")

Forecasting

# Monte Carlo forecasting (recommended for irregular study habits)
mc <- anki_forecast_monte_carlo(days_ahead = 30, n_sim = 1000)
mc$summary                           # Daily forecasts with CIs
mc$prob_above(day = 7, threshold = 100)  # P(>100 reviews on day 7)
anki_plot_monte_carlo(mc)            # Visualize with confidence bands

# Statistical forecasting (ARIMA, Holt-Winters, Seasonal)
anki_forecast_enhanced(method = "holt", days_ahead = 30)

# Compare methods
anki_compare_forecasts(days_ahead = 14)

# Scenario-based projections
anki_workload_projection(days = 30)

Visualizations

anki_plot_heatmap()           # Calendar heatmap
anki_plot_retention()         # Retention over time
anki_plot_forecast()          # Upcoming workload
anki_plot_difficulty()        # FSRS difficulty distribution
anki_plot_intervals()         # Interval distribution
anki_plot_hours()             # Reviews by hour
anki_plot_weekdays()          # Reviews by weekday
anki_plot_forgetting_curve()  # Personal forgetting curve

Review Heatmap

Time Series Analysis

anki_ts_retention(by = "week")
anki_ts_intervals(by = "week")
anki_ts_decompose()           # Trend + seasonal + residual
anki_ts_anomalies()           # Unusual study days
anki_ts_forecast()            # Forecast future reviews

Time Series Decomposition

Core Features

Search (Anki-like syntax)

anki_search("deck:Medical tag:cardiology")
anki_search("is:due -is:suspended prop:ivl>30")

anki_leeches()       # Problem cards
anki_mature()        # Cards with ivl >= 21
anki_due()           # Due for review

FSRS Data Reading

ankiR reads FSRS data from your Anki collection but does not implement the FSRS algorithm. For algorithm implementation, see fsrs-r-pure.

anki_cards_fsrs()                    # Get cards with FSRS parameters
fsrs_current_retrievability()        # Current memory state from DB
fsrs_forgetting_index()              # % below target retention
fsrs_get_parameters()                # Read FSRS parameters from collection
fsrs_compare_parameters()            # Compare your params to defaults
fsrs_memory_states()                 # Get memory states for all cards
fsrs_export_reviews()                # Export reviews for external optimizer
fsrs_prepare_for_optimizer()         # Prepare data for fsrs-r-pure

Comparative Analysis

anki_compare_periods()    # This month vs last month
anki_compare_decks()      # Side-by-side deck stats
anki_benchmark()          # Compare to FSRS averages

Export

anki_to_csv("Medical", "medical.csv")
anki_to_org("Medical", "medical.org")
anki_to_markdown("Medical", "medical.md", format = "obsidian")
anki_to_obsidian_sr("Medical", "medical_sr.md")
anki_to_mochi("Medical", "medical.json")
anki_to_json(output = "collection.json")
anki_progress_report(format = "html")

Interactive Dashboard

anki_dashboard()  # Launches Shiny app

Function Reference

CategoryCountKey Functions
Core8anki_cards, anki_notes, anki_decks, anki_revlog
Analytics12anki_report, anki_stats_deck, anki_stats_daily
Efficiency3anki_learning_efficiency, anki_retention_by_type, anki_roi_analysis
Forgetting2anki_fit_forgetting_curve, anki_plot_forgetting_curve
Optimal Times3anki_best_review_times, anki_session_analysis, anki_simulate_session
Sibling/Interference3anki_sibling_analysis, anki_interference_analysis, anki_weak_areas
Recommendations4anki_card_recommendations, anki_health_check, anki_summary, anki_today
Academic/Exam4anki_exam_readiness, anki_coverage_analysis, anki_study_priorities, anki_study_plan
Plotting8anki_plot_heatmap, anki_plot_retention, anki_plot_forecast
Time Series14anki_ts_intervals, anki_ts_decompose, anki_forecast_enhanced
Forecasting3anki_forecast_monte_carlo, anki_plot_monte_carlo, anki_compare_forecasts
Burnout/Quality2anki_burnout_detection, anki_review_quality
Cohort/Velocity3anki_cohort_analysis, anki_learning_velocity, anki_backlog_calculator
Gamification1anki_gamification (XP, levels, achievements)
Streak Analytics1anki_streak_analytics
Content Analysis1anki_card_content
A/B Comparison2anki_ab_comparison, anki_compare_groups
Compare5anki_compare_decks, anki_compare_periods, anki_benchmark
Search9anki_search, anki_search_enhanced, anki_find_similar
Quality6anki_quality_report, anki_similar_cards, anki_tag_analysis
FSRS11fsrs_get_parameters, fsrs_compare_parameters, fsrs_memory_states
Media5anki_media_list, anki_media_unused, anki_media_missing
Export12anki_to_csv, anki_to_obsidian_sr, anki_to_mochi, anki_to_json
Utilities4anki_schema_version, anki_quick_summary, anki_today
Dashboard1anki_dashboard
Addon Import2import_addon_export, analyze_addon_import
Total137

Requirements

  • R >= 4.1
  • Anki 2.1+ (collection.anki2 format)
  • Optional: ggplot2 (plots), shiny (dashboard)

Related Projects

  • r-fsrs - FSRS algorithm implementation (Rust bindings)
  • FSRS4Anki - FSRS for Anki

License

MIT.

Metadata

Version

0.6.0

License

Unknown

Platforms (78)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows