unstale

npm / cspell

cspell

What changed in cspell 10, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.

5 breaking2 deprecations9 new APIs and options1 performance12 behavior and defaults1 tooling11 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

cspell 1041 changes

Breaking changes 5

  • With this option, cspell lint now fails when every found file was skipped; use --no-must-find-files to allow the run to pass.

    10.4.0release notes

  • cspell lint now skips files that are symbolic links or in linked directories by default; --follow-symlinks allows checking them.

    10.4.0release notes

  • When enabled, cspell stops searching for .gitignore files at the file's git repository root, so outer repository rules do not apply to worktrees or submodules.

    10.4.0release notes

  • Requests are served only when they map under the private root; requests resolving outside it are refused with VFSErrorUnsupportedRequest.

    10.3.6release notes

  • Using command-line globs together with --force-check is now an error; omit --force-check to filter a file list by glob.

    10.3.5release notes

Deprecations 2

  • This import path is deprecated; import its RPC exports from @cspell/rpc instead.

    10.4.0release notes

  • This method is deprecated; it was intended for use only inside cspell-lib and will be removed in a future major version.

    10.3.6release notes

New APIs and options 9

  • Enables checking documents referenced by symbolic links for a whole job; the command-line no-option overrides it.

    10.4.0release notes

  • Enables following symbolic links in glob searches for a whole job; the command-line no-option overrides it.

    10.4.0release notes

  • Setting locale makes cspell-tools build case-insensitive forms and lowercase words using the dictionary language's case rules.

    10.4.0release notes

  • Allows checking documents referenced by symbolic links when named with --file or --file-list.

    10.4.0release notes

  • Adds the followSymlinks option to the lint API for checking documents referenced by symbolic links.

    10.4.0release notes

  • Makes cspell lint follow symbolic links and search linked directories during glob searches.

    10.4.0release notes

  • Adds the globSymlinks option to the lint API to follow symbolic links during glob searches.

    10.4.0release notes

  • The .m and .matlab extensions are associated with MATLAB; MATLAB binary formats and MEX files are marked as binary.

    10.4.0release notes

  • SpellCheckFileOptions now declares forceCheck, allowing it to be passed to spellCheckDocument and spellCheckFile with type checking.

    10.3.5release notes

Performance 1

  • cspell-lib no longer searches the whole text of documents that will not be checked, reducing wasted work for tools that pass it excluded or disabled documents.

    10.3.6release notes

Behavior and default changes 12

  • Sets help and table output width when it contains a positive number, taking priority over terminal width.

    10.4.0release notes

  • The default-command help now lists lint options; --verbose and --issue-template also show their extra help.

    10.4.0release notes

  • Dictionary lookups now use the case rules of the dictionary's locale, supporting Turkish, Azerbaijani, and Lithuanian casing.

    10.4.0release notes

  • cspell lint now uses --language-id and --locale when deciding whether to check a file, matching the language and locale used during checking.

    10.4.0release notes

  • Can read documents from any URL supported by the file system when text is not passed; stdin documents still need their text.

    10.4.0release notes

  • Can read documents from any URL supported by the file system when text is not passed; stdin documents still need their text.

    10.4.0release notes

  • With --cache, files are rechecked when this option differs from the run that cached their result.

    10.3.6release notes

  • With --cache, files are rechecked when this option differs from the run that cached their result.

    10.3.6release notes

  • The command-line flag overrides the config setting for directive validation, controlling what is shown as well as what is checked.

    10.3.6release notes

  • With --cache, files are rechecked when this option differs from the run that cached their result.

    10.3.6release notes

  • With --cache, files are rechecked when this option differs from the run that cached their result.

    10.3.6release notes

  • With --cache, files are rechecked when this option differs from the run that cached their result.

    10.3.6release notes

Tooling 1

  • Published TypeScript types for cspell, cspell-lib, and cspell-io no longer require @types/node, though web globals still require dom or Node types.

    10.4.0release notes

Fixes and other changes 11

  • Ignore patterns are applied in written order, and the last matching pattern decides; this applies to cspell-lib API checks.

    10.4.0release notes

  • Its iterator methods now return MapIterator, and it no longer declares that it implements Map, allowing types to compile with TypeScript's esnext lib.

    10.4.0release notes

  • Unknown directive issues are included in JSON reporter output again.

    10.3.6release notes

  • The performance summary now accounts for all Total Time, with Setup Time, Between Files, and Other Time lines.

    10.3.6release notes

  • Unknown in-document directives are reported and count as issues when directive validation is enabled; the command-line flags override the config setting.

    10.3.6release notes

  • Globs starting with ** no longer skip files supplied with --file or --file-list when the project is under a dot folder.

    10.3.5release notes

  • Checks every file supplied with --file or --file-list, even when ignorePaths or the files setting would skip it.

    10.3.5release notes

  • shouldCheckDocument now honors forceCheck for documents excluded by ignorePaths or disabled by overrides or languageSettings.

    10.3.5release notes

  • Issues after multiple text changes are now reported at the correct position in the file.

    10.3.5release notes

  • Substitutions supplied directly as find-and-replacement pairs are now applied even without substitutionDefinitions.

    10.3.5release notes

  • Thai text and other text using international word segmentation are now checked normally instead of stopping with an internal error.

    10.3.5release notes