soizoktantas67 downloadsMatch equivalent CJK and compatibility characters in Search, Find, Quick switcher, Graph view, and tag/link suggestions without changing your text.
Match equivalent CJK and compatibility characters throughout Obsidian without changing your notes.
CJK Search extends Obsidian’s native Search, Find, Quick switcher, move dialogue, Graph view, and editor suggestions. Searching for 体 can find 體; searching for 发 can find both 發 and 髮. The plugin keeps your original query, note text, interface, and native actions unchanged.
CJK Search requires Obsidian 1.13.7 or later. It relies on internal Obsidian interfaces, so try it in a test vault before using it with important data.
Download cjk-search-v<version>.zip from Releases.
Create .obsidian/plugins/cjk-search-probe/ inside your vault.
Extract the archive directly into that directory, without an extra enclosing folder:
.obsidian/plugins/cjk-search-probe/
├── main.js
├── manifest.json
├── LICENSE
├── THIRD_PARTY_NOTICES.md
└── LICENSES/
├── Unicode-LICENSE.txt
└── OpenCC-LICENSE.txt
Restart Obsidian, then enable CJK Search under Settings → Community plugins.
To update, disable the plugin, replace the installed files, and enable it again. Keep the existing data.json; it contains your settings.
Use Obsidian’s normal commands:
⌘⇧F Search the vault
⌘F Find in the current Markdown note
⌘O Open the Quick switcher
Use Ctrl on Windows and Linux. If you have customised these shortcuts, use the bindings configured in Obsidian.
The plugin also enhances:
# in the Markdown editor; and[[.CJK Search adds equivalent matches to native results. It does not provide a separate search window, rewrite queries, rename files, convert text, or alter replacement and move operations.
Open Settings → CJK Search. Each feature can be controlled independently.
| Setting | Behaviour |
|---|---|
| Language | Follow Obsidian’s language or use one of nine interface languages |
| Search | Match equivalent characters across the vault |
| Find | Match within the current Markdown note; replacement keeps Obsidian’s original rules |
| Quick switcher | Match file names, paths, and aliases alongside native fuzzy search |
| Folder search | Match folder names and paths while preserving native move restrictions and folder creation |
| Graph view | Match in global and local graph filters and groups |
| Advanced graph queries | Extend path:, file:, and tag: graph filters; disabled by default |
| Tags | Extend native tag suggestions while inserting the original tag |
| Internal links | Extend file-name, path, and alias suggestions while inserting the original target |
| Compatibility characters | Also match forms such as ① / 1, ² / 2, A / A, and ffi / ffi |
All settings except Advanced graph queries are enabled by default. Existing Boolean preferences are preserved. Disabling an enhancement restores native matching for that feature.
Search, Quick switcher, and Graph view must also be enabled under Obsidian’s Core plugins. Disabling Graph view preserves the advanced-query preference but prevents it from taking effect.
# and [[ completions in top-level Markdown editors.Implementation and verification notes are available in docs/research/. Character-source details are recorded in the data report.
The plugin does not connect to the network at runtime, upload search content or logs, or rewrite notes. It records only warnings and errors by default. On-request diagnostics do not contain query text, note contents, file names, or paths.
To collect diagnostics, run CJK Search: Print diagnostics from the command palette, open the developer-tools Console, and filter for [CJK-Probe]. Check any output for private information before sharing it.
Report problems through GitHub Issues. Include your Obsidian version, operating system, affected feature, expected result, and the smallest example that reproduces the problem.
Building requires Node.js 22, npm, and Python 3.
npm ci
npm test
npm run build
The build is written to dist/. Copy all files from that directory into .obsidian/plugins/cjk-search-probe/.
Generated character data is already included, so a normal build does not regenerate it. Desktop integration checks are available separately:
npm run test:native
npm run test:surfaces
npm run test:folders
npm run test:settings
npm run test:graph
npm run test:completions
These checks launch an isolated Obsidian test vault and require the local test environment described by the research notes.
Questions, bug reports, and focused pull requests are welcome. Open an issue before undertaking a large behavioural change so that its scope and compatibility risks can be agreed first.
Before submitting a pull request, run:
npm test
npm run build
Keep changes focused, preserve native Obsidian behaviour when an enhancement is disabled or unsupported, and update the relevant research note when changing an integration surface or character-data source.
The code is released under the MIT Licence, copyright © 2026 CJK Search contributors.
Bundled data remains subject to its upstream licences: Unicode License V3 and Apache License 2.0 for OpenCC-derived data. See Third-party data notices and the standalone texts in LICENSES/. The build embeds these notices in main.js; retain them when distributing the plugin.