Custom Answer Buttons - Add more answer buttons to your Anki!

AnkiWeb addon 452291788

Adds customizable answer buttons to Anki's reviewer for rescheduling cards with math, intervals, multipliers, ranges, dates, midpoints, plus per-card visibility, sorting, and filtered-deck options.
AI-generated summary; may contain mistakes.

schedulingreview-flowfiltered-decksshortcutsappearance

Open on AnkiWeb GitHub Ask about alternatives

AnkiWeb

Rating
2 (πŸ‘ 2 Β· πŸ‘Ž 0)
Updated
2026-08-05
Anki versions
25.09.4~
Description language
en

Maintenance

active

  • Last update or commit was 35 days before the snapshot (2026-08-27).

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
24.0425.09.4+2026-08-05
History across monthly snapshots

Loading…

Similar addons

Due Load Balancer

Spreads overdue review cards across a chosen future date range using even, front-loaded, back-loaded, or bell-curve distributions, with preview, deck selection, and backup recommendations.

scheduling

Rating 0 πŸ‘ 0 Β· πŸ‘Ž 0 ⭐ 0 Anki 25.09.4~ Updated 2026-05-30

README

Custom Answer Buttons for Anki

buttonbar

Add custom buttons to the Anki reviewer's bottom bar. Each button can reschedule a card using a flexible syntax covering fixed days, interval multipliers, random ranges, specific dates, and midpoint intervals, along with per-card dynamic sorting and visibility conditions.

Configuration


Days Format Reference

The Days field controls how the card is rescheduled.

1. Variables, Numbers & Math Operators

Numbers & Operators

  • Numbers: Plain integers or decimals (e.g., 14, 1.5).
  • Math Operators: Standard operators +, -, *, /, ( ).

Native Button Variables

Use card interval variables directly (short one-character aliases accepted):

  • current β€” Current card interval
  • again or a β€” Native Again interval
  • hard or h β€” Native Hard interval
  • good or g β€” Native Good interval
  • easy or e β€” Native Easy interval

Target Date Variable

  • @YYYY-MM-DD β€” Calculates the exact number of days from today to the specified date (e.g., @2026-12-31).

Math Examples

Example Behaviour
14 Exactly 14 days later
good * 1.5 1.5Γ— the native Good interval
hard + 2 2 days more than native Hard interval
@2026-12-31 - 5 5 days before 31 Dec 2026
(good + hard) / 2 Average of Good and Hard intervals

2. Special Combinations

You can combine any variables, numbers, or dates using Range (~) or Midpoint (:):

Random Range (X~Y)

Generates a random interval between X and Y (inclusive):

Example Behaviour
5~10 Random integer between 5 and 10 days
hard~easy Random interval between native Hard and Easy
good~15 Random interval between native Good and 15 days

Midpoint (X:Y)

Calculates the exact midpoint (X + Y) / 2 between X and Y:

Example Behaviour
good:easy Midpoint between Good and Easy intervals
10:20 Midpoint between 10 and 20 days (15 days)
h:e Midpoint using short aliases
@2026-12-31:good Midpoint between target date and Good interval

3. Rounding & Minimum Day Rules

  • Minimum Day Limit: Any calculated result < 1 day (including 0, decimals between 0.0 and 1.0, or negative numbers) is automatically floored to 1 day (1d).
  • Decimal Rounding: Any decimal value $\ge 1$ is rounded (round()) to the nearest whole day.

Button Settings

Edit Button

Basic Tab

Field Description
Button Label Text shown on the button
Days Interval math expression (see above)
Ease Bonus (%) Modifies the card's internal Anki Ease Factor when a value is provided. You must input a percentage number (e.g. 15 for +15%, -15 for -15%)
Shortcut Keyboard shortcut, e.g. 5 or Ctrl+Shift+5
Allow shortcuts in Question state Trigger this button via keyboard before the answer is revealed. (Note: this applies to Native Buttons as well).
Show tooltip Brief on-screen confirmation after each button press. (Note: this applies to Native Buttons as well).
Auto-hide when narrow Hide this button when the window is too small. (Note: this applies to Native Buttons as well).

