An offline Japanese dictionary in your sidebar. Look up a word, read a kanji, or check a conjugation without leaving your editor.
Contents
Jisho is a Japanese-English dictionary that runs entirely on your machine. It is built for reading: you are in a file with Japanese in it, you meet a word you do not know, and you want the answer without opening a browser.
Every lookup runs against a local database. There is no network request, no account, and no rate limit. It is modelled on Shirabe Jisho, a macOS and iOS dictionary.
The dictionary covers about 218,000 words and 10,000 kanji, drawn from JMdict and KANJIDIC, the same data behind most open Japanese dictionaries. See Data sources for the full list.
Install Jisho: Offline Japanese Dictionary from the Extensions view in VS Code, or from the Marketplace.
Note
Jisho requires VS Code 1.123 or newer.
The first time you open the panel, Jisho downloads its dictionary. That is about 125 MB, which expands to around 450 MB on disk, and a progress notification tracks it. This happens once. After that, everything is local.
This walkthrough covers one lookup, start to finish.
1. Open the panel. Run View: Show Jisho from the Command Palette (Ctrl+Shift+P, or Cmd+Shift+P on macOS). Jisho also adds an icon to the activity bar, though with several extensions installed VS Code may fold it into the … overflow menu.
2. Type what you are looking for. Japanese, romaji, or English all work. Results are ranked by relevance, so the word you probably meant leads and its compounds follow.
3. Select a result to open its page. Every entry gives you its readings, meanings grouped by part of speech, and example sentences.
4. Select any Japanese word in an example to jump to its entry, and ← Back to return.
That is the whole loop: search, read, follow a link, go back.
The search field takes four kinds of input, and you do not have to tell it which you are using.
| You type | Example | You get |
|---|---|---|
| Japanese | 図書館 |
The word itself |
| Kana | としょかん |
Words with that reading |
| Hepburn romaji | toshokan |
The same, transliterated for you |
| English | library |
Words meaning that |
Results are ranked by relevance, so the word you probably meant comes first.
The four buttons beside the field are, in order: 部 for the radical picker, the pencil for handwriting, the gear for settings, and the ⓘ for the About page.
Type a word as it appears in your text. Jisho works back to the dictionary form: 食べました finds 食べる, 読まなかった finds 読む.
Personal and place names come from a separate database, so a name in your text resolves instead of returning nothing. The names database downloads the first time you need it.
Paste a sentence and Jisho breaks it into words, each labelled with its part of speech. Select any one of them to search it on its own.
Each word in the bar is colored by its part of speech, using the same palette as the editor highlighting, so the shape of the sentence is visible before you read any of it.
The bar separates the sentence's full match from its partial matches, so a phrase that is itself an entry does not get buried under its own components. Selecting a word narrows the results to that word alone.
A word's page is arranged so the answer you most likely want is at the top: the reading and its writings first, then the meanings, then everything you might want after that.
Meanings are numbered and grouped by part of speech, since a word that is both a noun and a verb is really two words sharing a spelling. Example sentences sit under the meaning they belong to.
The top of the entry carries the most information per line, so it is worth reading closely.
The line above the reading is its pitch accent: where the pitch drops, which is the part of Japanese pronunciation that dictionaries usually leave to a number.
Tags mark what the word is and how common it is. Select a tag to see every other word that carries it.
Beside each reading are two buttons. The 🔊 button speaks the reading aloud, and appears only when your system has a Japanese voice installed. The copy button is covered under Copying below.
A few examples sit inline under each meaning. Select more examples for the full pool.
Every sentence has furigana over its kanji, so a word you cannot yet read is still pronounceable. Each is paired with an English translation.
Every Japanese word in a sentence is a link to its own entry, which makes the examples a way to read outward from a word rather than a list to skim. Following one and coming back with ← Back is the loop the panel is built around.
Select the copy button beside a reading to copy the word in whichever form you need.
Each option previews what you will get, including the two furigana markups, Markdown ruby ({食|た}べる) and HTML (<ruby>食<rt>た</rt></ruby>べる). Markdown ruby needs a renderer that understands it; see Add furigana to a selection.
Below the entry's meanings, verbs and adjectives get a full conjugation table: non-past and past, plain and polite, te-form, potential, passive, causative, imperative, volitional, the two conditionals, and the desire form.
Select a form's name to read what it does and when to use it, which is the part a table alone does not tell you.
The same view carries two sections above the table. Info holds the word's JLPT level and a WaniKani link where there is one. Kanji lists the characters the word is written with, each opening its own page.
Kanji are results in their own right, not only parts of words. A search that matches a character lists it in its own Kanji section, below the words.
Selecting a character opens a page for the character itself.
The badges along the top are the character's measurements: how many strokes it takes, the school grade it is taught in, its JLPT level, and how common it is in written Japanese.
Below them come the readings. On readings are borrowed from Chinese and usually appear in compounds; kun readings are native Japanese and usually stand alone. Nanori are the readings a character takes in names, which often match neither.
Parts lists the components the character is built from, each opening its own page. Similar kanji lists the ones most likely to be confused with it: characters that differ by a stroke or a single radical. Words lists vocabulary written with it, most common first.
Every kanji and every kana has an animated stroke-order diagram.
Drag the scrubber to move through the strokes one at a time, or let it play. The numbered marker shows where each stroke begins and the dashed arrow shows which way it goes.
Below the player is a chart of the whole character, one frame per stroke, for when you want to see the order at a glance rather than watch it.
Two ways in, for when you can see a character but have no way to enter it.
Select the 部 button beside the search field, then pick components you can see in the character. Radicals are grouped by how many strokes they take, so a component you can count is quick to find.
As you select, radicals that cannot appear alongside your choices grey out. A combination that would match nothing is never offered, so you can keep adding components until the list is short enough to scan.
Matches appear underneath, each tile showing the character with a short meaning. Selecting one opens its kanji page.
Select the pencil button and draw the character. Stroke order and stroke count do not matter, and you do not have to finish. The screenshot shows four strokes of a character that takes six.
Candidates update after every stroke, each labelled with its meaning so a near-miss is easy to spot. Drawing part of 年 turns up 牛, 午 and 手 alongside it, which is the point: you do not have to know a character to find it, only to see it.
Select one to add it to your search.
The four buttons along the bottom of the panel switch between searching and browsing.
- Vocab: by JLPT level, how common a word is, language part, usage, subject, or dialect.
- Kanji: by JLPT level, school grade, or frequency.
- Kana: the gojūon chart.
Browsing is two steps, shown above from left to right: a category opens its groups, and a group opens its list. The counts beside each row are live, so a category tells you how much is behind it before you commit to opening it.
The breadcrumb across the top tracks where you are, and every step in it is a link back.
Vocabulary lists open in gojūon order (あ–ん), which is the order kana are taught and the one to reach for when you know roughly how a word sounds. The rail down the side jumps you to a kana, so a 1,700-word list stays navigable. Switch to By frequency for the most common words first.
Selecting an entry will open that word's page.
Kanji browse as a grid instead, each character with its meaning.
The grid fits far more on screen than a list would, which suits browsing a level or a school grade where you are looking for what you do not recognise rather than for one particular character.
Each tile carries a short meaning under the character, so the set is scannable without opening anything.
Selecting a tile opens that character's page.
The Kana tab is a chart of hiragana and katakana.
The chart is laid out in gojūon order, rows by consonant and columns by vowel, which is the order kana are taught and the order every list in the panel sorts by.
Selecting a kana opens its stroke order rather than searching: a single syllable is not a word, so there is nothing to look up. Obsolete kana (ゐ, ゑ) are dimmed rather than hidden, since they still turn up in older text.
Jisho also works on the file you have open. Hovers apply to Markdown and plain-text files; part-of-speech coloring goes further and can color the comments in your code as well.
Japanese does not put spaces between words. Turning on part-of-speech coloring gives you the word boundaries, with verbs, nouns, particles and auxiliaries each in their own color.
This is off by default. Turn it on with vscode-jisho.highlighting.enabled, or run Jisho: Toggle Parts of Speech Highlighting from the Command Palette. Coloring helps while you read a passage and gets in the way while you edit one, so it is worth a shortcut.
Three alternative palettes are available for protanopia, deuteranopia and tritanopia. They are not tinted versions of the standard palette. Each one re-picks its colors to stay distinguishable. Set vscode-jisho.appearance.palette to choose one.
Set vscode-jisho.highlighting.codeComments and the editor features extend into the comments in your code: coloring and hovers both. JavaScript, TypeScript, HTML, CSS, Python, PHP and Rust are covered, and Python docstrings count as comments.
There is a command for it too: Jisho: Toggle Japanese in Code Comments.
Comments only. Strings and identifiers are left alone, so the coloring never changes how the code itself reads. Markdown inside a doc comment works the way you would expect, with bold, lists and links all read through, and a fenced code block is skipped along with everything else that is code.
Comment boundaries come from the same grammar your editor uses for syntax highlighting, so a // inside a template literal is correctly not a comment.
Hover cards give you the reading, the meaning, and, for a conjugated word, how it was formed. Open in Jisho takes you to the full entry.
To turn hovers off, set vscode-jisho.hover.enabled to false.
Select some text and run Jisho: Add Furigana (ふりがな). Jisho: Remove Furigana undoes it.
The markup is {漢字|かんじ}: the word, a pipe, then its reading. Markdown has no ruby syntax of its own, so a plain renderer prints those braces literally. To see them as furigana instead, add a ruby plugin wherever your Markdown is rendered:
| Where | Add |
|---|---|
| VS Code's Markdown preview | Markdown DenDen Furigana, an extension |
| markdown-it | @mirrordown/mdit-ruby |
| remark, unified, MDX | @mirrordown/remd-ruby |
All three come from Mirrordown, a suite of Markdown syntax extensions for the markdown-it and unified ecosystems. The VS Code extension is @mirrordown/mdit-ruby wired into the built-in preview, so what you see there matches what your site build produces.
Run these from the Command Palette, or from the Jisho submenu in the editor's right-click menu. Those that act on text need a selection first.
| Command | What it does |
|---|---|
| Jisho: Look Up Selection | Searches the selected text in the panel |
| Jisho: Speak Selection | Reads the selected Japanese aloud |
| Jisho: Add Furigana (ふりがな) | Adds readings above the kanji, as Markdown ruby |
| Jisho: Remove Furigana | Strips that markup back out |
| Jisho: Add Word Spacing (分かち書き) | Puts spaces between words |
| Jisho: Remove Word Spacing | Takes them back out |
| Jisho: Toggle Parts of Speech Highlighting | Turns the part-of-speech colors on or off |
| Jisho: Open Settings | Opens Jisho's settings |
| Jisho: Check for Dictionary Updates | Checks for newer dictionary data |
| Jisho: Report an Issue | Files a bug report with your setup filled in |
Reach these through Jisho: Open Settings, or the gear button in the panel.
| Setting | Default | What it controls |
|---|---|---|
vscode-jisho.hover.enabled |
true |
Dictionary hovers over Japanese in Markdown and plain-text files |
vscode-jisho.highlighting.enabled |
false |
Part-of-speech coloring in those same files |
vscode-jisho.highlighting.codeComments |
false |
Extends that coloring to comments in JavaScript and TypeScript files |
vscode-jisho.grammar.enabled |
true |
Grammar explanations in hovers and the conjugation table |
vscode-jisho.appearance.textScale |
1.08 |
Text size in the panel, as a multiplier over VS Code's font size |
vscode-jisho.appearance.tagLabels |
english |
Whether grammar tags read in English or Japanese |
vscode-jisho.appearance.colorExamples |
true |
Part-of-speech coloring inside the panel's example sentences |
vscode-jisho.appearance.palette |
standard |
Which color palette to use, including three color-vision alternatives |
vscode-jisho.strokeOrder.guideStyle |
offset |
Whether stroke guides trace the stroke or sit clear of it |
vscode-jisho.dictionary.autoCheck |
true |
Whether to check daily for newer dictionary data |
The dictionary downloads on first use. If that download failed, most often because of a dropped connection, run Jisho: Check for Dictionary Updates to try again.
Hovers apply to Markdown and plain-text files, and to the comments of the code files listed under Color Japanese in code comments once vscode-jisho.highlighting.codeComments is on. A language outside that list, such as Go, is not covered yet.
Part-of-speech coloring is covered though. See Color Japanese in code comments.
Jisho works out the dictionary form from the word's shape, and casual or spoken Japanese is harder to read than written prose. If a lookup lands somewhere unexpected, please open an issue with the text you searched.
Set vscode-jisho.appearance.textScale. It multiplies VS Code's own font size, so 1.2 is 20% larger.
Does this need an internet connection? Only for the initial dictionary download and for update checks. Every lookup is local.
How much disk space does it use? About 450 MB for the dictionary, plus another 400 MB if you use name lookups, which download separately the first time you need them.
Does it work in vscode.dev or GitHub Codespaces? Not yet. Jisho reads its dictionary from the filesystem, which the browser build does not have.
Is my text sent anywhere? No. There is no telemetry and no network request during a lookup.
Which Japanese does it cover? Modern Japanese, as JMdict records it. Classical Japanese is out of scope.
Jisho is built on open dictionary projects whose licences require attribution. Full notices are in THIRD_PARTY_NOTICES.md, and the About view in the panel carries the same credits.
- JMdict / EDICT and JMnedict: dictionary and name data, © EDRDG, under the EDRDG Licence.
- KANJIDIC2 and KRADFILE / RADKFILE: kanji data and radical decompositions, © EDRDG.
- JLPT vocabulary levels: © Jonathan Waller, under CC BY-SA 4.0.
- Pitch accent: © Uros O., under CC BY-SA 4.0.
- Kanji confusion data: © Lars Yencken, under CC BY 3.0.
- Example sentences: from Tatoeba, under CC BY 2.0 FR.
- AnimCJK: stroke-order drawings, © FM&SH, under the Arphic Public License (kanji) and LGPL v3 (kana).
- KanjiCanvas and perfect-freehand: handwriting recognition and drawing, MIT.
Building the extension, running its tests, and refreshing the dictionary data are covered in CONTRIBUTING.md. Bug reports go to GitHub Issues.
Extension source released under the MIT license © Drake Costa. Bundled dictionary data remains under its respective upstream licences. See THIRD_PARTY_NOTICES.md.