Smart Environment v3
Open faster. Change models without starting over.
Smart Environment v3 is the upgrade you feel before opening any individual Smart Plugin. The suite reaches a useful state sooner, offers more built-in local embedding models, and lets you change the active model without restarting Obsidian or erasing the embeddings created by the model you were using before.
It also makes the invisible parts of the system much easier to trust. Notes and source sets move more cleanly between plugins, useful actions appear in more consistent menus, and you can finally inspect what was embedded instead of guessing from the results.

Smart Environment v3 is a coordinated suite upgrade. Update every installed Smart Plugin, then restart Obsidian. Mixed v2 and v3 environments are blocked so an incomplete update cannot leave the suite in a misleading half-updated state.
Faster startup across the suite
v3 removes more blocking, repeated, and unnecessary work from the path between opening Obsidian and using a Smart Plugin. Built-in local embedding work can initialize away from the main interface, unchanged sources no longer need the same full traversal on every load, and a local model can remain unloaded when there is no embedding work to perform.
Plugins also share more of the same readiness path instead of repeating setup on their own. The practical result is less time waiting for Connections, Lookup, Context, or Graph to become useful. When something is still loading, the Status view now makes that state clearer instead of leaving an empty surface to explain itself.
Measured startup and embedding impact
A Smart Connections benchmark exercised the Environment pipeline on one Windows system with 281 sources, 7,341 blocks, and the TaylorAI/bge-micro-v2 local model. It compared Smart Connections 4.5.3 with Smart Environment 2.4.6 against Smart Connections 4.7.2 with Smart Environment 3.1.1.
| Measurement | v2 baseline | v3 observed | Difference |
|---|---|---|---|
| First load to plugin-ready | 37.68 s | 24.96 s | 33.7% faster |
| Subsequent load to plugin-ready | 5.03 s | 3.35 s | 33.5% faster |
| Local embedding character throughput | 39,830 chars/s | 48,801 chars/s | 22.5% higher |
Subsequent smart_sources load |
1.786 s | 0.138 s | 92.3% shorter |
| Empty embedding-queue path | 1.002 s | less than 1 ms | More than 99.9% shorter |
| Vector preparation, storage, checkpoints, and final commit | 1.357 s | 0.090 s | 93.4% shorter |
On the subsequent load, the older path traversed an import queue containing all 281 sources, initialized the local model, built an embedding queue, and only then discovered that no items required embedding. The v3 path processed the one source requiring import work and returned from the empty embedding queue without creating the model.
During first-load embedding, the older path issued one model call per item. The v3 path uses worker-backed batching, a batch window, and input-length sorting so each model call can process more useful work. Vector-file persistence also avoids much of the repeated source, block, and checkpoint writing performed by the older inline-storage path.
These measurements are representative observations, not universal guarantees. Only one run per version and condition was captured, and cache state, hardware, model choice, and vault contents can change the result. The v3 first-load queue also contained 19.2% fewer input characters, so its raw 36.2% shorter embedding duration is not an equal-work comparison. The 22.5% character-throughput improvement is the more useful normalized result.
Switch embedding models without throwing the old index away
Changing embedding models used to feel like a one-way migration. In v3, each model can keep its own stored embeddings. You can activate another model without reloading Obsidian or deleting the data produced by the previous model, then switch back later without treating the experiment as a full reset.
The built-in local model catalog is broader too, including more lightweight and multilingual choices for different vaults and hardware. Embedding and chat model settings now make the active model, readiness, dimensions, errors, deletion, and reindexing easier to understand.

The suite now behaves like a suite
Drag a saved Context into Chat. Send Lookup results to Graph. Drop a vault note onto Connections. Open the menu on a source and continue from that source without first navigating to another plugin.
Supported notes, blocks, folders, saved contexts, and result sets now arrive as the thing you moved instead of collapsing into a file path or plain text. The same shared action system also gives menus, commands, ribbon buttons, source actions, and status controls more consistent behavior across the suite.

Stop guessing about the index
The improved Stats view turns index health into something you can inspect. Review source and block totals, embedding coverage, loaded-vector memory, skipped items, and unexpected vectors from one place.
The source inspector goes one level deeper. Open the active note or another source to see what was imported, what was embedded, what was skipped, and why. Search and reason filters help with larger collections, and Force re-import gives you a direct recovery path when one note is stale.


Export what the Environment has built
Data export now lets you choose the collections to include, decide whether vectors belong in the export, watch progress, and see a clear completion or retry state. Backups, diagnostics, and migrations no longer require blind trust in an opaque export step.