Appearance Tab

Button Colour

Click Pick Colour… to open a colour picker. The preview shows the hex code on a coloured background. Click Clear to restore the default Anki style.

Show button in card states

Three checkboxes: New / Learning / Review.

  • Uncheck all three to completely hide the button.
  • Partial selection shows the button only in selected states
Visibility Condition (optional)

Hide this button when its computed interval falls outside a range:

Field Meaning
Hide if interval < Button disappears when days < X (Supports Math/Variables)
Hide if interval > Button disappears when days > X (Supports Math/Variables)

Leave blank for no restriction. Particularly useful for multiplier or midpoint buttons:

Example: A "current" * 1.5 button with "Hide if interval > 180" won't appear on cards already scheduled far in the future, where aggressive multiplication would be inappropriate.

Visibility is evaluated dynamically per card based on the button's computed interval.

⚠ If you notice visual flickering or unexpected layout jumps, leave blank to turn it off.

Advanced Tab

Simulate Native Presses

Safely simulate a sequence of native button presses per card state to update the card's memory state and review history (revlog) before setting the due date. Separate fields for New, Learning, and Review states (defaults to good for New and Learning). (Note: this does not apply to Native Buttons).

Syntax: Separate keys by +

  • e.g., good+good
  • e.g., easy+good

Variables:

  • again
  • hard
  • good
  • easy

Note: Short aliases like a, h, g, and e are also accepted. Leave empty to skip simulation for this state.


Global Settings

Opened via the Global Settings button in the main config dialog.

Option Description
Take over native buttons Replaces Anki's native Again/Hard/Good/Easy buttons with customisable versions that match this addon's styling and layout. Note: The native core logic remains intact; only the visual buttons are taken over.

Button Order

Auto (sort by interval)
Buttons are sorted by computed interval length each time a card is shown. For multiplier and midpoint buttons whose interval changes per card.

⚠ If you notice visual flickering or unexpected layout jumps, switch to Custom mode.

Custom (configured order)
Buttons appear in the order defined in the main list. Use the ↑↓ buttons to reorder manually.

Filtered Deck / Custom Study Support

