| Source | Target |
|---|---|
| Upload a glossary to get started | |
sk-)API usage has a small cost. New accounts get free credits to start.
{source_lang} and {target_lang} are not yet supported — describe languages in the prompt as needed.
A bilingual glossary tool for translators and interpreters. Manage multiple glossaries, study with six activities, and use Live mode during real assignments.
By Nora Díaz · No account required · Build
Glossary Buddy is a standalone HTML file that runs entirely in your browser. There is no installation, no account, and no server. The app has three main modes:
Search across one or several glossaries at once. Pin terms, edit inline with notes, translate, classify difficulty, and take rich text session notes.
Six study activities: Flashcards, Multiple choice, Active recall, Timed drill, Matching pairs, and Study list. All support direction toggle and difficulty filtering.
Real time speech recognition with instant term highlighting, number detection, drag to translate, live translation, ASR corrections, and session glossary building.
A global countdown (15, 20, 25, 30 min or custom) persists across all modes. It turns amber at 2 min and red at 1 min.
Centralized in the top right you'll find ⚙️ Settings for your OpenAI key, default model, prompt, and domain context. The same key powers every AI feature (translation, extraction, classification, explain, help bot).
You can install Glossary Buddy as a desktop or mobile app. It gets its own window, its own taskbar or dock icon, and no browser chrome.
python -m http.server 8000 in the file's folder, then open http://localhost:8000/glossary_app_enhanced.html.Drag and drop a file onto the drop zone or click it to browse. The new glossary takes its name from the file name (extension removed, underscores converted to spaces). Supported formats:
| Format | How it imports |
|---|---|
| Excel (.xlsx, .xls) | Two column files import directly. Files with three or more columns show a column mapping dialog. |
| CSV (.csv) | Imports directly. Header row is detected automatically. |
| Word (.docx) | The first table in the document imports as term pairs. |
| PDF (.pdf) | Text based PDFs with a two column layout import directly. For scanned PDFs, use the Extract tab instead. |
| XLIFF (.xliff, .xlf) | Source and target segments import as term pairs. Language codes from the file populate the column headers. |
If your column headers contain language names like "English", "Spanish", or "Inglés", Glossary Buddy detects them and uses them as table column headers instead of "Source / Target".
The glossary manager bar shows every loaded glossary as a colored button. Toggle each one active or inactive. Active glossaries merge into a single deduplicated set across all features.
Type to filter in real time. Search is accent insensitive and looks across source, target, notes, and categories. Press Esc or click ✕ to clear. Press Enter on a term that isn't in the glossary to send it to the translation engine.
After classification, an All · Easy · Medium · Hard filter bar appears above the table. The filter applies across Lookup and every Learn activity at the same time.
| 📌 | Pin or unpin. Pinned terms stay visible regardless of search. |
| 🔊 | Pronounce source or translation. The 🤖 glyph is stripped before playback. |
| ✏️ | Edit inline. Source, target, category, and note fields. |
| ⎘ | Duplicate the term as "{source} (copy)" and open it for editing. |
| ⇄ | Swap source and target. Useful when a file imported in the wrong direction. |
| 🗑 | Delete the term. |
| ? | AI explanation (OpenAI key required). |
| 🔎 | Send the term to the Search panel. |
Click ✏️ to expand an inline edit form with source, translation, category, and a notes textarea. Save or Cancel. Notes appear under the term whenever the Notes toggle is on.
Click + Add term above the table. If you have text in the search box, the source field is pre-populated with it and focus jumps straight to the translation field. When multiple glossaries are active, a dropdown picks the destination glossary. The same picker appears in the Live mode translate popup.
A rich text editor lives at the top of the right panel. It supports bold, italic, underline, strikethrough, four highlight colors, bullet lists, font size (A− / A+), and clear formatting. Notes save automatically. The 🗑 button clears them, and the ⬇ button downloads them as .txt.
Click the 🎤 button in the notepad toolbar to dictate text instead of typing. Pick the recognition language from the small dropdown next to the button (EN, ES, FR, DE, IT, PT, PL). While listening, the saved indicator turns into a live preview of what's being heard. The button changes to ⏹ in red. Click it again to stop. Dictated text is inserted at the current cursor position, so you can mix typing and dictation. Chrome or Edge only.
Dictation and Live recording share the same browser engine, so they can't both run at once. If you press Start in Live while dictating, dictation stops automatically. If you try to dictate while Live is recording, you'll see a reminder to stop Live first.
If you press 🎤 and nothing happens after about 5 seconds, the saved indicator changes to 🔇 No audio with a Why? button. Clicking it opens the Microphone troubleshooter. The same thing happens in Active Recall when dictation doesn't hear you.
The most common cause is the browser is listening to a virtual cable (VB-Cable, Voicemeeter, BlackHole, Loopback Audio, etc.) that you set up for interpreting prep. The cable carries system audio, not your voice. To dictate, the browser needs to be listening to your real microphone — your headset, your USB mic, or your laptop's built-in mic.
In the troubleshooter, click 🎙 Test your mic. You'll see a live audio level bar that moves when audio reaches the browser. If the bar stays flat while you talk, the wrong device is selected. The detected device list flags suspected virtual cables with a red virtual cable? badge so you know which ones to avoid.
To switch:
The browser remembers this choice for Glossary Buddy specifically, so once you set your real mic, it stays selected. To switch back to a virtual cable for interpreting prep with Live mode, repeat the steps and pick the cable device.
You can paste images from the clipboard directly into the notepad. Click any pasted image to select it. A small toolbar appears above the image with these options:
When an image is selected, you can also drag any of the four corner handles to resize it freely. Hold Shift while dragging to break the aspect ratio. Click anywhere outside the image, or press Esc, to deselect.
Six study activities are available. All of them support a ⇄ direction toggle and a difficulty filter. Mastering a term in any activity marks it across all of them.
Space / Enter | Card action (show or flip) |
→ / ← | Next / previous card |
F | Switch Show / Flip mode |
P | Pronounce current term |
E | Open AI Explain popup |
Y / N | Mark Mastered / Review |
Classify terms as Easy, Medium, or Hard so you can focus study on what needs work. There are two ways to classify:
After classification, the Glossary Stats & Management panel shows easy, medium, hard, and unclassified counts (where unclassified equals total minus classified). Colored dots appear on every term in Lookup, Flashcards, and Study list. Click any dot to change the level. A difficulty filter bar appears in Lookup and in every Learn activity.
In the Flashcard footer, the difficulty button is always visible so you can classify terms on the fly while studying.
Use Live mode during interpreting assignments. It captures your microphone (or an audio source through a virtual cable) and highlights glossary terms in the transcript with their translations underneath. Numbers are boxed for quick reading.
The screen is divided into three columns: the left column holds Quick lookup and a running list of Glossary hits, the center column shows the live transcript and, optionally, the translation pane below it, and the right column shows Numbers spotted. Drag the dividers between columns to make any column wider or narrower. Drag the divider between the transcript and the translation pane to give one or the other more space. Use the toggle on the right side to hide the Numbers panel when you want more room for the transcript.
The controls bar has two parts. A pinned cluster on the left never scrolls and holds Start / Stop and the two language buttons, so they stay put and the language buttons are always next to Start. Everything else sits in a group on the right that scrolls on its own when the window is narrow.
L from any mode to jump to Live.The transcript auto scrolls by default. To turn it off (so you can read history without the view jumping), open Preferences on the controls bar and toggle Auto scroll transcript.
Click ⬇ Download in the controls bar to save the current transcript at any point, even while you are still listening. The download does not stop the session. The file is a plain text transcript with a short header (date, duration, word count, and glossary hit count) followed by the timestamped glossary hits.
While you listen, ⏹ Stop & save ends the session and downloads the same file in one step. Use Download when you want a copy mid-session, and Stop & save when you are finished.
Click AI in the controls bar to open a panel that runs actions on whatever has been transcribed so far. The actions use the OpenAI key and model from AI Settings, so set those first. The default actions are Summary, Action items, Decisions, Topic outline, Open questions, People & entities, Glossary terms, and Translate summary. A box below the buttons takes a one-off custom instruction.
The result appears under the buttons with three options: Copy to the clipboard, Save as a .md file, and → Notes to append it to your session notepad. For a long session, the actions use the most recent part of the transcript and tell you when they do.
Click ⚙ Manage in the panel header to edit the actions. You can rename a button, change the instruction sent to the model, reorder, delete, or add your own, and reset to the defaults. Write {otherLang} in an instruction to insert the other Live language, which is how the Translate action works. Your context from AI Settings is added to every action.
Live mode recognizes both singular and plural forms of your glossary terms. A glossary entry for "fundraising strategy" will highlight when you say "fundraising strategies"; "árbol" will catch "árboles"; "city" will catch "cities". Acronyms are not pluralized (they stay exact match), and words shorter than four characters are skipped to avoid false positives. Toggle this off under Preferences if a particular glossary causes false matches.
A variant hit such as a plural is marked differently from an exact match, so you can tell at a glance. Exact matches have a solid underline. Variant matches have a dashed underline and a small ≈ marker before the word. Either way, the translation shown underneath is the glossary entry, so "strategies" still shows the translation you stored for "strategy".
Search your active glossaries inline without leaving Live mode. The table supports the same row actions as Lookup mode, revealed on hover:
| 📌 | Pin a term so it stays visible |
| ✏️ | Edit inline with source, translation, and note fields stacked vertically |
| ⎘ | Duplicate the term |
| 🗑 | Delete the term |
A Notes button in the Quick Lookup header toggles inline notes under each term. Pinned terms appear in a separate 📌 Pinned section right below the lookup table.
If you type in the Quick Lookup search box and then click +, the source field of the add-term form is pre-populated with what you typed, and focus jumps to the translation field. A small ✕ appears inside the search box while you're typing; click it (or press Esc) to clear the field. Use the ⬇ button next to the Quick Lookup header to export the active glossary or glossaries as .xlsx with the glossary name plus today's date in the file name.
If you have the translation pane visible, open Preferences to adjust the translation font size, color, and italic style independently of the transcript styling.
In the popup, + Add saves to the glossary (with a picker when multiple glossaries are active), ✏️ lets you edit before saving, 🔧 opens an ASR correction, ? asks AI to explain the term in 2 to 3 sentences (uses your OpenAI key), 🔎 sends the term to the Search panel, and ✕ dismisses. Uncheck 🤖 before adding if you've verified the translation.
Type a term in the Quick Lookup search box and press ⇄ or Enter. The Google translation appears inline with an edit button (✏️) and + Add. No new tab is opened.
ASR corrections are silent replacements for the transcript, useful for proper nouns and recurring misrecognitions. Open the gear to reach Preferences, then click + ASR correction. You can also select a word in the transcript first and then open it to prefill the rule, or use 🔧 in the translate popup. Export and import your corrections list as CSV (Wrong,Correct,CaseSensitive) so you can carry it across machines.
Check Live translation in the settings row to translate the transcript as it streams. Choose Google (free) or OpenAI GPT. When OpenAI is selected, matched glossary terms are injected into the translation prompt so the renditions stay consistent with your glossary.
Toggle Notes in the controls bar to move your session notepad into the Live screen. The same notes are kept whether they appear in Lookup or Live. A draggable divider appears between the transcript and the notepad. Drag it up to give the notepad more room, or down to give the transcript more space. The notepad height is remembered for next time.
Toggle Document in the controls bar to open a small preview panel below the transcript. Use it to keep prep materials (PDFs, Word documents, or images) visible while you interpret. The panel has its own draggable divider so you can resize it.
Click 📂 Load or drag files onto the panel. You can pick several files at once; each one becomes its own tab in the row above the document. Click a tab to switch between them. The ✕ on each tab closes that document. The + at the end of the row adds another file.
By default PDFs show one page at a time with ‹ and › buttons to flip pages. Click ↕ Scroll in the header to switch to continuous scroll, where all pages render in one long column you can scroll through. Click 📄 Pages to switch back. Each PDF tab remembers its own mode.
Select any text inside a PDF or DOCX preview and a small action bar appears just below the selection with three buttons: ⇄ Translate opens the same word popup as a transcript selection, so you can see the translation, add the term to a glossary (with picker), edit before saving, or fix an ASR rule. ? Explain opens the AI Explain window for the selection. 🔎 sends the selection to the Search panel. Press ✕ on the bar or click outside to dismiss.
When both Notes and Document are open, you can change how they sit together. Click ⇆ Side by side in the document header to put them next to each other with a draggable vertical divider in the middle. Click again (now labeled ⇊ Stacked) to put them back one above the other. Click ⇅ Swap to swap which one is on top (or, in side-by-side, which is on the left). Your choice is remembered.
For PowerPoint files, export to PDF in PowerPoint first (File > Export > PDF, or File > Save As > PDF on Mac), then load the PDF here. Documents are kept only for the current session; reloading the page asks you to re-pick the files.
A floating 🔎 Search button sits on the right edge of the screen the whole time you are in Live mode. Click it to open the search panel. Type a query and press Enter (or click Go). The panel shows an inline preview built from open data sources:
Wikipedia is searched in your active Live language first, then falls back to the other Live language if the first one has no result. For example, if you're listening in EN-US and search "guacamole" but the EN article is empty, the panel shows the ES Wikipedia summary instead. A small language code badge next to "Wikipedia" tells you which version was found. This works for any language pair Wikipedia supports.
Above the results, a Show: bar lets you toggle the Quick definition and Wikipedia previews on or off independently. Turning both off makes the panel a pure launcher — no network calls, just the search box and "Open in:" row. Your choice is remembered.
Below the search box, the Open in: row gives one-click access to the full search results in any engine in a new tab. The default set is Google, DuckDuckGo, Wikipedia, and Wiktionary.
In the search box, the first Enter runs the search (same as clicking Go), and a second Enter on the same query opens the search in your checked engines (same as clicking the purple "Open N ↗↗" button). If no engines are checked, the second Enter opens Google as a sensible default. Edit the query and the first Enter resets to "Go" again.
Click ⚙ Manage in the panel header to add any website that has a search URL. Put {q} where the query goes. Examples:
https://www.linguee.com/english-spanish/search?source=auto&query={q}https://www.wordreference.com/es/translation.asp?tranword={q}https://pubmed.ncbi.nlm.nih.gov/?term={q}https://www.btb.termiumplus.gc.ca/tpv2alpha/alpha-eng.html?lang=eng&srchtxt={q}https://biblehub.com/search.php?q={q}In the manage window you can rename, reorder (↑ ↓), or delete engines, and reset to defaults if you change your mind. Engines are saved with your other settings, so a backup will carry them to another device.
The search panel also includes three chatbots out of the box: ChatGPT, Claude, and Perplexity. Like all engines they open in a new tab with the query prefilled — no chatbot can be embedded inside another site because they're session-authenticated. Chatbot buttons are tinted purple in the row to distinguish them from search engines.
Each chatbot handles URL prefilling differently, and there is nothing the app can do about this since the behavior is set by the chatbot's own website:
You can add other chatbots (Gemini, Poe, You.com, your own deployed Claude, etc.) via the manage window — check the This is a chatbot box when you add them so prompt presets apply.
When you have one or more chatbots, a Prompt: row appears above the engine row with each preset as a button. The active prompt is highlighted in purple — one click sets it. So searching "thoracoscopy" with the Explain button highlighted actually sends "Explain "thoracoscopy" in 2 or 3 sentences for an interpreter." to the chatbot. Search engines (Google, Wikipedia, custom sites) ignore the prompt and search the raw query. Hover any button to see the full prompt template in a tooltip.
In the manage window under the Chatbot prompts tab, you'll find a Chatbot context field at the top. Anything you type there is prepended to every chatbot query, so the chatbot answers in the right register without you having to repeat the setup each time. For example:
"I am an English-Spanish conference interpreter. Use Mexican Spanish. The session is a medical conference on oncology nutrition. Reply in 2-3 sentences unless asked for more."
With that context set, clicking Claude with the Explain prompt active and the query "thoracoscopy" sends: your context, then a blank line, then "Explain 'thoracoscopy' in 2 or 3 sentences for an interpreter." A small ctx ✓ badge appears in the prompt row when context is set; click it to edit. Click + ctx to set one if none exists. Context applies only to chatbot engines; search engines ignore it.
Two toggles at the bottom of the manage window apply to all chatbots:
The seven default prompts cover common interpreter needs (Explain, Translate to either direction, Examples, Synonyms, Context). You can add, edit, reorder, or delete prompts in the manage window under the Chatbot prompts tab. To add a custom site as a chatbot (so it gets prompt wrapping), check the This is a chatbot box when you add it in the Engines tab.
Each engine in the Open in: row has a checkbox. Check 2 or more, and an Open N ↗↗ button appears. Click it to open the search in every checked engine simultaneously, each in its own tab. The browser may block this the first time as a pop-up flood — if so, allow pop-ups for the site in the browser address bar and try again.
When you click an engine button (or send a query via the 🔎 button in the transcript or document), the search opens in a new browser tab. Glossary Buddy cannot position those tabs for you — browsers do not let webpages move other windows around the screen. To keep Glossary Buddy on one side and search results on the other, snap the windows yourself:
Once you've snapped a tab to a specific spot, Chrome usually remembers the position for future tabs opened from the same profile, but not always. The first time, expect to do a quick manual arrangement; after that it's automatic for the session.
The small 🔎 buttons in the transcript word popup and the document selection bar always send their query into the Search panel. If the panel is closed, it opens automatically. If it's minimized, it's restored. This keeps results in one consistent place rather than spawning tabs you have to chase. To still open Google or any other engine in a new tab, use the Open in: row inside the panel.
The 🔎 Search button on the right edge is the permanent home for search. Click ▢ in the panel header or ✕ to close the panel back to that button, which stays out of the way during interpretation but is always one click from full search. Click it to open the panel again.
Live mode can listen with either of two engines. Pick one under ⚙️ → Preferences → Transcription engine. Your choice is remembered. Everything else works the same either way: click a word to add it, glossary terms highlight with their translations, and numbers are boxed.
| Web Speech | OpenAI GPT-Live-Transcribe | |
|---|---|---|
| Cost | Free | About $1 per hour |
| Setup | None | Your own OpenAI key |
| Knows your glossary terms | No | Yes |
| Both languages at once | No | Yes |
| Choose which audio input to use | No | Yes |
Built into Chrome and Edge. Free, nothing to set up, and it listens in one language at a time, following the active language button. It always uses whatever input Windows has set as the default. If it is listening to the wrong source, change the default input in Windows sound settings.
More accurate on accents, specialized vocabulary, and speakers who switch between languages mid sentence. It follows both of your languages at once, so you do not need to press a language button when the speaker changes language. It can also be told to expect your glossary terms. It bills to your own OpenAI account.
Keyword hints nudge the engine toward your terminology, which helps most with acronyms and specialized terms. They are suggestions, not rules. Sending too many similar terms can backfire, because a term may get swapped for a close neighbor from your list.
Press Test connection to check your key and connection step by step. If a session cannot start, Live mode switches to Web Speech on its own and tells you why, so you are never left with nothing. Your engine choice is not changed, so fix the cause and press Start again.
| What you see | What to do |
|---|---|
| A message about a missing key | Add your OpenAI key under Settings. |
| Your key is not accepted | Check the key, and that your OpenAI account has credit. |
| Nothing appears while someone is speaking | Open Preferences and check the audio level. If it stays flat, pick a different Input device. |
| Words appear but are often wrong | Set Latency to High. If a term keeps turning into another glossary term, set Keyword hints to Off. |
| It switched to Web Speech on its own | The reason is shown on screen. Press Test connection for more detail. |
By default, Live mode listens to your microphone. To capture audio from a Zoom or Teams call, route it through a virtual cable.
If you want VB-Cable to be the default mic only when you're using Glossary Buddy, and your headset mic everywhere else, Chrome can do that:
If you press the mic button and nothing happens for several seconds:
Open ⚙️ Settings in the top right of the app from any mode. The window has two parts: AI configuration (top) and Backup & restore (bottom).
All OpenAI features (translation, term extraction, AI explain, difficulty classification, help bot, list-import translation) share a single configuration here.
| Field | What it does |
|---|---|
| OpenAI API Key | Stored only in this browser. The 👁 button shows or hides it. The ❓ How? link expands instructions to create a new key on the OpenAI platform. |
| Default model | Choose between gpt-4o-mini (fast and cheap, recommended), gpt-4o, gpt-4.1-mini, or gpt-4.1. |
| System prompt | The instruction sent to GPT for term translations. Edit it for special projects, or click ↺ Reset to default to restore the original. |
| Domain / context note | A short phrase appended to the prompt, like "laparoscopic surgery" or "criminal trial". Biases translations toward the current assignment's domain. |
| Test connection | Sends a tiny request to OpenAI to confirm the key, the model, and your network all work. Useful before a live assignment. |
After saving, the same settings are used everywhere in the app, so you don't need to enter them again per feature.
Save everything stored in this browser (glossaries, preferences, notes, ASR corrections, AI settings) to a single .json file. Use it to move to another device, or as a safety copy before clearing browser data. See "Moving the app to another device" in the Exporting section below for the full walkthrough.
In Lookup, choose the engine in the Engine dropdown. When OpenAI is selected, a small link appears to open ⚙️ Settings directly.
When you already have a clean list of terms and don't need AI to extract them from prose, paste the list into the Extract tab's text area and click 📝 Import as list. A window opens with these options:
Duplicates against the chosen glossary's existing terms are skipped automatically.
Live mode detects acronyms inside your term sources automatically. If a source has a recognizable acronym pattern, the acronym itself becomes a separate trigger that lights up when spoken on its own.
Recognized patterns:
| Pattern | Example | Acronym extracted |
|---|---|---|
ACR — full form | UN - United Nations | UN |
ACR: full form | WHO: World Health Organization | WHO |
ACR / full form | MRI / Magnetic Resonance Imaging | MRI |
ACR (full form) | ER (emergency room) | ER |
Full form (ACR) | Federal Bureau of Investigation (FBI) | FBI |
Acronyms are matched case sensitively in the transcript (so "UN" matches but "un" in Spanish does not). The full form still matches case insensitively as before. When both could match, the longer one wins.
No setup needed. As soon as a term has an acronym pattern, Live mode picks it up.
The Extract tab pulls bilingual term candidates from a reference document using AI. Drop a file onto the slim drop strip at the top, or paste text directly into the larger text area below, then click 🧠 Extract terms with AI. For clean lists where you don't need AI to find the terms, use 📝 Import as list instead (see the Import as List section).
| Format | Notes |
|---|---|
| TXT | Plain text, any language |
| DOCX | Full text is extracted including every paragraph |
| PDF (text based) | Digitally created PDFs only. Scanned PDFs won't work. |
| PPTX | Text from all slides is extracted in order |
For any other source, paste the text directly into the text area. The ✕ clear link next to "Or paste text or a list of terms:" empties the area.
| Action | How |
|---|---|
| Edit (including notes) | Hover the row, click ✏️, edit source, target, category, note, then 💾 Save |
| Duplicate | Hover the row, click ⎘. Creates "{source} (copy)" and opens it for editing. |
| Swap direction | Hover the row, click ⇄ (swaps source and target instantly) |
| Delete | Hover the row, click 🗑 |
| Pin | Hover the row, click 📌 (pinned terms stay visible during search) |
| Add manually | + Add term, fill the form, click Save. The destination glossary picker appears when multiple glossaries are active. |
| Add from Live | Double click or drag select in the transcript, then + Add in the popup |
| Add from Live Quick Lookup | Click + in the Quick Lookup column. If you have text in the search box, the source field is pre-populated. |
| Export active glossary | Glossary Stats & Management, then Export ⬇ |
| Export all glossaries | Glossary Stats & Management, then Export all ⬇ (one sheet per glossary) |
| Remove 🤖 flag | Click ✏️ on the term, delete 🤖 from the target, click Save |
Visible in all three modes. Select 15, 20, 25, or 30 minutes, or click Custom… to enter your own duration. Press ▶ Start. The timer continues as you switch modes. Use ⏸ to pause and ↺ to reset. The display turns amber at 2 minutes left and red at 1 minute, and a toast fires at zero.
A 🔊 button appears on Lookup row hover, beside the term on flashcards, and beside the revealed answer. Press P in flashcard mode. Voice pickers live in the Translation Engine panel (Lookup) and in the Flashcard settings area.
If a term's translation contains the 🤖 glyph or the marker "(AI)", those are stripped before speech so they don't get read aloud.
The 🎨 Theme menu offers 🟣 Violet (default), 🔵 Slate, 🟢 Sage, and 🧱 Terracotta. Toggle 🌙 dark mode from inside the same menu. The Aa − + buttons adjust the table font size. The Source and Notes checkboxes next to Aa control inline display of glossary name tags and term notes.
Wrong,Correct,CaseSensitive) so you can carry them across machines, and imports the same format back.Open ⚙️ Settings in the top right of the app, scroll to the 💾 Backup & restore section, and click 💾 Backup all settings ⬇ to save everything to a single .json file: all glossaries, difficulty marks, pinned terms, mastered and review flags, ASR corrections, AI settings, preferences, layout sizes, voices, theme, and session notes.
If you have an OpenAI API key saved, you'll be asked whether to include it in the backup. Choose OK to include it (convenient, but the file will contain a sensitive secret). Choose Cancel to leave it out (safer for sharing the file or storing it in the cloud, and you re-enter the key on the other device once).
On the other device, open Glossary Buddy, open ⚙️ Settings, and click ↻ Restore from backup ⬆. Pick the .json file. A confirmation asks you to acknowledge that this will replace the current data on that device. After you confirm, the page reloads with all your settings in place.
_with_key.json so you can recognize it later.| Shortcut | Action |
|---|---|
Ctrl/⌘ + F | Focus search box |
Esc in search | Clear search field |
1 2 3 | Switch Lookup / Learn / Live |
Alt + D | Toggle dark mode |
Esc | Close any open window or popup |
Space / Enter | Card action (show or flip) |
→ / ← | Next / previous |
F | Switch Show / Flip mode |
P | Pronounce term |
E | Open Explain popup |
Y / N | Mastered / Review |
L | Start / stop listening |
| Double-click word | Translate single word |
| Drag to select | Translate multi-word phrase |
Esc | Close translate / ASR popup |
| Format | Import glossary | Term extraction (AI) |
|---|---|---|
| .xlsx / .xls | ✅ | n/a |
| .csv | ✅ | n/a |
| .docx | ✅ (requires a table) | ✅ |
| .pdf (text based) | ✅ (two column layout) | ✅ |
| .pdf (scanned) | ❌ | ❌ paste text manually |
| .pptx | n/a | ✅ (slide text extracted) |
| .txt | n/a | ✅ |
| .xliff / .xlf | ✅ | n/a |
| Feature | Cost |
|---|---|
| Lookup, all Learn activities, export, timer, notes | Free |
| Google Translate, pronunciation, speech recognition | Free |
| Google Search links, inline translation | Free |
| Live translation, Google engine | Free |
| OpenAI translation (Lookup) | ~$0.001/term |
| AI explanations | ~$0.001/explanation |
| Live translation, OpenAI engine | ~$0.005/hour |
| Live transcription, Web Speech engine | Free |
| Live transcription, GPT-Live-Transcribe | ~$0.017/minute (~$1/hour) |
| AI term extraction | ~$0.003/document |
| AI difficulty classification | ~$0.003/100 terms |
| Help AI chatbot | ~$0.001/question |
Did Glossary Buddy save you time? Help you nail a tricky term? Make your booth a little less stressful? I'd love to hear about it. 🙂
No feature requests here, just good vibes. 🌟
Your kind words mean a lot and keep this project going. 💜
| Source | Target | Category |
|---|---|---|
| Upload a glossary to get started | ||
Drop a reference document and GPT extracts 40–80 bilingual term candidates, or paste a list of terms to import directly.
The speech recognition heard this wrong — define what it should say instead. Applied silently to the transcript in real time.
CABLE Output (VB-Audio Virtual Cable), Voicemeeter Out, VoiceMeeter Output, BlackHole, Loopback Audio. Pick something with your headset's or laptop's actual name instead.{q} where the query goes. For example: https://www.linguee.com/english-spanish/search?source=auto&query={q}{q} where the query should be inserted. Prompts are ignored for non-chatbot engines like Google or Wikipedia.| Source | Target |
|---|---|
| Upload a glossary first | |
These buttons run on your transcript. Edit the label and the instruction sent to the model. Write {otherLang} to insert the other Live language (useful for translation). Your assignment context from AI Settings is added automatically.
VB-Cable — Download from vb-audio.com/Cable. Set system audio output to CABLE Input, then select CABLE Output as the microphone in Glossary Buddy.
Voicemeeter Banana — Download from vb-audio.com/Voicemeeter. Routes audio to both your headphones (A1) and Glossary Buddy (B1 → CABLE Output) simultaneously. Set Zoom speaker to Voicemeeter Input.
🤖 next to a term = AI-generated translation — verify before professional use | ☑️ Study list filters what you study
Review the terms extracted. Check the ones you want to add, edit if needed, then click "Add selected".