Announcing Beeminder for Anki


This add-on allows you to send your time spent reviewing, the number of cards reviewed and/or the number of cards (or notes) added per day to a Beeminder goal. Try it out by copy-pasting the code “1728790823” into the desktop program. Backup your data first, as always.

Please collect your bug reports, feature requests, feedback, … below.

Tip: send both the number of cards reviewed and added to the same goal and watch the world burn! J/k, it’s possible and it might not even be that bad of an idea?

I had to speed up this announcement post and the uploading of the latest version since I only just noticed I got mentioned in the weekly beemail. :open_mouth:


Thanks, great work! I use Anki every day so an improved Anki-Beeminder connection will be very valuable to me.

Here are my top requested features:

  1. per deck/tag/card-type reporting
  2. total cards due (for controlling backlogs)
    1. total notes/cards (for tracking new note/card creation) (Whoops, you have this, it’s right there in the screenshot!)

Do you have plans to open-source the plugin? I would be glad to help out with these.


Ooh, number 2 is a good one! Awesome! You can definitely help out, because I could use that one myself. I’ve put the code up on Github, after some repo cleansing.

If you’re using this add-on, feel free to vote on the features you’d like to see most, and like @olimay, feel free to help out!

  1. populating your graph with historical data,
  2. customizing the automatic datapoint comments,
  3. per deck/tag/card-type reporting,
  4. syncing total cards due (for controlling backlogs),
  5. clickable icon to sync in the top-right corner,
  6. displaying your daily Beeminder targets,
  7. support for odometer-style goals

0 voters


Will time spent reviewing with the Anki iPhone app count towards the Beeminder goal?


Try it! I’d forgotten there even is an iOS app! If it syncs with desktop Anki, it don’t know why it shouldn’t work (after syncing of course). Same goes for AnkiWeb.

Do note that the “Sync after synchronizing with AnkiWeb” option is not wired up at the moment, so sync at shutdown or manually.


Meta aside: I’m not a fan of the 3-vote limit because you can express slightly richer preferences without it. For example, you can cast a vote for “anything but X”. I guess the idea with the limit is to have people be more thoughtful about what they really want most. But if the item with the most votes is what gets implemented first then voters already have incentive to limit what they vote on, to help their most favorites get ahead.

(Not actually a big deal, I just like nerding out about voting mechanisms and am of the opinion that you really can’t beat approval voting unless you involve money.)

PS: More nerding out: The voting strategy is then basically to vote for your true favorite and then if your true favorite doesn’t look like it has good chances, also vote for some (or all but one, if there happens to be one disaster of a popular candidate) of the popular candidates as well. No more agonizing about “wasting your vote” on a candidate you like who can’t realistically win. I’m talking to you, America.

Kind of amazing how simple a change this would be in political elections. Change “one person one vote” to “one person one ballot”. You get to fill in as many circles as you like. The candidate with the most votes is still the winner.


When you start geeking out about voting, I start listening! I once tried to implement your auction based decision-making process, but did not find my participant willing enough.

I did think about unlimited votes, but remembered the Uservoice system, where only a limited number of votes were available. I’m sold though! I could vote for everything but the things I’d really want to implement :wink: Can you remove the max parameter please, if that wouldn’t bork the poll?


Beta version available with support for cards due!


I just tried removing the “max=3” but maybe it’s too late once the poll’s created? No big deal either way. Hopefully I didn’t break it!


I have so much love for this plugin!


Interesting voting results so far. Almost everyone used their 3 votes, which probably proves @dreev’s theory I shouldn’t have limited the maximum number of votes. Of the two most popular ones, one has already been implemented (due cards). Surprised that the clickable icon is at a shared 1st place.

Displaying your daily Beeminder targets (i.e. acting like a dashboard for your Anki goals), is at the complete bottom of my personal list, so I’ll only consider that if it should reach the number one spot. :slight_smile:

I’m going to keep the number of new releases down to give everything some more time to settle and for bugs to surface. Also to minimize creeping bugs due to users following non-sequential upgrade paths.
Just one more minor release (1.7) coming. I’ll try to include the clickable icon and to wire up the ankiweb checkbox.

I’ve also decided what the next big release (2.0) will bring: generalized and unlimited goals, meaning you can make as many goals of as many types you want, with each goal having their own optional filter (i.e. per deck/tag/… reporting). Odometer-style goals did not get any votes and I did not really want to implement that. However I’ve come to feel it’s essential in making the add-on more flexible and more useful to more people; not in the least to users of muflax’ old add-on. I’ll try to add that sooner rather than later.


It’s probably not really interesting to do, but I imagine some sort of site or location where those starting to use the plugin can go for some standard scenarios… Some of the features are clear from the perspective of the plugin, but then I don’t know what data it will publish to BM etc.


Beeminder for anki is not workinf for me. :frowning: :sob:
I didn’t know if I should post it here, sorry if I’m wrong, but I thought that could help @ianminds develop the plugin.

Traceback (most recent call last): File "D:\Users\#####\Documents\Anki\addons\beetime\", line 25, in <lambda> mw.connect(manualSync, SIGNAL("triggered()"), lambda: syncDispatch(at='manual')) File "D:\Users\#####\Documents\Anki\addons\beetime\", line 59, in syncDispatch prepareApiCall(col, reportTimestamp, numberOfCards, comment, goal_type='reviewed') File "D:\Users\#####\Documents\Anki\addons\beetime\", line 86, in prepareApiCall newDatapointId = sendApi(user, token, slug, data, cachedDatapointId) File "D:\Users\#####\Documents\Anki\addons\beetime\", line 14, in sendApi response = apiCall("POST", user, token, slug, data, did) File "D:\Users\#####\Documents\Anki\addons\beetime\", line 37, in apiCall params = urllib.urlencode(data) File "C:\cygwin\home\dae\win\build\pyi.win32\anki\outPYZ1.pyz/urllib", line 1312, in urlencode UnicodeEncodeError: 'ascii' codec can't encode character u'\xf5' in position 14: ordinal not in range(128)


Good idea! I’ve been thinking about this as well! Just this weekend I added some help text, where I started collecting things that I think would be useful to first time users.

Also I updated the beta, which is now the preferred version to use. Please help me test it by trying it out! As always, please do backup your data first. It will probably delete your current settings (as it is designed to). If you start it from a terminal, it will echo them so you could easily copy paste e.g. your API key back.

I/we definitely need to collect some usage scenario’s as well.

You can definitely help with:

  1. A wiki-post on here where we share our current Anki goals, with a copy of the graph and an explanation of the settings and the goal’s objectives. I’ll start this one.
  2. Letting me know things that are currently unclear or that you think could go in the help.

Later I’ll ask for some input on how you’d like to Beemind things that are currently not possible. But I’d like to show my ideas for the next version first, so the suggestions are directly related to what I’d be planning to implement.


Syncing review time

Edit this post and describe your goal here!

Do less

A Do less goal might be reasonable if you want to curb a habit of over-studying, or in combination with a Do more goal, to keep within a range of daily reviews.

ianminds’ Do more goal

Use case: I track my review time to make sure I do a steady and consistent amount of reviewing.
Rescuetime tracking did not work for me since it is too easy to get credit for time spent in Anki’s interface (e.g. creating decks) and not actually reviewing. With Rescuetime it was also impossible to study past midnight, while the add-on respects Anki’s end-of-day setting (not Beeminder’s).
TagTime, while the goto option for all my time-tracking needs, is literally impossible if you want to have occasional eep days and a shallow slope of e.g. only 5 minutes/day.

Syncing number of reviews

Edit this post and describe your goal here!

Syncing number of additions

Edit this post and describe your goal here!

Syncing number of cards due

Whittle down a backlog

Use case: I found myself with a backlog due to not using Anki for a while. Using a Whittle down goal with a negative slope (set to -5/day), I am forced to do both my daily reviews and a small part of my backlog. A useful setting is “Sync at startup”, which immediately puts you on the hook when, after starting Anki, your reviews due are higher than the YBR. Your only course of action then is to do enough reviews before the deadline.

What this goal doesn’t do is force you to do a daily/steady amount of reviewing. A review time/number of reviews goal might be better for that.

30 281 "still 281 cards due at 21:56:17" 31 314 "still 314 cards due at 23:46:50" 31 278 "still 278 cards due at 23:56:24" 31 274 "still 274 cards due at 00:25:20"


Too cute! :bee: I can’t think of anything I’d still like to add to this release, so I’ll be monitoring for bug reports.


I just thought I’d share this part of an email from Khatzumoto (of AJATT fame):

Just food for thought, esp on this post :slight_smile:
I think sometimes I get too caught up in the numbers, to the exclusion of what my goals in learning language or set of facts x or y is. This was a timely reminder.


– Not so cute for me :frowning:

But I’ve got the number of new cards added set up and it’s working a treat! I would quite like the option to only report data to Beeminder if I have added new cards (so no zero datapoints). I have a set up that reads when data was last submitted so it can infer when I last added cards. It’s not so informative when there’s a zero submitted every day.


Thanks for the update! And the bee has emerged on Windows :smiley:


Oh no! I switched to the new version and now I have an error!

Traceback (most recent call last):
  File "/Users/lawrence/Documents/Anki/addons/beetime/", line 172, in onApply
  File "/Users/lawrence/Documents/Anki/addons/beetime/", line 17, in store
  File "/Users/lawrence/Documents/Anki/addons/beetime/", line 20, in save
  File "anki/collection.pyc", line 110, in setMod
AttributeError: 'NoneType' object has no attribute 'mod'

I’m afraid I can’t parse this to figure out what’s wrong. What should I do? :frowning: