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.
v3.1.3
Switch embedding models without starting over
Change embedding models without deleting data saved for models you have already used. You also get more built-in model choices and faster processing for the default local model.

Compare the expanded built-in model choices before choosing what should index your vault.
See what was skipped - and fix it
Environment stats makes skipped and unexpected items easier to investigate. Search the list, filter by reason, inspect the source behind a result, force a re-import, repair block embeddings, or optimize stored source data with backup validation.
Long source paths no longer get excluded during normal indexing simply because they exceed 200 characters.

Filter skipped blocks by reason, then inspect the source behind each result.
Keep credentials in secure storage
API keys and legacy OAuth tokens now use shared secure storage, backed by Obsidian's native secret storage where available. Migration checks that secure storage can persist a secret before moving existing credentials.
A calmer event feed
Open View more when you need the details behind an event, then load incoming events with Show more when you are ready. New activity no longer shifts the feed while you are reading.
Full release notes
Models and indexing
- Switch embedding models without deleting previously saved embedding data.
- The default built-in embedding model now uses background-worker processing for improved performance.
- Improved local embedding batch-size handling and added batch-window and sorting configuration.
- Added more Transformers embedding models and support for selecting model revisions.
- Improved the model settings layout and added confirmation before deleting a model configuration.
- Added a way to re-index embeddings for the active model.
- Deselected blocks are excluded from embedding preparation, with automated checks for block selection.
- Improved embedding saves, memory-capacity reservation, and error handling during embedding processing.
- Pending source and block embeddings are saved before their in-memory stores are cleared when Smart Environment unloads. This lifecycle is now handled in Core.
Sources and stored data
- Removed the old 200-character source-path exclusion during normal use, with long paths supported through shared, sharded storage. The V2 per-source filename limit remains only in the one-time legacy migration.
- Improved file-link parsing in Canvas files.
- Added .gitignore exclusions and improved folder-exclusion handling.
- Standardized file and folder exclusion settings as lists and normalized how they are handled.
- Added Re-import wait time in Smart Environment settings to control the delay before automatic re-import.
- Added configurable delays for queued collection and event-log saves, with less frequent event-log writes.
- Improved Environment data export.
Diagnostics and recovery
- Improved Environment statistics and source inspection, including memory usage for embedding vectors and vector-file storage metrics.
- Added an inspector for skipped and unexpected source and block items, with search and reason filters.
- Collection cards now open item inspection. Inspector buttons, inputs, and accessibility labels have been improved, along with loading states and error handling.
- Source Inspector now offers a force re-import option.
- Environment stats now includes block-embedding integrity checks and repair controls.
- Added source-data optimization to Environment stats, including backup validation and error handling.
- Embedding-error events now include the provider's API response JSON for troubleshooting.
Credentials
- API keys and other secrets now use shared secure storage in Core, with Obsidian-native secret storage where available. This support is no longer Pro-only.
- Improved secret migration and legacy OAuth-token handling. Migration now checks that the secure-storage adapter can persist secrets before proceeding.
Notifications and navigation
- Notifications now offer View more to open event details.
- The events feed uses Show more to load new events instead of shifting the content automatically.
- Added notification help links and control over whether a notification shows a mute button.
- Invalid event values no longer crash event dialogs or their displays.
- Improved badge icons and added accessible tooltip labels.
- Plugin installation uses fewer notifications, links to release pages, and fewer unnecessary installation-state checks.
- Improved the Smart Plugins list dialog and header styling in fuzzy-search dialogs.
- Updated the Environment status-bar menu, added an Environment status option, and added buttons to the status view.
- Added a shared command for opening release notes, replacing separate per-view command registration.
- Fixed missing view icons by registering views before the workspace renders.
- Fixed hover navigation between adjacent submenus.
- Updated Obsidian-link handling to the newer protocol API.
Shared infrastructure and maintenance
- Added support for reading files as binary bytes.
- Added sharded source storage with numeric replay order, bounded append-file rotation, explicit compaction, and protection for legacy base-last commits. Rotation and compaction limits now use byte sizes instead of record counts.
- Core now handles collection-level binary vector loading and typed-array similarity calculations. Durable vector references (
file_i) are saved only after the vector data they reference. - Corrected the scope of vector-index operations and added shared retrieval of the strongest cosine-similarity matches across all embedded items in a collection.
- Standardized embedding-input preparation through shared actions, with dedicated handling for Bases, Canvas, and rendered sources.
- Updated Transformers to version 4.2.0 and removed unused model dependencies.
- Standardized menu registration, resolution, and building, and added shared registration for Command Palette and ribbon actions. Added automated checks for menu behavior.
- Improved parameter and event handling for menus, ribbon actions, Smart Plugins commands, and Environment Status View commands, with automated checks.
- Notification buttons can now use
btn_event_keyandbtn_event_payloadinstead ofbtn_callback. - Improved configuration-version handling and added automated checks for Environment creation.
- Removed an unused collection-settings component, updated shared configuration references, and simplified the internal organization of stats inspection.
- Added automated checks for exclusion rules, long source paths, and legacy filename exclusions.
- Updated to Smart Environment v3 and refreshed related version metadata.
Release publishing
- Generated release notes now include a last-updated date.
- Release uploads check for required assets and no longer create ZIP files during the upload step.
- GitHub release requests now use native fetch instead of Axios, with improved request-error handling.
- Release creation can read and reuse an existing release-notes file.
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.
v3.2.3
Use accelerated indexing with more embedding models
The accelerated index now supports embedding models that do not report their dimensions, including custom Ollama models. OpenAI embeddings also use the vector dimension you configure, so the index matches the model output you selected.
Re-imports and new embeddings now update the accelerated index in batches, reducing repeated index work as your vault changes.
See more of the index's memory footprint
Memory reporting now includes allocations used by the accelerated index in addition to loaded vectors.

Embedding Health shows source coverage and vector memory together, including the accelerated index's own allocations.
Full release notes
Indexing and model compatibility
- Batched accelerated-index updates and rebuilds after file re-imports and new embeddings.
- Source import and re-import queues now schedule block-index rebuilds.
- Fixed accelerated-index compatibility with models that do not report their embedding dimensions, including custom Ollama models.
- OpenAI embedding models now respect the configured vector dimension.
- Improved checks for whether a vector can be included in the accelerated index.
- Improved embedding initialization, unloading, and coordination with the vector index to clear old references and maintain consistent index state.
- Improved embedding saves.
Memory and exclusions
- Memory reporting includes WebAssembly allocations in addition to the loaded-vector usage reported by Core. Added access to the index's allocated buffer size.
- The file-exclusion dialog now supports pattern entry and .gitignore rules.
Shared infrastructure and maintenance
- Accelerated vector indexing and its Smart Environment v3 integration now belong to Pro. This includes sources, blocks, row-version tracking, external-vector projection, startup and shutdown, deletion maintenance, and release of JavaScript-held vectors.
- Added version-aware source and embedding management, separate in-memory and vector-index positions, and shared vector retrieval.
- Standardized source embedding-input preparation through shared actions and added Bases-specific embedding input.
- Added shared registration and invocation of Bases actions, with automated checks.
- Improved action registration and added automated checks that actions apply to the correct scope.
- Improved Environment event handling and added automated checks for Pro auto-updates.
- Added automated checks for source embedding input, vector-index behavior, vector retrieval, and embedding batches.
- Added a local model for discrepancy analysis. This is shared internal support, not a new discrepancy-analysis interface.
- Updated compatibility with Smart Environment v3.