Interactive mode changedinteractive-mode
Nearest release: v2.1.235, published 6 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+97added
Lines−0removed
From line
380
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits72to this page, all time
## Check spelling as you type ### Prerequisites ### Turn spell checking on or off ### What Claude Code underlines ### When Claude Code underlines nothing
The whole hunk
from line 380, old and new numbered
/
from line 380
380380
381381To turn the feature off, set [`emojiCompletionEnabled`](/docs/en/settings#available-settings) to `false` in `settings.json`. This disables both the suggestion popup and the inline replacement.
382382
383## Check spelling as you type
384
385Claude Code can underline misspelled words in the prompt input while you type. It checks only the text in the input box, never Claude's replies or your files. It also checks nothing while the input box is in [shell mode](#shell-mode-with-prefix), `Ctrl+R` history search, or [voice dictation](/docs/en/voice-dictation).
386
387Spell checking is off by default, and Claude Code checks nothing in [screen reader mode](/docs/en/accessibility). Requires Claude Code v2.1.235 or later.
388
389### Prerequisites
390
391* Install [aspell](https://github.com/GNUAspell/aspell), [hunspell](https://github.com/hunspell/hunspell), or [ispell](https://en.wikipedia.org/wiki/Ispell) and make sure it's on your `PATH`. Claude Code runs the first of the three it finds, in that order, on every platform, including a `.cmd` shim a package manager installs on Windows.
392* To check that the program is on your `PATH`, run `aspell --version`, `hunspell --version`, or `ispell -v` in your terminal. A "command not found" error means it isn't on your `PATH` yet.
393
394### Turn spell checking on or off
395
396Claude Code reads the [`spellcheck`](/docs/en/settings#available-settings) setting from three places, and ignores it in a project's `.claude/settings.json` and `.claude/settings.local.json`. Turn it on from whichever one you use:
397
398<Tabs>
399 <Tab title="User settings">
400 Add `spellcheck` to `~/.claude/settings.json`. It applies in every project you open, like the rest of your [user settings](/docs/en/settings#settings-files):
401
402 ```json theme={null}
403 {
404 "spellcheck": { "enabled": true }
405 }
406 ```
407 </Tab>
408
409 <Tab title="Command line">
410 Save `spellcheck` in a JSON file, such as `spellcheck.json`:
411
412 ```json theme={null}
413 {
414 "spellcheck": { "enabled": true }
415 }
416 ```
417
418 Then pass the file to `--settings`. It applies to that session only:
419
420 ```bash theme={null}
421 claude --settings spellcheck.json
422 ```
423 </Tab>
424
425 <Tab title="Managed settings">
426 Add `spellcheck` to one of your organization's [managed settings sources](/docs/en/permissions#managed-settings). It applies to every user who receives those settings, and they can't turn it off:
427
428 ```json theme={null}
429 {
430 "spellcheck": { "enabled": true }
431 }
432 ```
433 </Tab>
434</Tabs>
435
436To check that spell checking is on, type a misspelled word and a space. Claude Code underlines the word. If it doesn't, see [When Claude Code underlines nothing](#when-claude-code-underlines-nothing). To turn spell checking off again, set `enabled` to `false` in the same place, or remove `spellcheck`.
437
438To choose which of the three programs Claude Code runs, which dictionary it uses, or the underline color, add any of these fields next to `enabled`, in the same place:
439
440* `checker`: `aspell`, `hunspell`, or `ispell`. Claude Code doesn't fall back from a checker you name, and treats any other value as `auto`.
441* `language`: a dictionary name in your checker's form, such as `en_GB`. Claude Code ignores any value that isn't a plain dictionary name, such as a path or a name with spaces, and the checker uses its default dictionary.
442* `color`: a color name such as `yellow`, or a `#rrggbb`, `#rgb`, `rgb(r,g,b)`, `ansi256(n)`, or `ansi:<name>` value. Claude Code uses your theme's error color by default and for any value it doesn't recognize.
443
444For example, this `spellcheck` setting runs hunspell with its `en_GB` dictionary and underlines words in yellow. It works the same in `~/.claude/settings.json`, in the file you pass to `--settings`, and in managed settings:
445
446```json theme={null}
447{
448 "spellcheck": {
449 "enabled": true,
450 "checker": "hunspell",
451 "language": "en_GB",
452 "color": "yellow"
453 }
454}
455```
456
457If more than one of the three places has a `spellcheck` setting, Claude Code uses only one of them: managed settings first, then `--settings`, then user settings. It doesn't combine fields from two places. For example, when `--settings` sets `spellcheck`, a `language` in your user settings has no effect.
458
459### What Claude Code underlines
460
461Shortly after you pause typing, Claude Code underlines the words the dictionary doesn't know. It leaves the word you're still typing alone until you move past it, and it never changes your text. It also skips text that looks like code:
462
463* Commands such as `/help`, `@` mentions, URLs, file paths, and flags such as `--verbose`
464* Words with digits, underscores, or a capital letter after the first, and text in backticks
465
466Claude Code also skips Chinese, Japanese, Korean, Thai, Lao, Khmer, and Myanmar text.
467
468Claude Code has no word list of its own: a word is misspelled when your checker says so. To stop Claude Code from underlining a word, add the word to your checker's personal dictionary, following the checker's own documentation. Claude Code picks up the new word after you restart it.
469
470### When Claude Code underlines nothing
471
472Claude Code underlines nothing when it can't keep a checker running:
473
474* No checker is installed, or the one you named in `checker` is missing
475* The checker fails twice in a row, at startup or later in the session. Claude Code restarts it after the first failure and stops checking after the second, until you restart Claude Code
476* The checker takes more than 15 seconds to answer, three times. Each time, Claude Code leaves the words it was waiting on unmarked; after the third, it stops checking until you restart Claude Code
477
478To find out which of these happened, start `claude --debug` with spell checking on and type a word. Then look for the `[spellcheck]` lines in the debug log at `~/.claude/debug/<session-id>.txt`. One line names the program Claude Code started, or lists the ones it looked for and didn't find. Later lines say why it stopped. A missing-dictionary error there means the checker has no dictionary for your `language` value, or no default one when `language` is unset. Install one, or set `language` to a dictionary you have.
479
383480## Side questions with /btw
384481
385482Use `/btw` to ask a question about your current work without adding to the conversation history.
No line in this hunk matches that.