Guide
Everything you need to know about DokiDokiDict.
Getting Started
- Download DokiDokiDict from itch.io and run the installer.
- Launch the app. You'll see the settings window.
- In the General tab, pick a scan mode and select your target (your game, VN, or region).
- Click the green Start button.
- Hold Shift and point your cursor at Japanese text. A popup appears with definitions.
That's it. Dictionary lookups, OCR, and MeCab furigana all work offline with no configuration. AI features (definition ranking, AI furigana) require a Gemini API key, see AI Features.
If nothing happens when you hold Shift, make sure the backend is running (green dot in the status bar) and your scan mode target is set correctly.
Scan Modes
DokiDokiDict needs to know where to look for text. You pick this in the General tab.
Window Mode (Recommended)
Captures a specific window. Click Select... then click on your game or VN window. DokiDokiDict will only scan that window, even if other things are on top of it. This is the recommended mode, all features work at their best here.
Region Mode
Captures a rectangle on your screen. Click Select... then drag to draw the area. This is a fallback for when Window mode doesn't work for your setup.
Screen Mode
Captures your entire screen. Also a fallback. Most features beyond basic lookups won't work as well outside of Window mode.
Magpie Compatibility
Use Magpie with Magpie Compatibility Mode (General tab) in two situations:
- Exclusive fullscreen games (like Tsukihime or Fate/stay night) that Window mode can't capture. Run the game in windowed mode and let Magpie upscale it to fullscreen.
- Old games that don't work in Window mode even when windowed. Many older titles render in ways Window mode can't see. Routing through Magpie bypasses that entirely.
When picking the window in Window mode, do not select the game itself. Hover near the top of the screen to reveal the Magpie toolbar and select that instead.
Enabling or disabling Magpie mode requires closing and reopening the app.
OCR Provider
The default OCR provider is Google Lens (cloud, requires internet). You can switch to meikiocr (local, offline, horizontal text only) in the General tab dropdown.
Changing OCR provider requires restarting the backend (Stop then Start).
Looking Up Words
Hold your lookup hotkey (default: Shift) and move your cursor over Japanese text. A popup appears showing:
- The word with its reading
- Numbered definitions, each sense on its own line
- Entry badges (①②③...) corresponding to number keys 1-9 for quick Anki export
- Frequency badge (×2, ×3...) showing how many times you've encountered this word, if word tracking is enabled
The popup follows your cursor and disappears when you release the hotkey. If AI definition ranking is enabled, the most relevant sense appears first, marked with a gold ✨.
Furigana Overlays
DokiDokiDict can display furigana readings directly on top of your game or VN window. There are three methods:
MeCab Furigana (Instant)
Press Num - to trigger. Uses MeCab, runs locally, no internet needed, results appear instantly. This is the recommended mode alongside Dynamic MeCab.
Dynamic MeCab
Press Num / to toggle. When enabled, MeCab furigana updates automatically whenever new text appears. No need to press anything, just read and the furigana follows.
AI Furigana (Context-Aware)
Press Num * to trigger. Uses Gemini to pick the correct reading based on context. This handles ambiguous readings like names (衛宮士郎 えみやしろう) correctly. Requires a Gemini API key (see AI Features).
Clearing Furigana
Press Delete to clear all furigana from the screen.
Appearance
In the Furigana tab you can change the furigana color, size, and position.
Skip Known Words
If you have Anki integration enabled with "Skip known words" checked, furigana won't appear on words you already know (mature Anki cards and/or words seen N+ times).
Pitch Accent
DokiDokiDict can color-code furigana by pitch accent. High-pitch morae show up red, low-pitch morae show up blue. You can enable this in the Pitch Accent tab.
Pitch accent coloring works on the furigana overlay, on SRS cards, and in Anki exports (if you have the Pitch Accent field mapped).
Dictionaries
DokiDokiDict ships with JMdict (English) built in. You can also import additional dictionaries in Yomichan/Yomitan format.
Importing Dictionaries
- Get a Yomichan dictionary
.zipfile. You can find dictionaries on TheMoeWay's resources page. - In the Dictionary tab, click Import or drag and drop the
.zipfile. - The dictionary appears in the list. Check it to enable it.
You can import as many dictionaries as you want. Enable or disable them individually.
Changing dictionaries requires restarting the backend (Stop → Start).
Profiles
Profiles let you run multiple dictionary configurations simultaneously with different hotkeys. Each profile gets its own popup window and dictionary stack.
Why Profiles?
Say you want JMdict (English definitions) on Shift and a J-J dictionary on Alt for your monolingual transition. Create two profiles, assign different dictionaries and hotkeys to each, and both popups work independently.
Creating a Profile
- Go to the Profiles tab.
- Click + Add Profile.
- Name it and select which dictionaries it should use.
- In the Shortcuts tab, set the lookup hotkey for the new profile.
Intra-popup Lookups
You can lock a popup in place and look up words inside the definition text. If you're using monolingual (J-J) dictionaries this is essential, since the definitions themselves will have words you don't know.
Press Num 0 while a popup is visible. The popup freezes and becomes interactive. Now hold your profile hotkey (say Shift) and hover over a word in the definition. A child popup appears with definitions for that word.
You can nest these up to a configurable depth (default 3, set per profile in the Profiles tab). Each child popup can itself be locked. Press Num . to dismiss the topmost locked popup, they dismiss in stack order (last locked, first dismissed).
Anki Integration
DokiDokiDict can export words directly to Anki while you're reading.
Setup
- Install the AnkiConnect add-on in Anki (code:
2055492159). - Make sure Anki is running.
- In DokiDokiDict's Anki tab, check Enable Anki Integration.
- Click ⟳ Fetch from Anki. This pulls your deck names, note types, and field names automatically so you can just pick from dropdowns.
- Select your deck and note type.
- Map whichever fields you want to export.
If "Fetch from Anki" shows "✗ Failed", Anki probably isn't running or AnkiConnect isn't installed.
Export Fields
All of these are optional, map each one to the corresponding field in your Anki note type:
| Field | What it exports |
|---|---|
| Expression | The word (kanji form) |
| Reading | The reading (hiragana) |
| Glossary | The definition |
| Sentence | The sentence you were reading |
| Sentence Reading | The sentence with MeCab furigana in Anki bracket notation |
| Image | A screenshot of your game at that moment |
| Target Program | The name of the game or application window |
| Pitch Accent | Pitch notation string (say [2] LH↓L) |
Exporting
While the popup is showing, press E to export the top entry, or press 1-9 to export a specific numbered entry. The export button shows status: + (ready), ⋯ (sending), ✓ (added), ✗ (error). You can hover over ✗ to see what went wrong.
Skip Known Words
Check "Skip known words" in the Anki tab. If enabled, words with mature Anki cards and/or words seen N+ times won't show furigana.
Built-in SRS
DokiDokiDict has its own spaced repetition system using the FSRS-4.5 algorithm. It works standalone, you don't need Anki.
Adding Cards
Hold your lookup hotkey and press S. The card gets the word, reading, definition, pitch accent, the sentence you're reading, and a screenshot. The popup shows S✓ when it's added. If the word is already in your deck it shows S∈.
Reviewing
Go to the SRS tab, Review sub-tab. Cards show the word on the front, click Show Answer to see everything (reading, definition, sentence, image). Grade yourself: Again, Hard, Good, or Easy.
Deck Browser
The Deck Browser sub-tab shows all your cards. You can filter by All, Due, New, Learning, Suspended, or Pending. Right-click a card to suspend, unsuspend, or delete.
Settings
In the SRS tab, Settings sub-tab:
- New cards per day (default: 20)
- Max reviews per day (default: 200)
- Learning steps (default:
1,10). These are minutes between learning-phase reviews, comma-separated. So1,10means the card shows again after 1 minute, then again after 10 minutes, then graduates to a normal review card.
Auto-Add & Test-Before-Add
You can have words you've looked up often enough get added to your deck automatically. Enable Automatically add with occurrence count ≥ N in the SRS settings and set your threshold (say 5, meaning any word you've looked up 5+ times gets added).
Test-Before-Add
If you enable test-before-add, auto-added words don't go straight into your deck. They go into a pending state. A few pages later (you set the delay, default 5 pages), the app surprise-quizzes you on the word. If you knew it, the card gets added. If you didn't, it gets dropped. There's no "quiz pending" notification, the surprise is the point.
Review While Reading
You can have cards appear during your reading session instead of only in the SRS tab. Enable Show review cards while I'm reading in SRS settings.
Timing
Two modes:
- Time-based: A card shows up every N minutes (default 5).
- Pages-based (recommended): Cards get spread across your daily reading goal. This requires a reading streak goal to be set, if you don't have one the option is greyed out and it falls back to time mode.
How It Works
The app waits for a natural pause (the dictionary popup is not visible and no new text has appeared for at least 2 seconds). A gold-bordered card appears. It auto-hides after 20 seconds if you ignore it. 30-second cooldown between cards so you don't get spammed.
Sentences
Sentences accumulate automatically while you read. Any sentence containing a word you have an SRS card for gets saved to that card. When you create a new card, the app also scans your reading history for past sentences with that word. You don't need to configure anything for this, it just happens.
AI Features
DokiDokiDict uses Google's Gemini API for definition ranking, reading disambiguation, and context-aware furigana. All AI features are optional, the app works fully offline without an API key, you just won't have AI definition ranking or AI furigana.
Getting a Free Gemini API Key
New Google Cloud accounts get $300 in free credits. Sign up at cloud.google.com/free, create a Gemini API key, and paste it into DokiDokiDict's AI Settings tab. The $300 credit gives you higher rate limits and is the recommended approach.
Alternative: You can also get a free API key from Google AI Studio without signing up for Google Cloud. The free tier has lower rate limits but works fine for lighter use.
AI Definition Ranking
Many Japanese words have lots of meanings. 掛ける alone has over a dozen. When enabled, Gemini reads the surrounding context and reorders the definitions so the most relevant one is on top.
Enable this in the AI Settings tab by checking Enable AI Definition Ranking. Ranked entries show a gold ✨ in the popup.
Press J while the popup is visible to toggle the AI's justification text, a short explanation of why it chose that definition.
The recommended model is gemini-2.5-flash-lite, which is fast and accurate.
Bulk Pre-Ranking
Press Num + to pre-rank definitions for all words currently on screen. Useful before you start reading a new page, everything will already be ranked when you hover over it. Not necessary with gemini-2.5-flash-lite, as it's fast enough to rank on the fly.
Continuous Auto-Ranking
You can also enable Continuous Bulk Ranking in AI Settings. When enabled, the app automatically pre-ranks all visible words whenever new text appears and settles (3-second debounce). This means definitions are already ranked by the time you look them up.
Changing this setting requires restarting the backend.
Model Selection
In AI Settings you can pick which Gemini model to use for ranking and furigana separately. Lighter models (like gemini-2.5-flash-lite) are faster and work well for ranking.
Word Tracking
DokiDokiDict tracks how often you encounter each word. Every time you look up a word, its count goes up. The popup shows a frequency badge (×2, ×3, etc.) next to the word so you can see at a glance how many times you've run into it.
You can configure this in the Anki tab under Word Frequency:
- Track lookups (on by default): Counts words you actively look up.
- Track all words (off by default): Counts every word in every scanned paragraph, not just lookups.
- Minimum page spacing (default 1): A word only counts as a new sighting if at least this many pages (1 page = 600 characters) have passed since the last time. This prevents inflated counts from seeing the same word multiple times on one page.
i+1 Sentence Detection
DokiDokiDict can analyze every sentence on screen and find the ones with exactly one unknown content word. Those are your i+1 sentences, the ripest sentences to mine.
Setup
Enable i+1 Detection in the Anki tab. Then enable at least one known-word source:
| Source | What it considers "known" |
|---|---|
| Anki Mature | Words with Anki card interval > 21 days |
| Anki Deck | Any word with an Anki card |
| Frequency | Words you've seen N+ times (you set the threshold) |
If you enable the master toggle but don't enable any source, nothing will happen. You need both.
On-Screen Visualization
Sentences get color-coded indicators at their position on screen:
- Green: All content words known
- Gold: Exactly one unknown content word (i+1)
- White: Two or more unknown content words
You can also have words color-underlined by which source knows them. Each source has its own color (green for Anki mature, blue for Anki deck, orange for frequency, red for unknown). You can toggle underlines per source and set the colors in the settings.
Content words are nouns, verbs, adjectives, and adverbs. Particles, auxiliaries, and punctuation are ignored.
You can set i+1 alerts that notify you whenever there's an i+1 sentence so you know to mine it. You can also add that it alerts you only when the unknown word has already been seen N+ times (for example an i+1 sentence where the unknown word has been seen 4+ times would be particularly juicy).
Recall Challenges
When you look up a word you should already know, the definition can be hidden until you recall it yourself. I always felt that a word was truly acquired the first time you could remember it without looking it up while reading, so this feature exists to push that.
You can enable recall per source in the Anki tab under i+1 settings. For example you can hide definitions for words that are mature in Anki, or words you've seen 3+ times, or both.
When a recall challenge triggers, the popup shows the word and reading but no definition. Press Enter to reveal. You can also choose whether to show the reading during the challenge or hide that too.
Stats
The Stats tab tracks your kanji, vocabulary, and reading volume.
Kanji Frequency Coverage
How many of the top N most common kanji (ranked by visual novel and light novel frequency) you've encountered. Two progress bars: "seen at least once" and "seen M+ times." You can set both N and M. So if you want to know how many of the top 1 000 kanji you've seen 3+ times, you set N to 1 000 and M to 3. There's also a collapsible kanji grid that shows each kanji color-coded by how often you've seen it, sortable by frequency or Jouyou grade order.
VN Word Frequency Coverage
Same concept for the 35 000 most common VN words. How many of the top N you've encountered and how many you've seen M+ times. Thresholds configurable.
Reading Volume
Total characters read and pages read (1 page = 600 characters).
Reading Streaks
You can set a daily reading goal in pages and build it up over time.
In the Stats tab under Reading Streak, set your daily target. You can start as low as 1 page. Your first day won't count against you if you don't hit the full goal, since you're setting up mid-day.
Each time you complete 7 streak days, the app suggests raising your target. The progression goes from 1 page a day up to 50. You can accept, ignore, or set your own number.
You can miss up to 1 day per 7-day window without breaking your streak (you can set this to 0 if you want no forgiveness). Forgiven days show as orange in the week view.
By default the day resets at 4 AM, not midnight. This is for night readers and is configurable.
Achievements
The Achievements tab shows 139 milestones across 8 categories plus reading streaks, like steam achievements.
Categories: Reading volume (milestones up to 30 000 pages), word exposure (up to 10 000 unique words), word retention (words seen 3+ times, up to 10 000), kanji exposure (up to all 2 136 Jouyou), kanji retention, most common kanji (top N jpdb kanji all seen 3+ times), VN word exposure (up to 10 000), VN word retention.
They are chosen to be accurately indicative of your progress toward fluency. 10 000 pages because that's what is required for reading proficiency, 10 000 words because that's near-native vocabulary.
Streak achievements: 48 additional milestones for maintaining reading streaks at various page targets (1 to 100 pages/day) for 7, 14, 21, or 30 days.
Toast notifications pop up when you unlock a new milestone. You can toggle these in the Achievements tab.
Hotkey Reference
All hotkeys are configurable in the Shortcuts tab. To change one, click the button next to it and press your new key. These are the defaults:
Lookup
| Hotkey | Action |
|---|---|
| Shift (hold) | Look up word under cursor |
| R (while hotkey held) | Force re-rank current word (bypasses cache) |
Furigana
| Hotkey | Action |
|---|---|
| Num - | MeCab furigana (instant, offline) |
| Num / | Toggle dynamic MeCab (continuous furigana) |
| Num * | AI furigana (MeCab + Gemini reading ranking) |
| Delete | Clear furigana overlay |
AI
| Hotkey | Action |
|---|---|
| Num + | Bulk pre-rank all visible definitions |
| J | Toggle AI justification display |
Popup
| Hotkey | Action |
|---|---|
| Num 0 | Lock/freeze visible popups |
| Num . | Dismiss topmost locked popup |
Anki & SRS
| Hotkey | Action |
|---|---|
| E (while hotkey held) | Export current entry to Anki |
| 1-9 (while hotkey held) | Quick export entry by number |
| S (while hotkey held) | Add current word to built-in SRS |
Other
| Hotkey | Action |
|---|---|
| Enter | Reveal definitions in recall challenge |
| Insert | Pause/resume text history recording (all features still work but paused text doesn't count toward stats or word frequency) |
Settings Overview
Quick reference for each tab in the settings window.
| Tab | What's There |
|---|---|
| General | Scan mode, target selection, OCR provider, auto-scan, Magpie compatibility |
| AI Settings | Gemini API key, ranking/furigana models, enable toggles, continuous ranking |
| Furigana | Furigana color, size, X/Y position offsets, reset-to-defaults button |
| Pitch Accent | Enable pitch accent display on the furigana overlay, high/low/heiban marker colors |
| Anki | AnkiConnect settings, deck/note type, field mapping (9 fields), word frequency tracking, i+1 detection, recall |
| SRS | New cards/day, max reviews, learning steps, auto-add, test-before-add, review while reading, pitch on cards |
| Dictionary | JMdict toggle, Yomichan dictionary import/management |
| Profiles | Create/edit/delete profiles, per-profile dictionaries, hotkeys, intra-popup depth |
| Shortcuts | All hotkey configuration (per-profile and global) |
| History | Text history log (everything the app has captured while you read), refresh, copy, clear |
| Stats | Kanji coverage, VN word coverage, kanji grid, vocabulary, reading volume, reading streaks |
| Achievements | 139 milestone cards, notification toggle |