The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

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)

Function Description
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
# 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

Category Count Key Functions
Core 8 anki_cards, anki_notes, anki_decks, anki_revlog
Analytics 12 anki_report, anki_stats_deck, anki_stats_daily
Efficiency 3 anki_learning_efficiency, anki_retention_by_type, anki_roi_analysis
Forgetting 2 anki_fit_forgetting_curve, anki_plot_forgetting_curve
Optimal Times 3 anki_best_review_times, anki_session_analysis, anki_simulate_session
Sibling/Interference 3 anki_sibling_analysis, anki_interference_analysis, anki_weak_areas
Recommendations 4 anki_card_recommendations, anki_health_check, anki_summary, anki_today
Academic/Exam 4 anki_exam_readiness, anki_coverage_analysis, anki_study_priorities, anki_study_plan
Plotting 8 anki_plot_heatmap, anki_plot_retention, anki_plot_forecast
Time Series 14 anki_ts_intervals, anki_ts_decompose, anki_forecast_enhanced
Forecasting 3 anki_forecast_monte_carlo, anki_plot_monte_carlo, anki_compare_forecasts
Burnout/Quality 2 anki_burnout_detection, anki_review_quality
Cohort/Velocity 3 anki_cohort_analysis, anki_learning_velocity, anki_backlog_calculator
Gamification 1 anki_gamification (XP, levels, achievements)
Streak Analytics 1 anki_streak_analytics
Content Analysis 1 anki_card_content
A/B Comparison 2 anki_ab_comparison, anki_compare_groups
Compare 5 anki_compare_decks, anki_compare_periods, anki_benchmark
Search 9 anki_search, anki_search_enhanced, anki_find_similar
Quality 6 anki_quality_report, anki_similar_cards, anki_tag_analysis
FSRS 11 fsrs_get_parameters, fsrs_compare_parameters, fsrs_memory_states
Media 5 anki_media_list, anki_media_unused, anki_media_missing
Export 12 anki_to_csv, anki_to_obsidian_sr, anki_to_mochi, anki_to_json
Utilities 4 anki_schema_version, anki_quick_summary, anki_today
Dashboard 1 anki_dashboard
Addon Import 2 import_addon_export, analyze_addon_import
Total 137

Requirements

License

MIT

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.