# Search, Wikipedia & dictionary

> Web and image search, a three-tab Wikipedia reader, and instant word definitions: four lookup tools built into the keyboard.

URL: https://wmkeyboard.pages.dev/tools/search/
Section: Tools

This page covers three tools, each with its own panel and its own settings screen: **Web search**, with its **All** and **Images** tabs (backed by Brave, by Tavily with a key of your own, or by a SearXNG server you name on the F-Droid build), a three-tab **Wikipedia** reader, and an **English dictionary**. Web search and Wikipedia never read what's already in your field. You type a query into the panel's own search bar, and nothing out of the field you're typing in is sent anywhere. Dictionary is the one exception. With its auto-lookup setting on, which is the default, opening the tool reads your current selection or the word at the cursor and looks that up. See [Looking up definitions](#looking-up-definitions) below.

tools/web-search-results — Web search results. Tap a row for its menu: open it in your browser, insert its link, or copy the link.

## Web and image search

Open **Web search** from the toolbar, or from the toolbox if you haven't pinned it. It isn't pinned by default. On a hardware keyboard, double-tap Ctrl for the [leader key](https://wmkeyboard.pages.dev/reference/shortcuts/), then press W.

Results come in two tabs under the search bar: **All**, the web results, and **Images**. Switch tabs after a search and the same search runs on the other tab, once; switching back shows what was already there. Image search used to be a tool of its own. Its **Image search** button is still in the toolbox and opens this panel on the Images tab, and so do the I leader key, a key or gesture bound to it, and a smart chip for "images". Its settings are all on web search's page now.

Both tabs ask the providers in their **Providers** list, in order: the Brave Search API by default, [Tavily](#searching-with-tavily) with a key of your own, or a SearXNG instance you name, on any build. If the first one fails, the next one that is on answers. Typing routes into the panel's own header search bar rather than your field, the same key-rerouting trick the GIF, sticker, and Wikipedia panels use. Unlike GIFs and stickers, the search doesn't run live as you type. It waits for you to press the search action before firing a request. To search in your browser instead, tap the open-in-browser icon at the end of the row of tabs: it opens the typed query as a search page on your SearXNG instance when that is your first provider, on Brave Search when Brave is, and on DuckDuckGo otherwise. Nothing is fetched by the keyboard for it.

tools/image-search-grid — The Images tab. Tap a thumbnail for its menu: insert the picture, save it, or open, insert or copy its link.

- **All**: each row shows the title, host, and an HTML-stripped snippet. From a SearXNG instance the host is followed by the engines that found the result, such as `en.wikipedia.org · google, duckduckgo`. Tap a result for its menu: **Open in the browser** (which leaves the keyboard), **Insert the link** at the cursor, or **Copy the link**. **Tap a result** in the options can skip the menu: set to **Insert**, a tap inserts the address and an open icon on each row opens the page; set to **Open in the browser**, it's the other way round. Press and hold a result for its menu whatever that says.
- **The search engine's answer**: when the backend writes a short answer to your query, it sits in a box above the results. Tavily writes one from the pages it found, and some SearXNG instances give instant answers; Brave doesn't with a normal search key. It's drawn the way the [AI chat](https://wmkeyboard.pages.dev/tools/ai-chat/) draws an answer: LaTeX formulas are typeset, Markdown shows as headings, lists, bold and links, and a code block sits in its own box with **Copy** and **Insert** for just that code. The box shows about four lines and a tap shows the rest. Two icons beside its label act on the whole answer: the copy icon puts it on the clipboard as written, and the insert icon puts it in your text without the Markdown marks. Press and hold either to see its name. Under the box, a row of up to five pictures for your query: Tavily sends them with its answer at no extra cost, and with another provider the row shows the Images tab's pictures when that tab already searched the same words. A picture there works as it does on the Images tab. Turn **Show the answer from the search engine** off to hide it.
- **Images**: tap a thumbnail for its menu. **Insert the picture** downloads the full image and inserts it directly, on the same `commitContent` path the clipboard and GIF tools use. **Save to the gallery** downloads it into Pictures/WM Keyboard. **Open in the browser** opens the page the picture is on, or the picture itself when the search didn't say which page that is. **Insert the link** and **Copy the link** give the picture's own address. With **Tap a result** set to **Insert**, a tap inserts the picture, and set to **Open in the browser** it opens its page; press and hold for the menu either way. The grid dedupes results by image URL before drawing them, since Brave can return the same full-size image for more than one widely-reposted result.
- **More results**: at the end of either tab, it runs the same search again for the next page and adds what it finds under what you have. Press it again for the page after, as often as you like; when a page brings nothing new it reads "No more results" instead. Each press is one more request, which counts against your quota like a search. Tavily has no pages, so the keyboard asks it again without the sites already shown, and without the answer, which came with the first page. Brave gives ten pages of web results and up to 200 pictures, and a SearXNG instance pages as far as its engines go. With [data saving](https://wmkeyboard.pages.dev/privacy/data-saver/) holding searches back on mobile data, the button says so and fetches nothing.

To search with a picture instead of words, tap the **camera button** at the right of the search bar. It opens the [camera tool](https://wmkeyboard.pages.dev/tools/camera/#searching-with-a-photo), and after the shutter the photo goes to Google Lens, a search site, or the share sheet, whichever **Search with** names on the camera tool's settings page. Back from the camera returns you here.

Results stay put after you leave. Open one link in your browser, come back, and open the tool again: the same list is there under the same search, so reading several results costs one request, not one per visit, and the list can't change under you. Tap the **✕** at the end of the search bar to clear it and start a new search, or tap the bar itself to edit the search you ran. The two tabs each keep their own results. They're held in memory only, so they're gone once Android closes the keyboard.

tools/search-needs-key — The web search panel before a Brave API key is configured.

Without something to search with, the tool doesn't appear on the keyboard at all. There's no button that opens a panel with nothing behind it. Until then Web search and its Image search button are off the toolbar, out of the toolbox, and out of the smart chips, and a hardware shortcut bound to either one does nothing. On the **Tools** screen they're still listed, with their switch greyed out and a reason in place of the usual description. Everywhere except the F-Droid build, that reads "Needs an API key. Press this row to add one." The F-Droid build reads "Needs a SearXNG instance" instead, since it offers a self-hosted server as another way in. Add a provider to the list and both come straight back.

### Options

Tools / Web search

Every setting for both tabs is on **Tools / Web search**. **Tools / Image search** only has the switch and icon colour for its button, and a row that leads here.

- **Turn on**: already on, like every tool. Switching it off removes that tool from both the toolbar and the toolbox. The switch can't be pressed while there's nothing to search with, since there's nothing to turn on.
- **Icon colour**: only shown if [colorful tool icons](https://wmkeyboard.pages.dev/reference/settings/tools/) are turned on globally.
- **Providers**: who answers, in order. It is a [provider list](https://wmkeyboard.pages.dev/tools/providers/), shared by both tabs: drag to reorder, switch a row off, or add **SearXNG**, **Tavily** or **Brave Search**. A fresh install starts with Brave when the build has a Brave key, and empty otherwise. Updating keeps the order your earlier settings gave: a SearXNG instance first, then Tavily, then Brave.
- **SearXNG**: the address of a SearXNG server, your own or one you trust, on any build. Add more than one, and the next is asked when one refuses. The instance has to allow its JSON API (`json` under `search.formats` in its `settings.yml`), which most public instances don't, and public instances also rate-limit anything that isn't a browser. The keyboard sends the headers a browser would, so SearXNG's own bot check doesn't refuse it outright, but a busy public instance can still answer "too many requests" (HTTP 429). Some public instances also sit behind a challenge page (Anubis or similar) that only a real browser can pass; the panel then says the instance answered with a web page, and the fix is another instance. One you run yourself, with its limiter off, never refuses.
- **Brave Search**: its setup takes a key from `api-dashboard.search.brave.com` to use your own quota. Leave it blank and the app uses a key baked into the build, if this build ships one; the row then says "Uses the key in this build".
- **Tavily**: its setup takes your key from `app.tavily.com`. No build ships a Tavily key.
- **SafeSearch**: on by default. It filters explicit results. On the All tab it maps to Brave's "moderate" filter. Brave's image search only offers strict or off, so the same toggle maps to "strict" on the Images tab. Tavily has one level, on or off.
- **Results for each search**: a slider from 1 to 20, defaulting to **8**. ("Each search uses one API request either way," the app notes.) 20 is the most the Brave and Tavily APIs give for one request.
- **Show the answer from the search engine**: on by default. Shows the box described above when the engine sends an answer. On Tavily the answer costs no extra credits.
- **Tap a result**: **Show the menu** by default. **Insert** puts the link in your text (on the Images tab, the picture itself), and **Open in the browser** opens the page. Press and hold a result for its menu whichever you pick. If you had turned on **Open results in the browser** before this replaced it, it starts on **Open in the browser**.
- **Search depth**: on Tavily's own screen (press its row on the list), **Basic** by default. Tavily's API has four depths:
  - **Ultra fast**: the quickest answer, with one short summary of each page. 1 credit.
  - **Fast**: quicker than Basic, with results nearly as good. 1 credit.
  - **Basic**: the balance of speed and good results. 1 credit.
  - **Advanced**: the deeper search, which picks the parts of each page that match your query more closely. 2 credits.

  Tavily takes no SafeSearch at the two fast depths, so results aren't filtered there whatever **SafeSearch** says.
- **Images per row**: 3 by default. How many images sit side by side on the Images tab, from 2 to 5. Fewer columns means bigger previews, which is easier to judge before you send one.

The settings page's own caption: "Web and image search share everything here. They search the whole web. The Brave plan includes a free monthly credit of about a thousand searches. Brave asks for attribution, so the panel shows 'via Brave'." That attribution is a small **"via Brave"** label inside the search bar, at its right end (just before the **✕** when there's a search to clear). It reads **"via Tavily"** while Tavily answers, and a SearXNG instance, being your own server, gets no label.

### SearXNG categories

Tools / Web search / SearXNG / Search categories

SearXNG sorts its engines into categories: general, images, videos, news, science, IT, music, files and more, depending on the instance. **Search categories**, on the SearXNG row's own screen, lists the ones your instance has and lets you pick any of them. The list comes from the instance's `/config` page, which answers even where the JSON search API is off; when the instance can't be reached, the screen offers the usual SearXNG categories and says so. General and images aren't in it, since they're the **All** and **Images** tabs already. None are picked by default.

Each category you pick becomes a chip in the panel's row of tabs, between **All** and **Images**, in the order the instance lists them; the row scrolls sideways when there are more than fit. Tap one to search that category only. Its results look like the **All** tab's, with a title, the site, the engines and a snippet, and a video result shows its thumbnail at the start of the row. **More results** pages through the category, and a tap on **All** goes back to the general search. The search engine's answer only shows on **All**.

The chips only show while a SearXNG instance is the one that searches: first in the **Providers** list, or picked in the panel's provider chooser. With Brave or Tavily first, the row is **All** and **Images** as before. A category search only asks the SearXNG instances in the list, never Brave or Tavily, whose general results would pass for the category's.

### Searching with Tavily

[Tavily](https://tavily.com) is a search API built for AI tools, and it works as a third backend for both tabs. Sign up at `app.tavily.com` for a key. The free plan gives 1,000 credits a month, and each search the keyboard makes uses one: it asks for Tavily's `basic` search unless you pick another **Search depth**, and only **Advanced** uses two. The answer Tavily writes for the query is free, and shows above the results while **Show the answer from the search engine** is on, with up to five of the pictures Tavily found under it, also free.

- **All** looks the same as with Brave: a title, the site, and a snippet. The snippet is the passages Tavily picked from the page, joined with "…".
- **Images** has no image index of its own behind it. Tavily sends back the pictures it found on the pages of its results, so a search usually finds fewer pictures than Brave, with no title under them. Tapping and long-pressing work as they do with Brave.
- With both Brave and Tavily in the list, the one higher up answers, and the other one only when it fails. Drag them to change which comes first.
- When your credits run out, or the key is wrong, the panel shows Tavily's own message for it.
- Tavily's own screen in the search list counts the credits this phone spent this month, and **Check what is left** asks Tavily for your plan's balance. After that the search bar reads, for example, "via Tavily · 812 left". With your own Brave key the same appears for Brave, which reports it on every search. See [Usage and credit](https://wmkeyboard.pages.dev/tools/providers/#usage-and-credit).

## Reading Wikipedia

Open **Wikipedia** from the toolbar, or the toolbox if you haven't pinned it. It isn't pinned by default either. Unlike the other tools on this page, Wikipedia has no [leader-key](https://wmkeyboard.pages.dev/reference/shortcuts/) letter of its own out of the box. From a hardware keyboard the toolbox shortcut is the way in: double-tap Ctrl, then press T. You can also rebind a letter to it yourself. The panel takes the whole keyboard, the toolbar row included, with a back button and the search bar in its header. While you type a search it shrinks to that header so the keys fit underneath. Results list article titles with short descriptions, and tapping one opens the article.

tools/wikipedia-article — An open Wikipedia article, with its Summary, Links and Full article tabs.

An open article has three tabs:

- **Summary**: the article's short description plus its extract, with **Insert summary**, **Insert link**, and **Insert title** chips.
- **Links**: the article's outgoing links, namespace 0 only, so no Talk: or File: noise. The list is capped by **Links per article** in the tool's options: 50 to 500, defaulting to 200. 500 is as many as Wikipedia returns at once. The tab loads the first time you open it, and each link gets its own **Insert** chip.
- **Full article**: the complete plain-text extract, split into paragraphs. Tap any paragraph to insert just that paragraph. Also loaded on first visit rather than up front. Formulas are typeset in place, the way the [AI chat](https://wmkeyboard.pages.dev/tools/ai-chat/) draws maths, rather than spread over the screen one symbol per line. What you insert or copy has them written out in plain characters (`x²`, `√(x+1)`), since a text box can't show a typeset formula. **Ask AI** gets the formula's LaTeX.

Two buttons beside the article's title are for reading it in more room. The expand button grows the panel up the screen, to as much as 80% of its height, and tapping it again brings it back to the keyboard's height; search results always stay at the normal height. The other opens the article's page on wikipedia.org in your browser.

Under the title, next to the tabs, **Copy** copies the article's text (the full article once you've opened that tab, otherwise the summary) with its address after it.

When the phone has an app that looks words up, such as Kiwix with a Wikipedia file in it or Aard 2, an **Open in** chip sits after **Copy** and hands it the article's title. A search that finds nothing offers the same chip with your query. With one such app the chip names it; with several, tapping it lists them. Apps that offer themselves in the text selection menu count too, so a translator may be on the list. The chip doesn't show on a phone with none.

Once you've opened an article from a results list, a back arrow appears and returns you to those results instead of a blank search. The idle screen puts it simply, with `en` swapped for whichever language you've set below: "Search for a subject on en.wikipedia.org. Read the summary, open the links, and insert text or the address of the article."

### Asking the AI about an article

With the [AI tool](https://wmkeyboard.pages.dev/tools/ai/) on, an **Ask AI** chip sits next to the tabs, beside **Copy**. It opens the AI panel's [chat](https://wmkeyboard.pages.dev/tools/ai-chat/) on a new conversation with the article attached: the full article when you've opened that tab, otherwise the summary, along with its title, description and address. The keys come up under the message box so you can type your question straight away, or pick **Explain simply**, **Summarise** or **Hard words** to start one for you. Nothing is sent until you send it.

To ask about one part, long-press a word in the summary or in a paragraph of the full article. The word is selected, with a handle at each end to drag it wider, and a bar over it offers **Ask AI**, **Copy**, **Insert**, **Quote** and **Select all**. **Ask AI** sends the passage along with the paragraph it came from, so the model reads it in context. **Quote** inserts the passage in quotation marks followed by the article it came from: `"…" (from [Wikipedia: Cat](https://en.wikipedia.org/wiki/Cat))` when **Markdown links** is on in the tool's options, `"…" (Wikipedia: Cat, https://en.wikipedia.org/wiki/Cat)` when it's off. Tap anywhere else to let the selection go. A selection stays inside one paragraph. **Copy** and **Quote** work without the AI tool.

### Options

Tools / Wikipedia

- **Turn on**: already on.
- **Icon colour**: only shown if colorful tool icons are on globally.
- **Wikipedia language**: a free-text subdomain code (`en`, `bn`, `de`, `fr`, `es`…), defaulting to **`en`**. It changes which language's Wikipedia every request in the tool reads from. Search, summaries, links, and the full article all follow it.
- **Markdown links**: off by default. Turn it on to insert links as `[Title](url)` instead of a bare URL, in both the Summary tab's "Insert link" chip and every Links-tab chip.
- **Links per article**: how many outgoing links the Links tab lists, from 50 to 500 and defaulting to **200**. A long article can have hundreds, and anything past your number is cut.

The settings page's caption: "The searches and the article text come from the free APIs of wikipedia.org, only while you use the tool." No API key is needed anywhere in this tool. It calls Wikipedia's free public REST and MediaWiki APIs directly.

## Looking up definitions

The keyboard has two things it calls a dictionary, and they don't share anything.

- **Word lists**, under **Languages & layouts**, are for typing: suggestions, glide and autocorrect, in any language. They hold spellings and how common each is, never a meaning.
- **The Dictionary tool**, under **Tools › Dictionary**, shows definitions. Downloading a word list does nothing for it. You don't need vocabulary packs or Anki either.

Out of the box the tool defines English words, online or from an [offline dictionary](#offline-dictionaries). For any other language, [import a dictionary](#imported-dictionaries) in Yomitan or StarDict form, or send the word to a [dictionary app on the phone](#dictionary-apps-on-the-phone). [Translations](#translations) go from English into other languages, not the reverse.

The dictionary looks up English words in a chain of sources you put in order (see [Dictionary sources](#dictionary-sources) below). None of them needs a key or an account. Open **Dictionary** with auto-lookup on, which is the default (see Options below), and it immediately looks up your current selection, or the word touching the cursor if nothing is selected. In the search bar the entry follows what you type, about 400 milliseconds after you stop, and a short result shows between the bar and the keys. Pressing return or the arrow puts the keys away so the whole entry shows. Each pause asks your sources in order, so with online sources on, a half-typed word can reach them too.

tools/dictionary-entry — A dictionary entry: serif headword, pronunciation audio, numbered definitions and synonym chips.

- Auto-lookup only picks up Latin-script words. A word holding any character outside that range, Bengali script for instance, is skipped quietly rather than looked up and shown "not found." The word also has to be 40 characters or fewer and hold at least one letter. Surrounding quotes and hyphens are trimmed off first.
- If there's nothing to look up and no earlier result is still on screen, the tool drops straight into its own search field instead.
- Headwords render in a serif display font (Lora), distinct from the rest of the keyboard's typography, falling back to the system serif if the font hasn't downloaded yet.
- Each entry shows the word and, when the source has them, its IPA phonetic transcription. A word from a language pack or an imported dictionary that says its language, and is not English, has that language named under it, and the speaker reads it in that language rather than in English. Every entry has a speaker button, which plays a [recording of a real person](#recorded-pronunciations) saying the word when one exists. Otherwise it plays the source's own recording, and when there's none, or it can't be fetched, it says the word with a downloaded [offline voice](https://wmkeyboard.pages.dev/tools/read-back/#offline-voices) or the phone's text-to-speech voice. Set the voice's speed and pitch under the Vocabulary tool. The **Wiktionary definitions** source has no phonetics and no recording. An **Insert** chip types the headword itself at the cursor, not a definition.
- When an installed [vocabulary pack](https://wmkeyboard.pages.dev/tools/vocabulary/) has the word and a translation for it, a line under the headword gives its meaning in your language: the one you picked under **Translation languages**, or else your keyboard's. It needs the Vocabulary tool on and translations shown in the keyboard under its **Card sections**; a word outside the packs has no such line. When the entry has [translations](#translations), that line is left out, because the translations already say it.
- Each meaning lists its part of speech, numbered definitions with optional italic example sentences, and up to 12 tappable synonym/antonym chips per row. Tapping a chip looks that word up in turn.
- An entry from an [imported dictionary](#imported-dictionaries) can carry more: the reading in small kana over a Japanese headword, and a line under it with the pitch accent and the dictionary's frequency figure, as in "たべꜜる [2] · Frequency 512". The ꜜ marks the mora the pitch falls after; [0] is a flat word.
- A line under the last entry names the source that answered, for example "From Wiktionary". An imported dictionary is named by its own title, as in "From Jitendex".
- A **Copy** chip beside the search bar copies everything the look-up found as text. With the [AI tool](https://wmkeyboard.pages.dev/tools/ai/) on, an **Ask AI** chip beside it opens a [chat](https://wmkeyboard.pages.dev/tools/ai-chat/) about the same text, and a long press on a definition or an example selects it, with **Ask AI**, **Copy** and **Insert** on a bar over it. See [Asking the AI about an article](#asking-the-ai-about-an-article), which works the same way.
- "The app cannot reach the dictionary" means no source could be reached: you're offline, or every online source you left on is down. A word that every reachable source answered for, without an entry, shows "No entry for" instead.
- When only the sources on the device answered and no online source could be reached, the panel says the word is not in the dictionaries on this device, rather than "No entry for". The vocabulary packs hold only the words of their own study lists, a few thousand at most. To define ordinary words with no connection, download one of the [offline dictionaries](#offline-dictionaries).

The same look-up works over any other app: select a word and pick **Look up**, or tap it after the floating button's Look up action. See [Look up](https://wmkeyboard.pages.dev/tools/look-up/).

### Recorded pronunciations

The first tap on an entry's speaker looks for recordings of people saying the word, in the word's language. Wiktionary is always asked. It needs no key, and its pages play audio files from Wikimedia Commons, many of them recorded through Lingua Libre, in a lot of languages the phone's voice reads badly or not at all. With your own [Forvo](https://forvo.com) API key added under the options below, Forvo's voices come first, best rated first.

The speaker plays the first voice. Every voice found also gets a chip under the headword, named by its accent (US, UK, AU) or by the person who recorded it, and a Forvo voice is marked "Forvo:". Tap a chip to hear that voice instead; the speaker then plays the one you picked. When nobody has recorded the word, nothing changes: the speaker reads it with the phone's voice as before.

With **Keep recordings for offline use** on (the default), a recording you've played stays on the phone, along with the list of voices the word had, so it plays again with no connection. They take at most 24 MB together, and the ones played longest ago go first. Turn the setting off and they're kept in the app's cache instead, which Android may clear.

The word goes to Wiktionary, and to Forvo when you've set a key, only when you tap the speaker. Turn **Recorded pronunciations** off to keep the speaker on the phone's own voice.

### Translations

Tools / Dictionary / Translations

Under the definitions, a **Translations** section gives the word in other languages: one row per language, with the language's name and a chip for each translation. Tap a chip to type that translation at the cursor. A word in a script other than Latin shows its romanisation in the chip after a dot, as in "বাড়ি · baṛi".

- The translations come from Wiktionary, the same kaikki.org page as the **Wiktionary** source. When that source answered, the page already had them, so nothing more is sent.
- When another source answered (a vocabulary pack, an offline dictionary, the Free Dictionary API or **Wiktionary definitions**), the entry shows at once and the tool asks Wiktionary for the translations after it, with "Looking for translations…" in the meantime. It does this only if **Wiktionary** is on in your [dictionary sources](#dictionary-sources). With it off, the word goes nowhere else, and an entry from another source has no translations.
- They're for the first entry, and they're English to other languages, like the rest of the tool.
- A language Wiktionary has no translation for gets no row. With no translation in any of your languages, the section isn't shown.

**Show translations** is on by default. **Translate into** picks the languages and their order. With nothing picked, it follows your keyboard languages other than English, so a keyboard with English and Bangla shows Bangla. The list offers the languages of the vocabulary packs' translations, your keyboard's languages, and the languages Wiktionary most often has. This list is separate from the Vocabulary tool's **Translation languages**.

### Dictionary sources

The tool asks the first source that is on. When that source doesn't know the word, or can't be reached, it asks the next one, so one service being down doesn't stop the tool. The default order, all on except the last:

1. **Vocabulary packs**: the [vocabulary](https://wmkeyboard.pages.dev/tools/vocabulary/) packs you downloaded, read on the device. Only knows the packs' words, but sends nothing and works offline. The **Vocabulary packs** row under the list opens the screen where you get them.
2. **Wiktionary**: Wiktionary's full entry through kaikki.org, with definitions, examples, IPA and recordings.
3. **Wiktionary definitions**: Wiktionary's own definition endpoint on wiktionary.org. Definitions and examples only, but small and fast.
4. **Free Dictionary API**: dictionaryapi.dev. Last of the online sources because it's often down for days at a time; while it's down, every look-up waits about 8 seconds on it before giving up.
5. **Wiktionary, offline**: the [offline dictionary](#offline-dictionaries) made from Wiktionary, once downloaded.
6. **Open English WordNet**: the [offline dictionary](#offline-dictionaries) made from WordNet, once downloaded.
7. **Bengali–English Wiktionary**: the [offline dictionary](#offline-dictionaries) of Bengali words with their English meanings, once downloaded. Only a Bengali word finds anything in it.
8. **Other languages, offline**: the [offline dictionaries](#other-languages-offline) of other languages' words with their English meanings, whichever you downloaded.
9. **Imported dictionaries**: the [Yomichan and Yomitan dictionaries](#imported-dictionaries) you imported, in any language. Every one that is on and knows the word answers, in their own order.
10. **Urban Dictionary**: slang from urbandictionary.com, up to five definitions a word. Off until you turn it on, because anyone can write a definition and many are crude. At the bottom of the list it only answers for words the other sources don't know, so drag it higher if you want its reading first.

The two offline dictionaries come after the online sources, so with a connection you get Wiktionary's fuller entries and recordings, and without one the tool still answers from the phone. Drag either one higher to have it answer first and send nothing. An update that adds a source puts it at the end of your list, switched on.

Drag a source to change the order, and switch one off to never ask it. With every source off, the panel says so rather than looking anything up. Before version 0.5.12 the Free Dictionary API was the only source, so an outage there broke the tool on every device.

### Offline dictionaries

Tools / Dictionary / Dictionary sources

Press **Wiktionary (offline)** or **Open English WordNet** on the source list to open its screen, where it is downloaded. Two whole English dictionaries you can keep on the phone, so the tool defines ordinary words like "house" with no connection at all, and in the [build with no internet permission](https://wmkeyboard.pages.dev/development/building/#a-build-with-no-internet-permission). Each row has a download button; once the dictionary is in, the row shows its size on the phone and a delete button.

| Dictionary | What it holds | Download | License |
|---|---|---|---|
| **Wiktionary (offline)** | about 65,000 common English words from Wiktionary, slang like "selfie" and "lol" included: three senses per part of speech and six in all, a short example, synonyms, antonyms and IPA; no proper nouns | 5.1 MB | CC BY-SA 4.0 and GFDL |
| **Open English WordNet** | every single English word in Open English WordNet 2024 (about 79,000), every sense, one example, synonyms, antonyms and, where it has one, IPA | 5.0 MB | CC BY 4.0 |
| **Bengali–English Wiktionary** | about 7,500 Bengali words from English Wiktionary with their English meanings, an example with its translation where Wiktionary has one, and the romanized spelling in place of IPA. Each inflected form Wiktionary lists (কলকাতার, বাড়িতে…) opens its word | 0.5 MB | CC BY-SA 4.0 and GFDL |

Both hold single words only. Phrases such as "ice cream" or "look after" are not in them, and neither are hyphenated compounds. A word form finds its headword: "mice" opens *mouse*, "houses" *house*, "running" *run*. Neither has recordings, so their entries have no play button.

Each takes about 14 MB on the phone once installed. A look-up reads a few kilobytes of that file; it does not load the dictionary into memory. Neither file is read before the phone is unlocked for the first time after a restart.

### Other languages, offline

Tools / Dictionary / Dictionary sources / Other languages, offline

One download per language, each made from English Wiktionary's entries for that language: Albanian, Arabic, Basque, Bulgarian, Catalan, Czech, Danish, Dutch, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Italian, Latvian, Lithuanian, Persian, Polish, Portuguese, Romanian, Russian, Slovak, Slovene, Spanish, Swedish, Turkish and Ukrainian. They keep what the Bengali one keeps: English meanings, not definitions in the language itself, up to six senses a word, a short example with its translation, and IPA or a romanized spelling.

They hold single words, and a form Wiktionary gives an entry of its own opens its word: German *Häuser* opens *Haus*, *gehst* opens *gehen*. A form with no entry of its own finds nothing. The packs run from about 0.1 MB (Basque, Slovene) to 5.4 MB (Finnish) to download, and about three times that on the phone.

When a word is in two packs you have, as *hand* is in German and Dutch, the tool shows both and each part of speech says its language. With a connection, the online Wiktionary sources above them answer first; drag this one higher to have it answer first and send nothing.

### Dictionary apps on the phone

A dictionary app you already use can answer too. When the phone has one, an **Open in** chip after the "From" line at the bottom of an entry hands the word to it, and the "No entry" and "not in the dictionaries on this device" messages offer the same chip. It finds apps three ways: Aard 2's own lookup, the ColorDict intent that ColorDict, GoldenDict and most other offline dictionaries answer, and the text selection menu, which is how Kiwix and many others offer themselves. With one app the chip names it, and with several a tap lists them, each app once. Websites you turned on under [Look up in other apps](https://wmkeyboard.pages.dev/tools/look-up/#options) (Takoboto, Shinjikai, Jisho, Wiktionary, or one of your own) are listed after the apps and open on the word in the browser. Nothing is sent anywhere but to the app or site you pick.

The **Import a dictionary** row on each screen takes a `.wmdict.gz` file fetched elsewhere: **Get the files** lists both download links, to open in a browser on any device, and **Import** installs the file. See [Using it without internet](https://wmkeyboard.pages.dev/privacy/offline/).

### Imported dictionaries

Tools / Dictionary / Dictionary sources

Press **Imported dictionaries** on the source list to open its screen. The dictionaries made for Yomichan and its successor Yomitan, the pop-up dictionaries that language learners use in their browser. There are hundreds of them: Japanese ones such as JMdict and Jitendex with readings, pitch accent and frequency lists, and Chinese, Korean and Wiktionary-based dictionaries for many other languages. **Get the files** opens the Yomitan wiki's list of dictionaries. Download a dictionary's `.zip` there, then tap **Import** and pick it. Any of the app's other **Import** rows takes it too; see [Using it without internet](https://wmkeyboard.pages.dev/privacy/offline/).

**StarDict** dictionaries work here too, in any language pair: pick the `.tar.bz2`, `.tar.gz`, `.tar` or `.zip` a book came in, with its `.ifo`, `.idx` and `.dict` files together inside. If you have the loose files, zip them first. Definitions show as plain text, so a book's HTML styling is dropped along with any pictures and sound. Other spellings in a `.syn` file find the entry too.

- A large dictionary takes some minutes to import, and the import line shows how far it has got. On the phone it takes about as much space as the dictionary's text unpacked, so a big Japanese dictionary needs a few hundred megabytes free while it imports.
- Each imported dictionary gets a row with its number of entries, its size, its languages, its version and its attribution. The switch turns it off without deleting it. The arrows set the order its entries are shown in, and the bin deletes it.
- Importing a dictionary with the same title again replaces it, so a newer version simply goes over the old one.
- In the [source list](#dictionary-sources) they are one source, **Imported dictionaries**, which you can drag above the English sources so that it answers first.
- An inflected Japanese word finds its dictionary form: 食べました opens 食べる, 行かなかった opens 行く, 高くない opens 高い. A word typed in kana finds the entry written in kanji. Other languages are matched in any case.
- They work with no connection, and nothing about a look-up in them leaves the phone.
- Kanji dictionaries, which list one character's readings and strokes rather than words, are not supported. A dictionary with both keeps its words.
- Some dictionaries put pictures in their definitions; those are left out.

### Options

Tools / Dictionary

- **Turn on**: already on.
- **Icon colour**: only shown if colorful tool icons are on globally.
- **Look up the word at the cursor**: on by default. Its description on the settings screen reads "The tool searches the selected word or the current word when it opens". Turn it off and Dictionary always opens on its own empty search field.
- **Show translations**: on by default. Shows the word in other languages under its definitions. See [Translations](#translations) above.
- **Translate into**: the languages of those translations, in order. With none picked, your keyboard languages other than English.
- **Dictionary sources**: a [provider list](https://wmkeyboard.pages.dev/tools/providers/): drag to reorder, switch a source off, remove one, or add it back with **Add a provider**. See [Dictionary sources](#dictionary-sources) above.
- Each source's own screen, opened by pressing its row: **Vocabulary packs** links to the packs, the two offline dictionaries download, delete or import there (see [Offline dictionaries](#offline-dictionaries) above), and **Imported dictionaries** imports, orders and deletes Yomichan and Yomitan dictionaries (see [Imported dictionaries](#imported-dictionaries) above).
- **Look up in other apps**: the [Look up](https://wmkeyboard.pages.dev/tools/look-up/#options) card's selection menu entry, its style for a tapped word, and how it sends words to AnkiDroid.
- **Recorded pronunciations**: on by default. The speaker plays people's recordings of the word before the phone's voice. See [Recorded pronunciations](#recorded-pronunciations) above. With it on, two more rows show at the Advanced level: **Keep recordings for offline use** (on by default) and **Forvo API key** (empty by default). The key is never put in a backup.
- **Servers** (F-Droid build only): on the screens of Wiktionary, Wiktionary definitions and the Free Dictionary API, the address each is called at, for a mirror or a copy you host yourself.

The settings page's caption: "Definitions come from the sources below, in their order. The keyboard sends the word that you look up to an online source only when you use the tool." [Power saving](https://wmkeyboard.pages.dev/typing/power-saving/)'s "Background network" toggle overrides this row. While that toggle is on, auto-lookup is forced off whatever you've set here. A look-up nobody explicitly asked for is exactly what it exists to stop.

Web search, image search and Wikipedia are the **Web search** bundle on [Extensions](https://wmkeyboard.pages.dev/reference/settings/extensions/). Off there, the three tools leave the toolbar, the toolbox and the Tools list until the bundle is switched back on; your search services stay set.

## Details & edge cases

- **Only web search needs to be unlocked.** It needs one usable provider: a Brave key, yours or the one baked into this build, a Tavily key of your own, or a SearXNG instance. Wikipedia and Dictionary work out of the box against free, keyless public APIs.
- **Default hardware letters:** W for web search, I for its Images tab, D for dictionary. Wikipedia has no letter of its own out of the box, so reach it through the toolbox (T), or [rebind a letter to it yourself](https://wmkeyboard.pages.dev/reference/shortcuts/).
- **Discoverable by typing.** Typing "search", "images", "wiki"/"wikipedia", or "define"/"dict" as the last word before your cursor offers a [smart chip](https://wmkeyboard.pages.dev/smart/chips/) that opens the matching tool ("images" opens the Images tab). The keyword list is editable per tool, and only shows while that tool is enabled.
- **None of these are build-gated.** Every build behaves identically across all the tools here.
- **Attribution.** Brave Search and Tavily results, Wikipedia's article text, Wiktionary's entries, and the Free Dictionary API's definitions are all credited under "Online services" on the app's About → Open-source licences screen, alongside the terms each service is used under. Wikipedia's and Wiktionary's text is CC BY-SA, which keeps its own license independent of the app's. The offline dictionaries carry their sources' licenses with them: Wiktionary's CC BY-SA 4.0 and GFDL, and Open English WordNet's CC BY 4.0. An imported dictionary's own attribution line is shown on its row.

The [AI tool](https://wmkeyboard.pages.dev/tools/ai/#letting-the-model-look-things-up) can run searches of its own through this same backend, when you let it: it writes the query, reads the results and answers from them, and each one counts against your quota like a search you ran yourself.

For what leaves your device and when, across every network tool, see [network policy](https://wmkeyboard.pages.dev/privacy/network/). For the GIF and sticker tools' different, search-as-you-type behavior, see [GIFs](https://wmkeyboard.pages.dev/emoji/gifs/).
