Skip to content

Official Smart Plugins site Smart Plugins are independent third-party plugins for Obsidian. Smart Connections is the flagship plugin.

Smart Chat

Use provider-attached threads, local or API models, and native thread management from one Smart Chat reference. Core and Pro capabilities are documented together, with Pro requirements labeled where they apply.

In this guide


Embed and organize AI chat threads in Obsidian

Smart Chat codeblocks keep provider conversations attached to the note they serve. The note stores readable thread references and active or done state, while desktop can render the provider interface directly inside Obsidian.


Availability and supported environments

Provider-specific codeblocks support the documented web chat providers. Smart Chat Pro also provides the universal smart-chat block. Full embedded provider interfaces require Obsidian desktop; mobile preserves saved thread references through the no-webview fallback.


Supported providers

The same note-attached thread workflow is available across the supported provider codeblocks.

Provider-specific codeblocks support:

Codeblock Provider
smart-chatgpt ChatGPT, including recognized Codex and Sora links
smart-claude Claude
smart-gemini Gemini
smart-grok Grok
smart-perplexity Perplexity
smart-deepseek DeepSeek
smart-aistudio Google AI Studio
smart-openwebui Open WebUI
smart-kimi Kimi

Smart Chat Pro also provides the universal smart-chat codeblock for supported providers in one block.


Insert a Smart Chat codeblock

Open the Command Palette and search for the provider name or Smart Chat codeblock action.

Run the insert action from the note that should own the thread. Provider-specific actions insert the matching fence; Pro can also insert the universal smart-chat fence.


Provider-specific and universal blocks

A provider-specific fence keeps one provider identity in the codeblock language. The universal Pro block stores the provider with each thread reference.

Use a provider-specific block for one provider. Use the universal block when one note may track threads from several supported providers.

Can one note track several providers?

Yes. Use several provider-specific blocks or the universal Pro smart-chat block.


Thread storage grammar

Saved state remains readable Markdown:

chat-active:: <unix_seconds> <thread_url>
chat-done:: <unix_seconds> <thread_url>

Select a saved thread

When a block contains several saved threads, use the selector to choose which record the block displays.

The selector shows the provider and active/done state where supported. Selecting a thread does not remove or reorder the Markdown records.


Start a new provider chat

A new provider session remains unsaved until the provider exposes a durable thread URL.

The New chat menu starts an unsaved provider session.

A provider page is saved only after Smart Chat recognizes a durable thread URL. Home pages, temporary routes, and unsupported routes cannot be captured automatically.

Why was a new chat not saved automatically?

The provider has not navigated to a recognized durable thread URL, or the route is unsupported.


Mark done and Mark active

Mark done changes the note-owned thread state while leaving the provider conversation intact.

Use Mark done when the selected thread no longer needs attention.

Does marking a thread done change the provider conversation?

No. It changes only the Markdown tracking state in the note.


Build context

Build context opens or reuses thread-specific Smart Context when the integration is available.

Review the selected notes or files before copying or sending that context to the provider.


Open, copy, and refresh

These controls do not change active/done state.


Grow and contain

Grow expands the embedded provider surface. Contain returns it to the normal note-width presentation.

This is a display setting; it does not change the thread record.


Build a thread dashboard with Dataview

Because state is stored as inline fields, Dataview can list active and completed thread bookmarks.

```dataview
LIST WITHOUT ID file.link
WHERE chat-active
SORT file.mtime DESC
```
```dataview
LIST WITHOUT ID file.link
WHERE chat-done
SORT file.mtime DESC
```

These queries read note-owned provider bookmarks. They do not list Smart Chat API Extension thread records.


Provider sign-in and browser data

Some providers complete sign-in more reliably through Obsidian Web Viewer.

  1. Sign in through Web Viewer.
  2. Return to the codeblock.
  3. Select Refresh.

For repeated human-verification loops, clear Web Viewer browser data only after confirming that the sign-in can be recreated. Google AI Studio may require saving the conversation before a durable URL exists.


Desktop and mobile behavior

Desktop uses Electron webview support for the full embedded provider interface.

On mobile, saved thread URLs remain useful as bookmarks or external links, but the full provider embed and automatic URL capture are unavailable.


Universal Smart Chat codeblock behavior (Pro)

The universal Pro block adds shared provider selection, stable block identity, managed provider surfaces, and cross-provider controls.

smart-chat codeblock

Smart Chat Pro adds one universal codeblock for supported provider threads.

```smart-chat
chat-id:: 002a41caaf2a4be9
chat-active:: 1767302492 https://chatgpt.com/c/example
chat-done:: 1767132305 https://claude.ai/chat/example
```

