1 Software and computing
The best-served domain by a distance. The
cspell-dicts
project publishes about 60 technical dictionaries as
@cspell/dict-* packages, plain one-word-per-line text, nearly
all MIT.
Every figure below was measured by probing the package against a real Harper in all five dialects on 2026-07-25. "New" means no dialect recognised the word. Re-measure yours by dropping the files into weirsmith.
| Package | Usable words | New to Harper | % |
|---|---|---|---|
dict-cpp | 32,262 | 18,326 | 57% |
dict-python | 8,613 | 3,841 | 45% |
dict-software-terms | 4,082 | 1,881 | 46% |
dict-typescript | 3,671 | 838 | 23% |
dict-cryptocurrencies | 627 | 454 | 72% |
dict-latex | 667 | 317 | 48% |
dict-k8s | 850 | 313 | 37% |
dict-data-science | 303 | 185 | 61% |
dict-aws | 1,522 | 152 | 10% |
dict-rust | 288 | 113 | 39% |
dict-gis | 410 | 81 | 20% |
dict-terraform | 118 | 47 | 40% |
Also published, unmeasured: dict-java, dict-csharp,
dict-golang, dict-php, dict-ruby,
dict-scala, dict-haskell, dict-elixir,
dict-lua, dict-r, dict-swift,
dict-kotlin, dict-dart, dict-clojure,
dict-sql, dict-bash, dict-powershell,
dict-docker, dict-google, dict-npm,
dict-node, dict-html, dict-css,
dict-django, dict-vue, dict-svelte,
dict-fullstack, dict-companies,
dict-filetypes, dict-gaming-terms,
dict-public-licenses.
A high percentage is not permission to take it all
dict-cpp is the trap. 57% of it is new to Harper — and it is
18,326 words, most of them API identifiers like Conv1d,
basic_streambuf or wcscspn. Those are not prose.
Importing them all would widen Harper's accepted set by more than a third
of its own dictionary and degrade its suggestions for everything else,
which is the failure this tool exists to prevent.
The same applies to dict-data-science, whose new words are
largely model names — Codestral, BLOOMRM,
CKPT, Dahoas. Useful in a changelog, noise in a
dictionary that has to last.
High novelty means the dictionary is on-topic, not that every word in it earns a place. The tagging step is where you cut it down. Pick the vocabulary that appears in your prose — a design doc, a postmortem, a policy — rather than in your code.
2 Maths, science and finance: mostly a gap
This is the honest answer rather than a list of links. If you need finance, pure maths or lab-science vocabulary, there is very little you can just download.
Maths and science
@cspell/dict-scientific-terms-us looks like exactly the right
thing and is currently unusable. Its two files are
custom_scientific_US.trie.gz — a compiled trie weirsmith
cannot decode — and mathematics_US.txt.gz, which contains
one word (GMRES). All the content is inside
the trie.
What does work: @cspell/dict-latex (667 words, 48% new) covers
the notation and environment names that appear in mathematical writing, and
@cspell/dict-data-science covers applied statistics and ML.
Neither is a mathematics vocabulary.
Finance
Nothing on npm worth recommending. The closest is
@cspell/dict-cryptocurrencies (627 words, and 72% new — the
highest novelty of anything measured here), which is a narrow slice of it.
For finance, accounting, law or any regulated field, the realistic source is your own writing. Pull the distinct words out of a few hundred of your own documents, drop that list in, and let the probe throw away the 90-odd percent Harper already knows. A term that appears in your documents is one you actually need, which is a better filter than anyone else's word list.
Medicine and life sciences
@cspell/dict-medicalterms exists and is
GPL-3.0-or-later — its tarball carries the
full GPLv3 at package/LICENSE, unlike the MIT of its
siblings. Converting it privately is your business; publishing a pack
built from it means honouring the GPL.
MeSH (US National Library of Medicine) is a large controlled vocabulary, free with a licence agreement and attribution. Mostly multi-word headings, so expect weirsmith to skip a lot: Harper matches single tokens.
3 Hunspell dictionaries: for the affixes
A .dic with its .aff is the richest format
weirsmith reads — supply both and the affix flags are translated into
Harper's own, so plurals and verb forms keep working instead of being
dropped. 17 of dictionary-en's 23 flags map exactly.
But format is not content. The hunspell dictionaries you can download are general-language dictionaries, and those are the least useful thing here — see the next section. Reach for hunspell when your own domain list happens to come with an affix table, not as a source of vocabulary.
wooorm/dictionaries
Hunspell dictionaries for ~90 languages, packaged for npm. English is
dictionary-en, dictionary-en-gb,
dictionary-en-au. Licence varies by language — the English
ones are (MIT AND BSD); others are GPL, LGPL or CC-BY-SA.
SCOWL and en-wl/wordlist
What most English hunspell dictionaries are generated from, with size-graded lists, a builder and the ESDB variant database. Useful if you want a specific frequency cut, or to reason about dialect variants rather than accept someone's packaged choice.
4 What not to bother with
Other languages — Harper only checks English
Harper ships five dialects: American, British, Australian, Canadian and Indian. All English. There is no French or German mode, so a French dictionary has nothing to be correct in.
Measured rather than assumed: converting dictionary-fr yields
a 256 KiB pack of 76,923 words, and loading it into Harper swallowed
no English typos — 16 of 20 caught before, the same 16
after. So the objection is not that it breaks Harper. It is that it buys
nothing and quietly pollutes suggestions: with French loaded, Harper
offered achaine for acheive where it had offered
achene, and added concis to its guesses for
concious. Dead weight with a small ongoing cost.
General-English dictionaries
Harper already knows 99.7% of dictionary-en —
49,412 of 49,555 entries. The 143 left over are mostly abbreviations. Every
redundant word widens the spell checker's accepted set and feeds its
suggestion engine, so this is effort spent making Harper slightly worse.
Compiled tries
cspell's language dictionaries — @cspell/dict-en_us
and friends — and dict-scientific-terms-us ship
.trie.gz with no plain list beside it. weirsmith does not
decode that format and says so rather than silently reading nothing.
Hyphenated and multi-word entries
Harper looks up single tokens, so blue-green and
low hanging can never match — the tokenizer has already split
the text by the time the lookup happens. weirsmith drops them and reports
how many.
5 Tagging references
WordNet
A lexical database with a part of speech for 147,478 single-word entries
(MIT, packaged as wordnet-db). A natural candidate for
pre-filling tags, and weirsmith deliberately does not ship it: measured
against the words that actually survive probing, WordNet has a tag for two
thirds of them — but they are abbreviations like APR and
Btu that shape guessing already handles. On genuinely
technical vocabulary it tagged 3 of 18. Six megabytes of index for that is
a bad trade, so weirsmith guesses from word shape and makes correcting the
guess quick.