Alexey Alekhin125 downloadsUnderlines plain-text mentions of existing notes (incl. aliases) right in the editor. Click a mention to turn it into a wiki link.
An Obsidian plugin that spots plain-text mentions of your existing notes while you write and underlines them with a subtle dotted line. Click a mention to turn it into a [[wiki link]] — no sidebar, no dialogs, no leaving the flow of writing.
Obsidian's built-in unlinked mentions live in the backlinks sidebar: per-note, exact-title-only, and you have to go looking for them. This plugin brings unlinked mentions into the editor itself:
[[Note Title]] when the text matches the title, [[Note Title|original text]] when it matched an alias. Link style follows your "Use [[Wikilinks]]" preference. On mobile, tap the underline instead.node scripts/profile.ts): index build | Setting | Default | Description |
|---|---|---|
| Enable suggestions | on | Master toggle (also a command for hotkeys). |
| Underline in reading view | off | Suggest and link in reading view too. |
| Case-sensitive matching | off | Require exact case to match. |
| Include aliases | on | Match frontmatter aliases too. |
| Minimum term length | 3 | Skip very short titles/aliases. |
| Excluded folders | — | Notes here are never suggested (e.g. Templates/). |
| Disabled folders | — | No underlines while editing notes here (e.g. Journal/). |
| Ignored terms | — | Never underline these; add from the mention popup. |
Folder and term lists are edited as removable chips — type in the field and press Enter to add.
Not yet in the community plugin directory. Manual install:
main.js, manifest.json, and styles.css from the latest release.<vault>/.obsidian/plugins/inline-link-suggestions/.npm install
npm run dev # watch build
npm test # unit tests for the matcher core
npm run test:e2e # end-to-end tests in a real Obsidian instance
npm run test:e2e:mobile # same suite, under Obsidian's mobile emulation
npm run build # type-check + production build
The matching core (src/core/) is pure TypeScript with no Obsidian imports and is fully unit-tested. Editor integration lives in src/editor/ (CodeMirror 6 view plugin).
End-to-end tests (e2e/specs) run via wdio-obsidian-service against a real, freshly-downloaded Obsidian instance — no mocking. The same specs run twice: once as normal desktop Obsidian (e2e/wdio.conf.mts), once with app.emulateMobile() on (e2e/wdio.mobile-emulation.conf.mts), so the mobile-only tap-to-link path (the Platform.isMobile branch in src/editor/highlighter.ts) is covered without needing a phone or emulator. Both run in CI on every push.
This doesn't cover the real mobile app's Capacitor runtime — only public CM6/Obsidian APIs are used here, so the risk is low, but if that ever matters, wdio-obsidian-service also supports testing the real Obsidian Android app via Appium; see its README.
SuggestionProvider interface in src/core/types.ts is the seam where this plugs in.MIT