[Userscript] WaniKani JLPT Indicator

This is a third-party script/app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

Have you ever wondered which JLPT level a given vocab or kanji belongs to while learning or reviewing it? This script will give you an indicator in the upper left corner of the screen. Here are some examples of what it looks like:

14 25
(it gives you just the lower box, not the upper one with “common” in it - that’s provided by the “WaniKani Common Vocab Indicator” script. I kept that script running for the screenshots so that you can see the two scripts are visually compatible.)

The code for this script is based on @dtwigs “WaniKani Common Vocab Indicator” script. (Thank you :slight_smile:)
The JLPT information is taken from Jonathan Waller‘s JLPT Resources page http://www.tanos.co.uk/jlpt/.

You can install it via GreasyFork.

Before you ask, yes, the JLPT level information is visible on Jisho, but unfortunately it is not exposed via their API (there is a three-year-old thread that asks for this, but so far nothing happened). So I decided to directly include the necessary information in the script.


Haha, we must think alike, I made the same thing a while ago. Sorry for never sharing it and saving you a couple of hours. But I think since I was being just focused on myself I did only include the marker for N5 & N4 words so a complete version is of course better :+1:


Thanks for making this script! I put it on The New and Improved List of API and Third Party Apps under Reviews & Lessons.


Haha, great! Actually the time was not wasted as I learned a lot about userscripts and interacting with WaniKani and the like.


Ooohhh, thank you so much for adding the script! :heart_eyes_cat:

Thank you!

1 Like

What. There’s no way 天才 is an N1 word… That’s like N4 at best. :thinking:
(I mean, there’s no problem with the script, since jisho lists the same info, but I just wonder how reliable said info is… Oh well, better than nothing I guess?)

1 Like

Yeah, sorry. I’m only relying on other people’s information (as it is the best that I have).

So far, I’m using a different vocab list for my JLPT studies (from an app called StickyStudy), but I found that list to be somewhat worse than the one Jisho is based on (I encountered a few words in my tests that I had not learned through that list). So I decided to go with the information Jisho provides as well.

What makes you think this word would be N4 rather than N1? Have you encountered it in tests? (I think I haven’t, so far, but ofc that does not mean anything either…)

1 Like

Don’t be! There’s nothing you can do about it, except making the statistical analysis yourself, and that’s waaaay beyond the scope of your script.

It’s based on use, and how common that word is, I guess? You would never be asked about the reading of that word as part of the N1 and N2. I feel it might be a bit advanced still for N5, so that leaves only N4 and N3…

1 Like

Thanks :blush: I know that I can do nothing (reasonable) about it, it’s just that it would be nice to provide perfectly correct information (at the same time knowing that this doesn’t exist), so that’s why I’m sorry…

Hm, actually I have no clue how the JLPT contents is determined. But being useful and common sounds like a valid assumption. Do you see that word so often in the wild?

Yes, very. One of the favorite for my students to praise each other is “天才かも!” (arguably, that’s spoken, not written). There are also more than a few 天才 characters in manga. Other than that, I guess it just appears as often as “genius” in English?


I’ve been doing some comparisons between JLPT level, common tag, google results, etc as I go with learning vocab. Yep, sometimes I do find some weird situations… But as long as one considers this info not to be the absolute truth, it’s still very useful.


I’ve published v0.2.0 of WaniKani JLPT Indicator. It now removes ~ and trailing する from vocab words before checking their JLPT level.

1 Like

Vielen Dank! This is cool to have on screen!

1 Like

Thanks for the script, but I think I have a bug to report.
On the lessons page the loading sometimes go on forever, and judging from the console it’s because the l/currentLesson from the jstorage is null at that times, so I added a check for that inside handleJLPT and now the loading doesn’t hang.

function handleJLPT(currentItem) {
        if (!currentItem)

Thank you! I think I never came across the hanging (or simply did not notice), but checking for null is definitely always a good thing ™. Will fix and release asap.

Edit: I’ve published version 0.3.0 of WaniKani JLPT Indicator.

Why does it say to use this script with caution
on the list of API and Third Party Apps thread?

I did not put the label there but I think it’s because nobody knows which kanji and vocab may occur in which level, so it’s more of an informed estimate than a hard fact.

1 Like

I gotcha … thanks, Nicole
That has put my paranoia around security at rest :grinning:

1 Like

Do you know if there is any script that would show it for the different kanken levels? That would be awesome! Currently I write a notice in every kanji and assign it manually