[NO LONGER SUPPORTED] [Userscript] WaniKani Lesson Filter

I got confused about the meaning of “Console tab” and tried copying and pasting the code on Tampermonkey itself - I’m so sorry if I have broken anything, I shouldn’t have attempted anything like that without thoroughly reading your original post :see_no_evil: my sincere apologies, I hope that the change I made can be reversed easily.

Thank you for all your hard work getting this script up and running again, I’m excited to do lessons again in manageable batches! (Too excited/impatient apparently :sweat_smile:)

…the things i do to learn japanese!

today marks the first time i entered a command in the browser console. like, ever. but i’ve got the temporary version running, and am looking forward to getting an UI for it ^^

thanks again :smiley:


I think I got it working on Saturday, but I didn’t have time to fully test it to make sure. Hopefully I’ll have time this week to wrap it up and release it for real.

I still want to look at changing the script to be compatible with other filter and reorder scripts, but I figure I can do that afterward.


Hi! I am not well-versed in computers, but was really excited to try this out! I’ve installed tampermonkey and the openframework, but for some reason, the lesson filter isn’t showing up when I click on lessons. Anyone know how I can fix this? Thanks!

The script is not working right now due to recent changes by WaniKani. I hope to have a fix released in the next several days.


Thank you!

Yes! Thank you so much! I’ll be checking this thread daily!

Version 2.0.0 has been released. If you don’t want to wait, go to your Tampermonkey settings and force an update by clicking the Lesson Filter row / Last Updated column.

Let me know if you find any issues. The only bug I know of right now is that if you go to the Quiz page and then use the browser back button to go back to lessons, the “Filter” and “Shuffle” buttons no longer work (refreshing the page fixes the issue). Also, as previously mentioned, the script is currently incompatible with Reorder Omega and other queue manipulation scripts. I may look into this at a later date, but no promises.


Just wondering, how exactly is it incompatible? Going in and applying a filter seems to work as expected, so is it just silently erasing any kind of manipulation that reorder omega does? I use omega mostly for reviews and at this point I’m not really even sure what WK’s original lesson order is (lol) so I might just be using a preset that is the same as vanilla behavior.

Lesson Filter will override any manipulation Omega is doing, yeah. But the bigger problem is that when you finish a lesson batch Omega will mess up Lesson Filter by changing the order again.

1 Like

I’ll probably take a look at making it compatible from my end, too. Just haven’t had time yet


Yes! Lesson Filter is working. Thank you! :pray:


I don’t even know what that means.

What’s a browser console? How do you get to it? How do you enter a command in it? And how does everybody know how to do all this stuff that I don’t know anything about?


None of that matters now, because Lesson Filter is back!

This means a lot to me, because as long as I’ve got Lesson Filter and Heatmap, there’s hope for me to stay on the bus and make it to the end of WaniKani, one day at a time, at which point I will proudly consider myself a beginner in Japanese.


Good job !

it is not as perfect as the last version , but it do the job ^^
i don’t know if it is a bug or you cannot do something about that , when i want to select 20 vocab of my 44 , in the upper it stay 44 and when i finish the 20 for wanakani there is still more to do .
not a big problem of course .

If I’m being honest, I completely forgot those existed. :laughing: Looks like Reorder Omega doesn’t handle this either, so I can’t even just copy some code. If it’s an easy fix I’ll take care of it though.

Not sure what you mean by this though. The filtering itself should definitely be working. If you set it to do 20 vocab, 0 radicals, and 0 kanji, the lesson session should definitely end after you complete those 20 vocab lessons. What exactly did you see?

1 Like

nope it does not end , remade a test now (with 5) when i finish he ask me to return dashboard or , continue with new lessons
(" Good job! The items you have just finished quizzing on have been moved to your review queue. Do you wish to continue on with the lessons? " )

And did you hit “continue with new lessons”? I’m fairly certain it would end the session if you do that.

1 Like

i have try it now ,yes it does end the session .
not intuitive :DDDD but it get me directly to the dashboard .
thanks !

1 Like

I agree. Unfortunately the recent WaniKani changes made it harder to access and modify the lesson queue data. Previously I was able to change the queue that WaniKani already used, which is why the counts were correct and why that button didn’t appear when the lessons were all finished. Now I have to maintain the queue myself, so that automatic integration is lost. It’s possible I can make both of those work, but I’ll have to do it manually and they could break again if WaniKani makes more changes. :cry:


thanks for the update! unfortunately, it doesn’t seem to work for me after updating to 2.0.0.

when trying to click filter or shuffle nothing happens, the buttons are unresponsive and do not animate as if they have been clicked, and if i open the console window this error message is present:

 Uncaught (in promise) ReferenceError: $ is not defined
    at parse_page (<anonymous>:115:15)
    at nrWrapper (lesson?queue=3753-37…5-3756-3758:6:28155)
parse_page	@	VM4390:115
nrWrapper	@	lesson?queue=3753-3754-3755-3756-3758:6
Promise.then (async)		
o.then	@	lesson?queue=3753-3754-3755-3756-3758:6
startup	@	VM4390:540
nrWrapper	@	lesson?queue=3753-3754-3755-3756-3758:6
Promise.then (async)		
o.then	@	lesson?queue=3753-3754-3755-3756-3758:6
(anonymous)	@	VM4390:537
(anonymous)	@	VM4390:543
nrWrapper	@	lesson?queue=3753-3754-3755-3756-3758:6
append_to_tag	@	userscript.html?name…70-0197602bb2cf:227
nrWrapper	@	lesson?queue=3753-3754-3755-3756-3758:6
Promise.then (async)		
o.then	@	lesson?queue=3753-3754-3755-3756-3758:6
load_and_append	@	userscript.html?name…70-0197602bb2cf:221
load_script	@	userscript.html?name…70-0197602bb2cf:243
include	@	userscript.html?name…70-0197602bb2cf:136
initializeLessonQueue	@	userscript.html?name…c6-8c628a4ac31d:106
initialize	@	userscript.html?name…c6-8c628a4ac31d:101
(anonymous)	@	userscript.html?name…c6-8c628a4ac31d:376
(anonymous)	@	userscript.html?name…c6-8c628a4ac31d:377
St	@	VM4350:9
(anonymous)	@	userscript.html?name…8ec6-8c628a4ac31d:1
window.__f__lgtbmtl7.vw	@	userscript.html?name…8ec6-8c628a4ac31d:1
St	@	VM4350:9
n	@	VM4350:71
(anonymous)	@	VM4350:74
p	@	VM4350:68
Mt	@	VM4348 content.js:8
m	@	VM4348 content.js:53
d	@	VM4348 content.js:55
send	@	VM4348 content.js:55
(anonymous)	@	VM4348 content.js:40
(anonymous)	@	VM4348 content.js:19
setTimeout (async)		
(anonymous)	@	VM4348 content.js:19
Ln.addEventListener.Et.capture	@	VM4348 content.js:1

using tampermonkey v4.18.1, wk open framework v1.1.0, microsoft edge v112.0.1722.48 on macOS. :pray: