This is a third-party 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.
I’ve been doing my reviews in a terminal for the last few weeks and finally cleaned it up enough to share.
wanikani-claude-cli-skill — a small Node CLI that does WaniKani reviews against the official API, plus an optional Claude Code skill that runs the same quiz conversationally.
Does an AI grade my answers?
No, and this is the part I’d want to know first too.
Grading is a lookup table in a file called grading.js: WaniKani’s own typo tolerance (one edit up to seven letters, two beyond), its romaji-to-kana conversion, its rule that answering another of a kanji’s readings re-prompts instead of counting against you. The model never sees the answer key — it runs two commands and prints what they say. It has nothing to be lenient with.
It’s also deliberately strict where the site is strict: shimbun is wrong for しんぶん here because it’s wrong there, and accepting it would build a habit the site punishes. Where it’s looser, it’s over things that cost you an item for punctuation alone — shinyuu for しんゆう, a capital letter, katakana words like ページ. All of it is written down in the repo.
What it looks like
1. 力
> power ryoku
✓
2. 上
> above shou
✗ reading is じょう (on'yomi) · jisho.org/search/上 #kanji
... ten items later ...
10 done, 8 perfect · 上 → Guru · 52 left
Mid-review you can type “why?” or “more” and get WaniKani’s actual mnemonic, the parts the item is built from, and its other readings — without leaving the flow. Also “drill my recent mistakes” and “critical items” (WaniKani’s own critical-condition list, live), neither of which is due and neither of which submits anything.
What it does to your account
- Reviews are real — same SRS, same wrong-answer counts, submitted through
POST /reviews. There’s no dry-run mode. - The API token needs
reviews:createand nothing else. Noassignments:start, nostudy_materials, nouser:update. - Your token is read from your environment or a local
.env, goes only toapi.wanikani.com, and is never printed. If you use the Claude half, your items and answers pass through the model as ordinary chat; the token doesn’t. - Local state is a cache you can delete at any time.
Reviews only
There’s no lessons command. There was one, it was never used, and I removed it rather than leave an untested path that writes to your account. Lessons are on wanikani.com, where they’re taught properly.
What you need
Node 20.12+, an API token, and macOS / Linux / WSL. The terminal half (wanikani review) works on its own with no model involved at all. The conversational half needs Claude Code, which is a paid Anthropic thing — worth saying plainly so nobody installs it expecting otherwise.
Install
git clone https://github.com/pendelgeist/wanikani-claude-cli-skill.git
cd wanikani-claude-cli-skill
npm install
npm link # puts `wanikani` on your $PATH
wanikani summary # checks your token works
Token from Settings → API Tokens, reviews:create ticked, either exported as WANIKANI_API_TOKEN or pasted into a .env in the repo. If you want the Claude Code half, symlink the skill and restart it:
ln -s "$PWD/.claude/skills/wanikani" ~/.claude/skills/wanikani
Happy to hear what breaks, and especially happy to hear if the grading ever disagrees with the website — that’s the one thing it isn’t allowed to do.