Anki add-on: Flow Timer

⚡ Flow Timer — Adaptive Review Pacing HUD for Anki Flow Timer adds a customizable pacing HUD to Anki that helps you keep reviews moving, notice when you are drifting, and build a more consistent review rhythm over time. Instead of acting like a simple stopwatch, Flow Timer watches how you move through each card. It tracks how long you spend on the front of the card before revealing the answer, how long you spend on the back of the card before grading yourself, and whether your current pace is staying inside the timer window or spilling into extra time. PSA Totally vibe coded this thang. Flow Timer does not change Anki’s scheduler, answer buttons, intervals, ease, deck options, card templates, or note fields. It sits on top of normal Anki reviewing as a visual pacing and feedback layer. 🎴 What Happens on Each Card When a card appears, Flow Timer starts the front timer . The front timer tracks how long you spend recognizing the card, recalling the answer, or deciding whether you know it. When you reveal the answer, Flow Timer records that front-side time. After the answer is shown, Flow Timer starts the back timer . The back timer tracks how long you spend checking the answer, processing the explanation, and choosing Again , Hard , Good , or Easy . When you grade the card, Flow Timer records that back-side time. Each reviewed card can produce two timing signals: Front time: how long it took to recall or recognize Back time: how long it took to process and grade after reveal This makes the timer more useful than a single global stopwatch. A card can be fast on the front but slow on the back, or slow on the front but quick to grade once revealed. 🌊 How Flow Mode Affects the Timer Flow Timer has two basic pacing states: Flow: you are still inside the target timer window Learn: you have gone past the target timer window Flow is not just a streak label. It is part of the feedback system that helps the timer understand your current review rhythm. When you are staying in Flow across recent cards, the add-on treats that as a sign that the current pacing target is reasonable. If you are consistently answering comfortably within the target window, session pressure can gently tighten the timer so reviews stay crisp. When you keep spilling into Learn/count-up time, the add-on treats that as a sign that the current pacing target may be too aggressive for the cards or for your current mental state. The timer can back off rather than continuing to push unrealistic pacing. In simple terms: More Flow → the timer can become slightly more demanding More Learn/count-up → the timer becomes more forgiving This lets the timer respond to your session without changing Anki’s actual scheduling. 🧠 How the Timer Adapts Over Time Flow Timer uses EMA (Exponential Moving Average) to learn card timing. EMA is a moving average that gives more weight to recent reviews while still remembering older patterns. This lets Flow Timer adapt gradually without overreacting to one unusually fast or slow attempt. For each card, Flow Timer can learn separate timing estimates for: Front-side recall/recognition time Back-side answer-processing time At first, a new card mostly uses the default timer settings because Flow Timer does not know that card yet. After the card has been seen enough times, its own timing history starts to matter more. Default confidence ramp: Timing Samples Card EMA Influence n < 3 0% n = 3 25% n = 4–5 40% n = 6–9 55% n = 10–14 70% n = 15–19 82% n ≥ 20 90% Here, n means the number of valid timing samples recorded for that side of the card. Over time, a repeated card gradually gets its own personalized timer target. Cards that usually take longer can get a more realistic timer. Cards that are usually quick can get a tighter timer. This happens separately for the front and back of the card. 📈 What Happens During a Session Flow Timer also pays attention to your recent review rhythm during the current session. Your per-card EMA answers: How long does this specific card usually take? Your session rhythm answers: How am I reviewing right now? That matters because review speed changes. You might be locked in, tired, distracted, reviewing a harder deck, or moving through easier cards. Flow Timer blends these signals: Default timer settings + card-specific EMA history + current session Flow/Learn rhythm = active timer target So the timer is not only learning cards over weeks or months. It is also reacting to how your current session is going. ⏳ What Happens Over Many Reviews As you keep reviewing, Flow Timer builds lightweight timing history for individual cards. Over repeated exposures, the add-on can better estimate whether a card is usually: Quick to recognize Slow to recall Quick to grade Slow to process after reveal Consistently difficult Consistently automatic This does not affect Anki’s memory scheduling. It only affects the pacing HUD. The point is to make the review experience feel less random. Instead of every card being judged against one rigid timer, repeated cards can gradually develop more realistic pacing expectations. 🌈 Visual Feedback and Rewards Flow Timer includes a customizable visual HUD with: Front/back timer Flow/Learn counter Progress bars Stars and dots Milestone rewards Color and shimmer feedback Adjustable HUD position Opacity and font controls The visual system is meant to make pacing easy to understand at a glance. You should be able to feel when you are moving smoothly, slowing down, or building momentum without opening a stats page. 🏷️ AnKing Tag Indicator Flow Timer can optionally show a small AnKing high-yield tag indicator under the HUD. It can detect recognized AnKing First Aid-style yield tags such as: 1-HighYield 2-RelativelyHighYield 3-HighYield-Temporary 4-LowerYield 5-LowYield This is only a visual tag indicator. It does not change scheduling, grading, card difficulty, or timer behavior. 🎮 Reward Text System Flow Timer includes customizable reward text for streaks and milestones. Reward settings include: Meme and non-meme reward modes Per-reward On/Off toggles Per-reward Meme labels Masculine, feminine, and neutral reward voice options Editable reward text You can keep the experience clean and study-focused, or make it more chaotic and game-like depending on your preference. 🧩 Acronyms Used EMA (Exponential Moving Average): a moving average that emphasizes recent data while still preserving older trends. Flow Timer uses EMA to estimate how long each card usually takes. HUD (Heads-Up Display): the visual overlay shown during review. FSRS (Free Spaced Repetition Scheduler): Anki’s newer scheduling algorithm. Flow Timer does not modify FSRS. SM-2 (SuperMemo 2): Anki’s older scheduling algorithm. Flow Timer does not modify SM-2. JSON (JavaScript Object Notation): a lightweight data format used to store settings and adaptive timing history. AnKing: a widely used medical-school Anki deck ecosystem. Flow Timer can optionally detect some AnKing high-yield tags for visual display. 🛡️ What Flow Timer Does Not Change Flow Timer does not change: Anki scheduling FSRS or SM-2 behavior Intervals Ease Deck options Answer buttons Card templates Note fields It is a pacing, feedback, and motivation layer only. 📦 Large Collections Flow Timer stores lightweight per-card timing stats, so the EMA calculations themselves are very small and should scale reasonably for large Anki collections. Flow Timer is designed to store lightweight per-card timing history and should work normally with large Anki collections, though adaptive history file size will grow as more cards accumulate timing data. ✅ Good For Medical students AnKing users High-volume Anki reviewers People trying to reduce review drift Users who want real-time pacing feedback People who like visual progress systems Anyone who wants Anki to feel more motivating without changing the scheduler