Custom buttons natively support filtered decks. Because filtered decks have different rules (some reschedule cards, some don't), you can control how custom buttons behave inside them via the Global Settings dialog.

Option Behavior
Apply date only if 'Reschedule' is enabled (Default) Smart mode. Custom buttons always appear. If the filtered deck has "Reschedule cards based on my answers" checked, they apply your target interval. If unchecked (e.g. for cramming), pressing them acts like a native Good button and safely returns the card to its home deck without altering its interval.
Always show and forcefully reschedule Custom buttons always appear. Pressing them forcefully applies the target interval, overriding the filtered deck's "Reschedule" setting.
Hide custom buttons entirely Custom buttons will never appear in any filtered deck.

Technical note: When applying a custom date in a filtered deck, the addon answers with Good first to let Anki safely handle the deck-transition (return to home deck) before applying our specific due date.


Notes on FSRS

This addon perfectly changes the exact due date of a card. However, it cannot directly modify FSRS Stability (S) and Difficulty (D).

Because Anki does not provide a native API to manually overwrite a card's S and D variables like it does for due dates, we are left with a limitation: your card's date is moved, but its underlying FSRS memory state doesn't fully reflect that massive jump.

While you can use the "Simulate Native Presses" feature in the Advanced tab to make the addon simulate clicking native buttons before setting the date (which updates S and D a little bit and logs the review), simulating a bunch of button presses at once still doesn't dramatically or predictably change S and D to perfectly match your custom interval.

Recommendation:

  • If you strictly use FSRS and care deeply about precise memory state tracking, it is highly recommended to stick to Anki's native buttons.
  • Alternatively, you can roll back to the SM-2 algorithm, which relies on a simpler Ease factor that works much more predictably with custom rescheduling.

Compatibility with Other Button Addons

To put it simply, this addon is not compatible with other addons that modify or interact with the answer buttons.

Most other button-related addons work by intercepting and modifying Anki's built-in native buttons. However, this addon creates and injects completely new custom buttons into the interface. Because our buttons are separate entities, they fall entirely outside the scope of what those other addons modify or listen to. There is no workaround for this limitation.


Changelog

v2.4 (2026-08)

  • Flicker-Free Layout Engine: Zero-delay rendering for dynamic visibility conditions (hide if < min / > max days). Buttons are filtered synchronously during the initial layout pass, completely eliminating UI flickering.
  • Kernel-Level Interval Parsing: Accurate sorting of New/Learning/Review state cards by interacting directly with Anki's Rust backend Protobuf definitions.
  • Native Button Tooltips: Optional tooltips can now be toggled for taken-over native buttons, seamlessly matching Anki's native translation strings.

v2.3 (2026-08)

  • Simulate Native Presses: Per-card-state sequence customization for New, Learning, and Review states (defaults to good for New and Learning).
  • Revlog Sync: Every simulated press in a sequence is recorded as a real review history entry (revlog) and committed to the database, ensuring complete FSRS/SM-2 state tracking and card info logging.
  • Unified Undo: All sequence presses, log entries, and rescheduling operations are merged into a single Ctrl+Z undo step.
  • Ease Bonus Refinement: Intelligently handles New cards (defaulting base ease to 250%) and supports percentage adjustments.

v2.2 (2026-08)

  • Math Engine: The Days field now supports standard math expressions (+, -, *, /, ( )).
  • Ease Bonus Field: Decoupled ease factor adjustments into a dedicated percentage UI field that modifies the card's internal Ease when a value is provided.

v2.1 (2026-08)

  • Native Button Takeover: new Global Setting to incorporate Anki's native Again/Hard/Good/Easy buttons into your custom layout. They retain their native logic but can be restyled and reordered among your custom buttons!
  • Visibility condition (Appearance tab): hide a button when its interval falls outside a [min, max] range β€” evaluated per card, live
  • Dynamic layout (Layout Settings): auto-sort re-orders buttons by computed interval on each card flip, including variable-interval buttons
  • Colour picker: QColorDialog replaces raw text input; preview swatch updates live
  • Card states in Appearance tab: three checkboxes (New/Learning/Review), all on by default; uncheck all = hidden
  • Table simplified to 4 columns: Label Β· Days Β· Shortcut Β· Colour (states/grade mode/auto-hide removed from list view)
  • Filtered deck fix: custom buttons now correctly reschedule cards inside custom-study decks

v2.0 (2026-08)

  • Random range (5~10), specific date (@YYYY-MM-DD), midpoint (X:Y)
  • Multiplier bases: Hard / Good / Easy interval (*1.3g, x2h, Γ—1.5e)
  • Per-button CSS colour, state-dependent visibility, sort by length, ↑↓ reorder, three-tab editor

v1.5 (2026-07)

  • Multiplier Support: Multiply the card's current interval (e.g. *1.5, x2) instead of using fixed days. Automatically respects deck options (Interval Modifier and Maximum Interval).
  • Ease Bonus: Adjust the card's internal Ease factor via parentheses in the Days field (e.g. 14(+15%), *1.5(-10%)).

v1.0 (2026-01)

  • Initial release

Download & Installation

Option 1: Install via AnkiWeb

You can install this addon directly from within Anki using its addon code:

<blockquote><b>452291788</b></blockquote>

<p><a href="https://ankiweb.net/shared/info/452291788">View on AnkiWeb</a></p>

Option 2: Manual Installation via GitHub

  1. Go to the Releases page.
  2. Download the latest .ankiaddon file.
  3. Double-click the file to install it into Anki.

Contact & Open Source

This project is fully open-source. You can view the source code, report bugs, or contribute on GitHub:

Author

If you encounter any bugs, have feature requests, or need help configuring the addon, feel free to reach out via GitHub Issues or email!