Pro: API keys belong in Obsidian's keychain
Smart Environment Pro can store supported API keys through Obsidian's native, keychain-backed secret storage instead of ordinary plugin settings. Pro plugins get one safer shared way to retrieve credentials while Obsidian remains responsible for protecting the secret.
The v3 difference
| Before | With Smart Environment v3 |
|---|---|
| Smart Plugins could repeat blocking work, revisit unchanged sources, or initialize a local model before discovering that the embedding queue was empty. | Shared startup work is reduced, source processing is incremental, and local models stay unloaded until embedding work exists. |
| Local embedding commonly issued one model call per item and repeatedly persisted inline vectors during longer runs. | Worker-backed, length-aware batches process more items per call while vector-file persistence reduces repeated checkpoint and collection writes. |
| Changing embedding models felt like committing to a rebuild. | Switch models without restarting Obsidian or deleting another model's stored embeddings. |
| The built-in local model choice was narrower. | Choose from a broader catalog, including more lightweight and multilingual options. |
| Dragging between plugins could reduce a useful object to a path or text. | Supported items retain enough meaning for the destination to continue the workflow. |
| Index problems were difficult to locate. | Stats and source inspection show what is embedded, skipped, stale, or unexpected. |
| Exporting shared data required more trust than feedback. | Choose the contents, watch progress, and see a clear completion or retry state. |
Supporting improvements
- Deferred local embedding-model initialization until an embedding queue contains work.
- Incremental source import on subsequent loads instead of revisiting every unchanged source.
- Worker-backed, length-aware batched local embedding where supported.
- Vector-file persistence and lighter checkpoint commits, reducing repeated source and block writes.
- Removed path-length failures in source and embedding storage, so every note name Obsidian supports now works, even in deeply nested vaults.
- Safer source and embedding saves during unload, with more durable sharded persistence.
- Source-data optimization with backup validation and clearer recovery behavior.
- Batched vector maintenance after source re-imports instead of unnecessary one-at-a-time rebuilds.
- Gitignore-style file and folder exclusions.
- Less disruptive notices with expandable details, help links, and mute controls.
- Better Bases, Canvas, rendered-source, binary-file, image, and PDF handling where supported.
- More accurate Core and Pro vector memory reporting.
Learn more
Release notes
Smart Environment v3.0.0
- Established v3 as the compatibility boundary for the coordinated Smart Plugin release train.
- Prevented Smart Environment 2.x plugins from contributing configuration to, or remaining loaded in, a v3 environment.
- Improved Plugin Store compatibility signaling and documented the update-all-plugins restart path.
Smart Environment Core v3.1.0
- Reduced startup friction with incremental source processing, worker-backed local embedding initialization, and an empty-queue fast path that avoids loading the model when no vectors are missing.
- Added worker-backed local embedding batches and input-length-aware queue processing, allowing each model call to process more useful work.
- Added non-destructive embedding-model switching, active-model reindexing, better Ollama handling, and clearer model controls.
- Expanded the built-in local embedding catalog with additional lightweight, multilingual, and experimental models.
- Added shared menu, command, ribbon, source, parameter, and drag-and-drop actions across supported plugin surfaces.
- Expanded Stats and source inspection with memory reporting, embedding health, skipped and unexpected item filters, active-note inspection, force re-import, and clearer errors.
- Improved data export and source-data optimization.
- Removed path-length failures in source and embedding storage, so every note name Obsidian supports now works, even in deeply nested vaults.
- Improved sharded persistence, save and unload behavior, queued re-import handling, and subsequent-load source reuse.
- Added Gitignore-style exclusions and improved notifications, plugin installation, release links, Canvas parsing, binary reads, and context compilation.
Smart Environment Pro v3.2.0
- Moved the accelerated vector index and its v3 embedding lifecycle into Smart Environment Pro.
- Added model-scoped vector-file persistence, batched length-sorted embedding, and lighter checkpoint commits that reduce repeated source and block writes.
- Added batched index rebuilds, custom embedding-dimension support, accurate OpenAI dimensions, and combined Core and Pro memory reporting.
- Coordinated with Core's incremental source processing so an empty embedding queue can return without initializing the local model.
- Added Obsidian-native secure secret storage for supported API keys.
- Added per-view Bases rendering, relative
this.fileandthis.notequeries, media sources, and media-aware context suggestions. - Added configurable HyDE lookup and improved ranking, source import, embedding saves, and index rebuild behavior.