glyph-sO 2.3

unlisted

by Floke Studio

Full-text vault search (like Obsidian sidebar) — Ctrl+Shift+G, snippets, layout/translit extras.

1 starsUpdated 29d agoGPL-3.0
View on GitHub

Obsidian

glyph-sO 2.8

Full-text vault search for Obsidian
Profile-based ranking · extended query grammar · offline-first

glyph-s engine · Site · README.ru · glyph-s · glyph-miO


User section

What is glyph-sO?

glyph-sO is an Obsidian community plugin for full-text search across your vault. Unlike Obsidian’s built-in quick switcher (Ctrl+O), which matches file names only, glyph-sO indexes note content and ranks results with contextual snippets — so you can find ideas buried inside paragraphs.

The plugin is part of the Glyph 2.8 family and runs on the shared glyph-s search engine.

Obsidian quick switcherglyph-sO
MatchesFile namesFull note text
SnippetsNoYes — jump to the match
Query filtersLimitedpath:, tag:, phrases, OR, excludes
OfflineYesYes (Ollama optional)

What’s new in 2.8.0

Editor highlight — Enter opens the note and selects the first match for your query token, scrolled into view.

Search stats — results header/footer show N results in M notes · X ms (M = indexed vault size).

Hover preview — extended snippet context on row hover (tooltip + floating preview).

Folder grouping — optional folder headers in the results list (Settings → Group results by folder).

What’s new in 2.7.3

Persistent search index — \index-cache.json\ in the plugin folder; vault reload reuses entries when \mtime\ matches (Settings → Persistent search index).

2.8.0 adds editor highlight on jump, folder grouping, hover preview, search stats, and pinned queries (Shift+click recent/pinned chips). Persistent vault index shipped in 2.7.3.

What’s new in 2.7.2

Full-text search actually searches the body — the vendored glyph-s fast-path now includes note body text, so words buried only in paragraphs are no longer dropped before scoring.

Snippet match highlight — results show the matched span again (adapter keeps offsets from engine <mark> instead of stripping them).

Leaner main.js — removed ~250 lines of unused pre-2.7 ranking duplicates; search goes through services/search-engine.jsvendor/engine.js only.

What’s new in 2.7.1

Clearer profiles — settings show Fast / Standard / Deep (stored values remain legacy / balanced / max-quality) with tooltips.

Search diagnostics — optional toggle shows candidateCount / scoredCount / elapsedMs in the modal footer (via glyph-s onDiagnostics).

Layout-fix hint — when EN↔RU keyboard correction applies, a line under the input shows Also showing results for: … (layout fixed).

Filter autocomplete — best-effort tag: / path: suggestions from the vault (non-blocking).

Vendor version check — on load, compares vendor/VERSION.json to manifest.glyphEngineVersion and warns with a Notice if they differ.

Search profiles (2.7)

Label (UI)ValueBest for
FastlegacyMaximum compatibility with pre-2.7 behavior
StandardbalancedDefault — good speed and relevance for daily vaults
Deepmax-qualityDeeper fuzzy matching, more candidates scanned

Extended query grammar — compose precise searches:

"path:projects/"              → notes in a folder
tag:evergreen                 → filter by tag
"deep work" -draft            → phrase match, exclude drafts
(task OR todo) type:note      → OR group with type filter
path: journal tag:daily       → combine filters

Modular architecture — search logic in services/search-engine.js, powered by the vendored glyph-s engine. Easier updates and consistent ranking with other Glyph products.

Compact mode — minimalist panel spacing (enabled by default). Toggle in Settings → Compact mode.

Install

  1. Download the latest release from Releases.
  2. Extract into your vault:
.obsidian/plugins/glyph-s-o/
├── manifest.json
├── main.js
├── styles.css
├── services/
│   └── search-engine.js
└── vendor/
    ├── engine.js
    └── VERSION.json
  1. Enable glyph-sO in Settings → Community plugins.

How to use

ActionHow
Open searchRibbon icon 🔍 or command palette → Glyph: search vault
Navigate results↑ ↓ arrow keys
Open note at matchEnter
Recent queriesShown when the input is empty
tag: / path:Type the prefix for vault suggestions

Tip: Obsidian’s Ctrl+O finds files by name. Use glyph-sO when you remember what you wrote, not where you saved it.

Settings

SettingDescription
Search profileFast / Standard / Deep (legacy / balanced / max-quality)
Compact modeMinimalist result panel (default: on)
Group results by folderFolder headers in results list (default: off)
Show search diagnosticsFooter shows candidate/scored counts and elapsed ms
Match all wordsRequire every token to match (AND vs OR)
Fuzzy layoutEN↔RU keyboard layout correction (+ under-input hint)
Fuzzy transliterationRough Latin↔Cyrillic matching
Ollama query enrichOptional local LLM query expansion
Hide hotkey hintRemove shortcut hint from the modal

Pair with glyph-miO

For summaries and tag suggestions on the active note, install glyph-miO alongside glyph-sO. Together they cover search + metadata intelligence in Obsidian.


GitHub / Dev section

Architecture (2.8)

main.js                    # Obsidian plugin entry, UI, vault indexing
services/search-engine.js  # Adapter: settings → glyph-s rankSearchItems
services/search-ui.js      # Stats, folder groups, editor match offset
vendor/engine.js           # Bundled glyph-s (CJS)
vendor/VERSION.json        # Stamp from glyph-s vendor:sync
styles.css                 # Panel styles incl. .glyph-so-compact

The plugin builds a search index from vault markdown files and passes items to rankGlyphResults() with the user’s profile and fuzzy settings. On load it compares vendor/VERSION.json to manifest.glyphEngineVersion.

Refresh vendor bundle

When glyph-s is updated, sync the Obsidian CJS vendor (writes engine.js, ollama.js, profiles.json, and VERSION.json):

cd ../glyph-s
npm run vendor:sync
# equivalent: npm run bundle:obsidian

Or from this repo:

npm run vendor

Keep manifest.glyphEngineVersion aligned with the stamped vendor/VERSION.json version field after syncing.

Project layout

PathRole
main.jsPlugin class, modal, settings tab, index builder
services/search-ui.jsgroupResultsByFolder, formatSearchStats, findFirstMatchOffset
services/search-engine.jsrankGlyphResults, queryAlternatives
vendor/engine.jsrankSearchItems, snippetForItem, parseSearchQuery
vendor/VERSION.jsonEngine version stamp for runtime mismatch Notice
.github/workflows/release.ymlPackages services/ + vendor/ into release zip
.github/workflows/pages.ymlDeploys docs/ to GitHub Pages

Release packaging

The release workflow zips manifest.json, main.js, styles.css, services/, and vendor/ so the module-based runtime works out of the box.

Related repositories

RepoRole
glyph-sShared search engine core
glyph-miOMetadata intelligence for Obsidian
glyph-miUniversal MI core

License

GPL-3.0 · Floke Studio

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.