chat-id::

chat-id:: <id> gives the rendered block a stable identity. Smart Chat adds it during desktop initialization when it is missing. Do not copy the same ID into another block.

chat-active::

chat-active:: <unix_seconds> <thread_reference> tracks a saved thread that still needs attention. Text after the thread reference is preserved as a trailing annotation.

chat-done::

chat-done:: <unix_seconds> <thread_reference> tracks a completed thread. Marking a thread done changes only the note's tracking state; it does not archive or delete the provider conversation.

Does marking done change the provider conversation?

No. It changes only the Markdown tracking state.

Supported provider types

The universal block supports ChatGPT, Claude, Gemini, AI Studio, DeepSeek, Perplexity, Grok, Kimi, and configured Open WebUI instances. Saved unknown HTTP links can still be opened as generic links, but Smart Chat cannot automatically recognize their new-thread URLs.

New chat menu

Choose a provider from New chat to open an unsaved session. The thread is added to Markdown only after the provider navigates to a recognized durable thread URL.

Why was a new chat not saved?

The provider did not navigate to a recognized durable thread URL, or the page could not be captured.

Saved thread selector

The selector shows saved active and done threads with provider and recency information. When the saved list is large, done threads move into a separate submenu so active work remains easier to reach.

Thread actions

Available actions depend on the selected provider and thread state:

Embedded provider surface

A saved provider thread keeps one managed embedded surface per thread and workspace document. When the same thread is already displayed elsewhere, use Show here to move the active surface instead of loading a duplicate session.

Why does the same thread say it is shown elsewhere?

One embedded provider surface is reused for that thread. Choose Show here to move it to the current block.

Web Viewer user-agent

The codeblock menu can copy the user-agent setting from Obsidian Web Viewer to the embedded provider surface. Use it only when a provider requires the same browser identity for sign-in or compatibility.

Obsidian hotkeys inside the provider surface

Supported configured Obsidian modifier hotkeys can pass through the embedded provider page. Editing keys and provider send behavior remain protected so typing in the chat input is not hijacked.

Mobile and no-webview fallback

When embedded webviews are unavailable, the codeblock renders a static bookmark list:


Troubleshooting Smart Chat codeblocks


Chat with Obsidian notes using local and API models

Smart Chat provides a native Obsidian thread workspace for configured local and cloud chat models. Each completion can carry a reviewable Smart Context and retain the model metadata used for the request.

The native Smart Chat workspace keeps the active thread, context actions, composer, and current model status visible in one surface.


Availability and model requirements

This workflow requires Smart Chat Pro and at least one compatible chat-completion model configured through Smart Environment. Provider credentials, local model servers, and media support remain specific to the selected model path.


Open Smart Chat

The Smart Chat command opens the native thread workspace from a standard Obsidian entry point.

Open Smart Chat from its ribbon action, Command Palette entry, or assigned hotkey.

The view reopens the saved active thread when possible. If that record is unavailable, it opens the latest non-deleted thread or creates a new one.


Confirm or change the chat model

The thread status bar shows the configured chat model.

Does changing the status-bar model change an earlier response?

No. It changes the default for later responses. Completed responses retain the model metadata from their own request.


Use the thread toolbar

The toolbar can:

A changed thread name is saved when the field is committed with Enter or loses focus.


Write and send a message

The composer accepts normal text and large pasted input.


Add known notes as context

Add context opens Smart Context for the current response.

Each response keeps its own reviewed context set. A new empty response can inherit the previous completed response's context so the conversation can continue without rebuilding the same set.


Find context with Lookup

Lookup can retrieve candidate notes and add the reviewed results to the current completion context.

Lookup context uses the current question to retrieve likely notes or blocks.

Review the proposed sources and remove weak, stale, or unrelated items before sending. Lookup proposes context; it does not make the sources authoritative.


Drag notes and supported files into a thread

Drag supported Obsidian notes or files into the active thread to add them to the current response context.

If a dropped item does not appear in the context tree, add it through Add context or verify that the file type is supported.


Send intentionally without context

The no-context confirmation makes a context-free request an explicit choice.

When no context is attached, Smart Chat can offer:

Continue without context only when a general, ungrounded conversation is intentional.

Why did Smart Chat warn before sending?

The current response had no attached context. Choose Lookup, select known sources, continue intentionally without context, or cancel.


Include or exclude prior messages

Message-level controls determine which earlier exchanges participate in later requests.

Exclude an earlier exchange when it should not influence later responses.

The exchange remains visible in the saved thread. Exclusion changes only the prior-message history sent with future requests.


