Definition is a PowerToys Command Palette extension that gives you instant access to word definitions, phonetics, synonyms, antonyms, and usage examples β without ever leaving your keyboard.
Type a word, get results. That simple.
- π‘ Predictive Spelling Lookup β when no definitions are found, the extension now shows "Did you mean?" suggestions ranked by fuzzy similarity. Click a suggestion to instantly look up that word.
- Multi-source suggestion engine: Datamuse API (English & Spanish), Wiktionary opensearch (12+ languages), and local Levenshtein fallback (offline).
- New Enable Spelling Suggestions toggle in Settings (on by default).
- Levenshtein distance scoring with proportional thresholds and prefix-match bonus.
- Localized "Did you mean?" strings for en-US and fr-FR.
- Expanded dictionary experience with support for: English, French, Chinese and Ukrainian.
- Improved lookup quality with cleaner grouping by part of speech, better examples, and faster repeated searches via in-memory caching.
- Better CI/CD reliability for Store publishing and release packaging.
- Initial release with English dictionary lookup via Free Dictionary API.
- Phonetics, synonyms, antonyms, and usage examples.
- Copy to clipboard and Wiktionary integration.
| Feature | Description |
|---|---|
| Instant Definitions | Definitions from the Free Dictionary API grouped by part of speech |
| 4 Languages | English, French, Chinese (CC-CEDICT offline), and Ukrainian (Wiktionary + goroh.pp.ua) |
| Phonetics | IPA transcriptions displayed alongside each word |
| Synonyms & Antonyms | Related words listed per part of speech |
| Usage Examples | Real-world example sentences |
| Predictive Spelling | "Did you mean?" suggestions when no definitions found β powered by Datamuse API, Wiktionary opensearch, and Levenshtein fuzzy matching |
| Copy to Clipboard | Click any result to copy |
| Wiktionary Integration | Right-click context menu to open in Wiktionary |
| Configurable | Settings for language, result count, display options, and spelling suggestions |
| Smart Caching | In-memory cache for instant repeat lookups |
| Debounced Search | 300ms debounce to minimize API calls while typing |
| Offline Chinese | CC-CEDICT database embedded β Chinese lookups work without internet |
| Script Auto-Detection | Automatically detects Latin, Cyrillic, CJK, or mixed script to route to the right provider |
When you type a word that isn't found in any dictionary, the extension queries three suggestion sources in parallel:
- Datamuse API β fetches phonetically/orthographically similar words (English & Spanish only)
- Wiktionary opensearch β prefix-based title search across 12+ language editions
- Local word lists β built-in common English & Ukrainian words ranked by Levenshtein distance (works offline)
Results are merged, deduplicated, and ranked using a fuzzy similarity score (0β1) based on Levenshtein edit distance with a prefix-match bonus. The distance threshold scales proportionally with word length, so small typos in longer words aren't filtered out.
User types: "recieve"
β No dictionary match found
β Suggestions: receive (close match), relieve, recipe, ...
β User clicks "receive" β full definition displayed instantly
Toggle suggestions on/off in Settings β Enable Spelling Suggestions (on by default).
- Windows 10 (build 19041+) or Windows 11
- Microsoft PowerToys v0.70.0+ with Command Palette enabled
winget install "Definition for Command Palette"Download the latest .msixbundle from Releases, then:
This project uses SignPath Foundation for code signing.
Add-AppPackage -Path DefinitionForCommandPalette.msixbundleAfter installing, restart PowerToys for the extension to appear.
winget upgrade "Definition for Command Palette"winget uninstall "Definition for Command Palette"Or remove via Settings β Apps β Installed apps.
- Open Command Palette (
Win + Ctrl + Tby default) - Select Definition
- Type any word
- Browse definitions, examples, synonyms, and antonyms
- Press Enter to copy β or right-click for more actions
- If no definitions are found, click a "Did you mean?" suggestion to look up that word instead
- .NET 9.0 SDK
- Visual Studio 2022 with:
- .NET desktop development workload
- Windows App SDK / WinUI 3 tooling
- Developer Mode enabled (Settings β Update & Security β For developers)
git clone https://github.com/ruslanlap/CmdPal-Definition.git
cd CmdPal-DefinitionVisual Studio: Open CmdPal-Definition.sln, select your platform (x64 / ARM64), right-click the project β Deploy.
Command line:
# x64
dotnet build CmdPal-Definition.sln -c Release -p:Platform=x64
# ARM64
dotnet build CmdPal-Definition.sln -c Release -p:Platform=ARM64Then install the generated .msix from the build output:
Add-AppPackage -Path "path\to\DefinitionExtension.msix"Restart PowerToys after installation.
CmdPal-Definition/
βββ CmdPal-Definition.sln
βββ DefinitionExtension/
βββ DefinitionExtension.cs # IExtension entry point (COM server)
βββ DefinitionCommandsProvider.cs # CommandProvider β top-level commands
βββ Program.cs # Main entry point
βββ Package.appxmanifest # MSIX manifest with CmdPal registration
βββ Pages/
β βββ DefinitionPage.cs # DynamicListPage β search UI + suggestion flow
β βββ DefinitionListItem.cs # ListItem for each result (definitions, suggestions)
βββ Helpers/
β βββ DictionaryService.cs # Multi-provider lookup + caching layer
β βββ SuggestionService.cs # Predictive spelling (Datamuse + Wiktionary + local)
β βββ FuzzyMatcher.cs # Levenshtein distance & similarity scoring
β βββ SettingsManager.cs # Settings UI via CmdPal settings API
β βββ Models.cs # JSON data models (DictionaryEntry, DatamuseWord)
β βββ ScriptDetector.cs # Latin / Cyrillic / CJK / Mixed detection
β βββ IDictionaryProvider.cs # Provider interface
β βββ EnglishDictionaryProvider.cs # Free Dictionary API (en)
β βββ FrenchDictionaryProvider.cs # Collins + French Wiktionary (fr)
β βββ UkrainianDictionaryProvider.cs # Ukrainian Wiktionary + goroh.pp.ua (uk)
β βββ ChineseDictionaryProvider.cs # CC-CEDICT offline database (zh)
β βββ DefinitionExtensionHost.cs # Extension host singleton
βββ Strings/
β βββ en-US/Resources.resw # English localization
β βββ fr-FR/Resources.resw # French localization
βββ Resources/
β βββ cedict.txt.gz # Embedded CC-CEDICT Chinese dictionary
βββ Assets/ # MSIX tile and logo assets
| Source | Type | Languages | Notes |
|---|---|---|---|
| Free Dictionary API | Online | English, French | No API key required |
| Ukrainian Wiktionary | Online | Ukrainian | Wikitext parsing |
| goroh.pp.ua | Online | Ukrainian | Fallback for Wiktionary |
| Collins Dictionary | Online | French | French-English |
| French Wiktionary | Online | French | Fallback for Collins |
| CC-CEDICT | Offline | Chinese | Embedded gzipped resource |
| Datamuse API | Online | English, Spanish | Spelling suggestions |
| Wiktionary opensearch | Online | 12+ languages | Spelling suggestions (prefix search) |
| Built-in word lists | Offline | English, Ukrainian | Spelling suggestions (Levenshtein) |
An internet connection is required for most lookups. Chinese lookups work offline via the embedded CC-CEDICT database.
The workflow .github/workflows/store-metadata.yml can update Microsoft Store listing metadata from:
store-metadata/metadata.json
If this file is missing, the workflow now skips metadata update steps instead of failing.
Use this file only when you intentionally want to update listing metadata through CI.
| Problem | Solution |
|---|---|
| Extension not visible | Restart PowerToys. Verify MSIX is installed: Get-AppPackage *Definition* |
| Build errors | Ensure .NET 9.0 SDK and Windows App SDK are installed |
| MSIX install fails | Enable Developer Mode in Windows Settings |
| No results returned | Check your internet connection (Chinese works offline) |
| No spelling suggestions | Ensure Enable Spelling Suggestions is on in Settings |
Contributions are welcome! Please open an issue or submit a pull request.



