Delon3k downloadsHigh-performance, offline spellchecker for Obsidian using Hunspell .aff and .dic dictionary pairs.
A high-performance, offline spellchecker for Obsidian using standard Hunspell dictionaries (.aff and .dic files).
.aff and .dic dictionary from your computer. See Local dictionaries.Requires Obsidian 1.13.0 or later.
main.js, manifest.json, styles.css) into your vault's .obsidian/plugins/obsidian-hunspell-spellchecker folder.To download a dictionary, follow these steps. To add one from your computer instead, see Local dictionaries.
If a language is not available in the GitHub list, you can add your own Hunspell dictionary from your computer:
.aff and .dic files of the dictionary together.For example, to add English (US), select en_US.aff and en_US.dic. The language identifier is taken from the file name, so both files must follow these
rules:
.aff file and one .dic file must be selected.en_US.aff with en_US.dic is accepted, while en_US.aff with en_us.dic is rejected._ and -. Spaces and dots are not allowed.If a language with the same name is already installed, you will be asked to confirm before its files are replaced. To remove a local language, use the trash icon next to it in Installed Languages.
If you find this plugin useful, you can support its development on Buy Me a Coffee.
Contributions, issues, and feature requests are welcome!
MIT License
Remote fetches, cache use, downloads, and installations are recorded as JSON Lines in logs/hunspell-spellchecker.log inside the plugin folder. Each entry
includes an ISO timestamp, level, action, context, and serialized error details when applicable. The file is rotated at approximately 512 KB; it can be removed
manually or when the plugin is disabled.
Remote language discovery uses GitHub's recursive Git Trees API to reduce requests. If that response is unavailable or truncated, the plugin falls back to the
Contents API. GitHub's anonymous API has rate limits; when a refresh cannot be completed, the last valid cached list remains available, and the settings page
recommends trying again later. A 403 may indicate a rate limit or temporary block, rather than a missing dictionary.