Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Camel Case Spellcheck

Pierson GPierson G170 downloads

Spellchecks individual words in camelCase, PascalCase, and snake_case identifiers.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

Camel Case Spellcheck is a desktop-only Obsidian plugin that checks the words inside camelCase, PascalCase, snake_case, and dotted.name identifiers independently.

Obsidian normally treats a complete identifier as one spelling token. This plugin splits compound identifiers at case, underscore, and period boundaries and underlines only the component that appears to be misspelled.

Text Result
TheseAreAllWords No underline
TheLastWordIsMispleled Only Mispleled is underlined
theLastWordIsMispleled Only Mispleled is underlined
the_last_word_is_mispleled Only mispleled is underlined
parseHTTPResponse Checked as parse, HTTP, and Response
source.file.input Checked as source, file, and input
example.com, notes.pdf Left to Obsidian's native spellchecker
Mispleled Left to Obsidian's native spellchecker

Features

  • Checks components of camel case, Pascal case, snake case, dotted names such as source.file.input, acronyms, mixed styles, and identifiers with numeric boundaries. Hostnames and filenames such as example.com and notes.pdf are left to native spellcheck, which already skips them. Period splitting can be turned off in settings.
  • Uses a bundled US English Hunspell-compatible dictionary, so checking is local and works offline.
  • Waits briefly after an edit before displaying a new underline, matching the less distracting behavior of native spellcheck.
  • Places suggestions at the top of Obsidian's editor context menu and supports replacing only the misspelled component.
  • Reads words already learned by Obsidian and writes Add to dictionary choices back to the same persistent desktop dictionary.
  • Accepts common programming abbreviations such as src, init, num, and JSON that are not English words. This can be turned off in settings.
  • Keeps a plugin-local ignore list for words that should pass inside identifiers without being added to Obsidian's dictionary, via Ignore in identifiers on the context menu or the settings tab.
  • Checks only visible editor content and skips code, comments, frontmatter, HTML, URLs, autolinks, and Markdown link syntax.

Requirements and limitations

  • Obsidian 1.13.6 or newer on Windows, macOS, or Linux.
  • Obsidian's Spellcheck setting must be enabled.
  • Mobile is not supported because dictionary synchronization requires Electron.
  • The bundled base dictionary currently supports US English only. Changing Obsidian's spellcheck language does not change the plugin's base dictionary.
  • Camel Case Spellcheck operates in the Markdown editor, not Reading view.
  • Obsidian's persistent dictionary is accessed through an Electron session bridge rather than the documented Obsidian plugin API. Component checking continues to work if that bridge changes, but dictionary synchronization and Add to dictionary may become unavailable.

Installation

Community plugins

Once Camel Case Spellcheck is available in the Obsidian Community directory:

  1. Open Settings → Community plugins.
  2. Select Browse and search for Camel Case Spellcheck.
  3. Select Install, then Enable.

Manual installation

  1. Download main.js, manifest.json, and styles.css from the latest GitHub release.
  2. Create <vault>/.obsidian/plugins/camel-case-spellcheck/.
  3. Copy the three downloaded files into that folder.
  4. Reload Obsidian and enable Camel Case Spellcheck under Community plugins.

Usage

Write camel-case, Pascal-case, or snake-case text normally. After a short pause, any misspelled component receives a red wavy underline. Right-click that component to replace it with a suggestion, ignore it inside identifiers, or add it to Obsidian's dictionary.

Ignore in identifiers affects only this plugin and only compound identifiers; Add to dictionary changes Obsidian's native spellcheck everywhere. Both match case-insensitively, so ignoring csae also covers Csae and CSAE. The ignore list and the abbreviation toggle live in Settings → Camel Case Spellcheck.

Ordinary words are deliberately left alone, so Obsidian's native spellchecker continues to handle them.

Why the plugin uses its own checker

The first implementation attempted to reuse Chromium's native spellchecker for each component. In the live Obsidian renderer, however, the exposed Electron query reported a known misspelling as accepted and returned no suggestions even while Obsidian visibly underlined the same word. The query API was therefore not connected to the useful spelling context used by the editor.

A second experiment inserted invisible CodeMirror boundary widgets between the parts of an identifier. Those widgets are decorations rather than editable document text, and Chromium continued to combine the surrounding text into one spelling token. The result was still a whole-identifier underline.

The current implementation takes the reliable route: it calculates component ranges itself, suppresses native spellcheck only for the compound identifier, checks each part with nspell, and adds a CodeMirror decoration around only the misspelled range. Native spellcheck remains responsible for ordinary words.

Privacy

Camel Case Spellcheck has no telemetry, network requests, accounts, or external services. Text examined by the checker stays in memory and is not transmitted or persisted by the plugin. The only persistent data it accesses is Electron's spelling dictionary when synchronizing or adding custom words.

Development

This repository requires Node.js 22.13 or newer.

npm ci
npm run check

npm run check runs ESLint, the unit tests, TypeScript type checking, and a production build. Use npm run dev for a watch build during development. Both commands generate main.js; the generated bundle is intentionally ignored by Git and is distributed through GitHub releases instead.

To test a build, copy main.js, manifest.json, and styles.css into a folder named camel-case-spellcheck under a disposable vault's .obsidian/plugins/ directory.

Releasing

The included GitHub Actions workflow builds a draft release whenever a version tag is pushed. To prepare a release:

  1. Run npm version patch, npm version minor, or npm version major.
  2. Push the generated commit and version tag.
  3. Review the draft GitHub release and publish it.

The tag, package.json, manifest.json, and versions.json must use the same semantic version. GitHub release assets must include main.js, manifest.json, and styles.css. See Obsidian's plugin submission guide for the initial Community directory submission.

License and acknowledgements

Camel Case Spellcheck is released under the MIT License.

Spellchecking uses nspell and the dictionary-en US English dictionary. The nspell dependency uses is-buffer. Their license notices are preserved in the generated plugin bundle.

HealthExcellent
ReviewSatisfactory
About
Check words inside camelCase, PascalCase, snake_case and mixed identifiers by splitting at case, underscore and numeric boundaries and underlining only the misspelled component. Use a bundled offline US English Hunspell dictionary, add suggestions to the editor context menu to replace just the misspelled component, and skip code, frontmatter, links and invisible content while operating in the Markdown editor on desktop.
EditingMarkdownLanguages
Details
Current version
0.2.0
Last updated
3 weeks ago
Created
Last month
Updates
2 releases
Downloads
170
Compatible with
Obsidian 1.13.6+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
Pierson GPierson Gpiersong55
GitHubpiersong55
  1. Community
  2. Plugins
  3. Editing
  4. Camel Case Spellcheck

Related plugins

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Simplified Chinese Word Splitting

Adds Simplified Chinese word splitting support for the editor and Vim mode.

Heading Shifter

Easily Shift and Change Markdown headings.

LanguageTool

Unofficial integration of the LanguageTool spell and grammar checker.

Shortcuts extender

Use shortcuts for input special symbols without language switching.

Chord Sheets

Work with chord sheets (chords over lyrics or inline) in Live Preview and reading mode: Chord diagrams for guitar, ukulele, mandolin and piano, transpose, autoscroll, and more.

Easy Copy

Easily copy the text within inline code, bold text (and many other formats), or quickly generate an elegant link to a heading or block.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.