Custom instructions

Smart Chat supports default instructions and instructions saved for one thread.

Thread instructions take precedence in that thread. Saving the change updates the thread record.


Thread History

Thread History is the fast thread opener. It searches saved thread suggestions and displayed preview text.

The default History surface does not search every word in every message.

Can Thread History search every word in every message?

No. The default History surface searches thread suggestions and displayed previews, not complete message bodies.


Thread Manager

Use Thread Manager for deliberate maintenance:


Thread data, persistence, and sync

Provider codeblocks store thread URLs in Markdown. Smart Chat API Extension stores its conversations separately under Smart Environment data.

Relevant records can include:

Syncing .smart-env is not the recommended default unless the chosen sync method has been tested for concurrent writes and conflict recovery. Markdown codeblock links continue to sync like normal note content.

Are API threads the same as provider codeblock bookmarks?

No. Provider codeblocks store URLs and active/done fields in Markdown. API Extension threads use Smart Environment records.


Review context before sending

Review source names, blocks, origin badges, and size estimates in the current Smart Context tree. A new completion can inherit prior context, so remove stale items before sending.


Review completed responses

A completed response shows recorded model information, included context, the user message, and the assistant response. Include or exclude controls affect future history; they do not rewrite completed output.


Recover from model and completion errors

Confirm the model and provider, verify credentials or the local server, remove unsupported media, retry after correcting the cause, or switch to another configured model.


Manage Smart Chat threads in Obsidian

Smart Chat stores native model-backed conversations as thread records. Thread Manager provides the complete management surface; Chat History provides a faster selector for opening a known recent thread.

Thread Manager provides one searchable surface for opening, renaming, reviewing, and deleting saved Smart Chat threads.


Open Thread Manager

Open Chat Thread Manager from the Command Palette.

Thread Manager lists Smart Chat API Extension threads. It does not list provider URLs stored only in Markdown codeblocks.

Is Thread Manager the same as a Dataview Chat Inbox?

No. Thread Manager manages Smart Chat API Extension records. A Chat Inbox lists chat-active and chat-done fields stored in notes.


Search and filter

Search filters visible rows by thread name or key. Hidden rows are not changed or deleted.


Open a thread

Use Open to load the selected thread in Smart Chat. Open uncertain threads before renaming or deleting them.


Rename a thread inline

Rename happens inline in the row.

  1. Enter rename mode.
  2. Change the name.
  3. Save or cancel.

A saved name remains attached to that thread record.

Can I rename a thread without opening it?

Yes. Rename is inline in the manager row.


Delete one thread

Single-thread deletion requires inline confirmation.

This removes the Smart Chat API Extension thread record. It does not remove provider-thread URLs stored in Markdown codeblocks.


Select and delete visible threads

Bulk delete applies only to rows that are both visible and selected.

  1. Filter to a narrow working set.
  2. Select the intended rows.
  3. Confirm the bulk action inline.
  4. Review the remaining list.

Does bulk delete remove every thread matching the search?

No. It removes only selected visible rows after confirmation.


Review thread and message counts

The manager shows thread and completion totals for the current list. Counts support review; they do not indicate that a thread is safe to delete.


Confirmation and refresh states

Delete confirmation stays inside the manager and beside the affected row or selection. This makes the destructive scope visible before the action runs.


Use Chat History

Chat History provides a faster fuzzy selector for reopening a known thread.

Chat History is optimized for opening a saved thread from the active Smart Chat workspace. Thread Manager owns complete search, rename, counts, and confirmed cleanup.

Open History

Open Chat History from the active thread toolbar.

The default History surface lists saved, non-deleted threads.

Thread suggestions

Each suggestion identifies a saved thread and can include its name plus a recent user-message preview.

Completion search

The default History surface does not search every completion or every word in saved messages.

Open the selected thread

Press Enter on a suggestion to open that thread in Smart Chat.

Delete from History

Use Mod+Enter on a highlighted thread to begin deletion. Confirm the action before the thread record is removed.

What does Mod+Enter do in History?

It begins the confirmed deletion flow for the highlighted thread.

Search limitations

Search is designed for fast thread retrieval by the information shown in suggestions. Use Thread Manager for deliberate record maintenance.

Why can I find a thread by name but not by a phrase from the middle of the conversation?

History does not perform exhaustive full-message search.


Chat History vs Thread Manager

Use Chat History to open a saved thread quickly. Use Thread Manager to filter names or keys, rename records, inspect counts, and perform confirmed cleanup. Neither surface is exhaustive full-message search unless the shipping build explicitly enables completion suggestions.


Troubleshooting thread management

Related documentation