No description
Find a file
Logan Yang f29768c69b
feat(agent-mode): show recent chats from native harness history regardless of markdown autosave (#2591)
* feat(agent-mode): show recent chats from native harness history regardless of markdown autosave

Recent chats was built exclusively from autosaved agent__ markdown notes,
so turning Autosave Chat off emptied history even though every harness
still held a resumable session. Decouple the two concerns:

- New plugin-local AgentSessionIndex (.obsidian/plugins/<id>/
  agent-chat-index.json): write-through record of every session with
  user-visible messages (backendId, sessionId, title, createdAt,
  lastAccessedAt), independent of the autosaveChat setting. Works for
  all backends including Claude Code, whose SDK has no listSessions.
- getChatHistoryItems() merges markdown items with index entries,
  de-duplicated on backendId + sessionId (frontmatter already stores
  the session id); merged rows take the fresher lastAccessedAt.
- Opportunistic listSessions sweep of already-running backends
  (never spawns one), filtered to the vault cwd client-side, excluding
  the preloader probe session and untitled/placeholder sessions,
  bounded by a 1.5s timeout.
- Native-only rows get a copilot-agent-session:// id; selecting one
  resumes through the existing loadSession/resumeSession path. Rename
  updates the index (and the live session label); delete tombstones
  the key so the entry can't resurrect from a native sweep, without
  deleting the harness's own session store. Deleting a markdown chat
  tombstones its native twin too.
- Open-source-file on a native row explains there is no note instead
  of erroring.

Closes #151

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: keep native chat id helpers off the mobile load path; adapter frontmatter fallback for hidden-folder dedup

Two fixes from CI + review:

- main.ts statically value-imported @/agentMode for the native chat id
  helpers, which the mobile-load smoke test correctly rejects (any Agent
  Mode value import drags Node-only modules into the mobile bundle).
  Move the dependency-free id helpers to @/utils/nativeChatId, which
  both main.ts and agentMode/session may import.

- getChatHistoryItems read backendId/sessionId from the metadata cache
  only, so chats saved in hidden folders (never indexed by the cache)
  could not merge with their native twins and showed up twice. Reuse
  readSessionRefFromFile's adapter frontmatter fallback per file, with
  a regression test covering the hidden-folder case.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: sweep warm preloader probes so native history shows on first Agent Home open

The listSessions sweep only queried manager-owned backends, which exist
only after a chat starts — so a fresh Agent Home open listed no native
history at all. The preloader's warm probe subprocesses are already
running for every installed backend at plugin load; sweep those too
(read-only RPC, entries not consumed), so codex/opencode session stores
surface immediately without paying any extra spawn.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: user renames survive native sweeps; match live sessions by backend+session pair

Addresses two Codex review findings:

- mergeDiscoveredSessions preferred the discovered (agent-store) title,
  so a plugin-side rename of a native entry was clobbered by the next
  listSessions sweep. Track titleSource on index entries (mirroring
  AgentSession.labelSource): setTitle marks user, the write-through
  path rides the live label's source, and discovered merges never
  overwrite a user title.

- loadNativeSessionFromHistory matched live sessions by sessionId
  alone; a cross-backend id collision would focus the wrong tab.
  Require the (backendId, sessionId) pair.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: guard native rename's live-session lookup by backend+session pair

Same cross-backend id-collision class as the loadNativeSessionFromHistory
fix, at the updateChatTitle native branch: getSessionByBackendId matches
by session id alone, so renaming a native entry could setLabel the wrong
backend's live tab (and its index entry via the label autosave). Require
live.backendId === native.backendId before applying the label. Regression
test added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: derive native chat title from first user message when no agent title exists

Claude Code's SDK exposes no session-title API, so CC native history rows
all read 'Untitled chat'. Fall back to a title derived from the first user
message (mirroring the markdown autosave filename/topic), recorded as an
overridable agent-sourced title so an opencode/codex summarizer title still
wins later and a user rename always wins. Makes autosave-off history
consistent with autosave-on, where Claude chats already get a readable
title from the first message.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(agent-mode): make Recent Chats a searchable management list; drop redundant New chat row

The landing Recent Chats section was open-on-click preview rows with all
management hidden behind a 'View all' popover, plus a 'New chat' row that
duplicated what the landing already is.

- Recent Chats is now a searchable, scrollable list whose rows manage chats
  in place: open, rename (inline), delete (two-step confirm), and open the
  source note. Same affordances as the chat history popover, no separate
  view-all step.
- Go-to-file is conditional: shown only for markdown-saved chats; native
  (autosave-off) sessions have no note, so the action is hidden for them
  (gated on isNativeChatId).
- Removed the 'New chat' row — the home surface is already a new chat, and
  the tab strip '+' / in-tab New Chat cover spawning a tab.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(agent-mode): rebuild Claude native chat transcript from on-disk session jsonl

Clicking a native (autosave-off) Claude chat in recent chats resumed the
session but showed nothing: the Claude SDK has no transcript API and
resumeSession returns no prior messages, so the chat opened empty and the
UI stayed on the landing — looking like the click did nothing.

Read the CLI's session record at
<config>/projects/<encoded-cwd>/<sessionId>.jsonl (cwd encoded with every
non-alphanumeric char -> '-', honoring CLAUDE_CONFIG_DIR) and parse it into
display messages: user prompts (stripping the <user-message> context
envelope) and assistant prose, skipping tool calls, tool results, meta,
sidechain, and summary records. Wired via an optional
BackendProcess.readPersistedTranscript that the manager calls on native
resume when the session came back empty; ACP backends replay via
loadSession and omit it. Best-effort — a missing/GC'd file degrades to the
resumed-but-blank session rather than failing the open.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agent-mode): render loaded transcript immediately and reuse the empty landing tab

Two history-open bugs:

1. Opening a chat showed a blank tab until you switched tabs and back. The
   manager mutated the store via store.loadMessages, which fires no change
   notification, so the runtime hook (subscribed to the session) only
   re-read on a backend-identity change — i.e. a tab switch. The native
   Claude path made it always reproduce: the await on the on-disk transcript
   read falls between activating the tab and loading messages. Add
   AgentSession.loadDisplayMessages (loadMessages + notifyMessages) and use it
   on both the markdown and native resume paths.

2. Opening a chat always spawned a new tab, even from an empty landing tab.
   absorbIntoEmptyActiveTab now gives the loaded session the empty active
   tab's strip position and closes the empty one, so opening a chat reuses
   the current tab when it has no conversation. A tab with real messages is
   never clobbered (opens a new tab in that case).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agent-mode): three native-history review findings (title source, delete race, claude config dir)

All three are legit P2s from Codex review:

- Native resume reapplied the index title via setLabel(), marking it
  user-sourced and freezing future agent title refreshes for resumed
  opencode/codex sessions. Add AgentSession.restoreLabel(label, source) and
  apply the index title with its recorded titleSource — user renames stay
  sticky, agent/derived titles stay refreshable. Tested both directions.

- Deleting a chat within the ~500ms index-touch debounce window let the
  already-queued flushIndexTouch re-add it after the tombstone was written
  (recordSession clears the tombstone), resurrecting it in Recent Chats.
  cancelPendingIndexTouch clears the pre-delete timer for the matching live
  session before tombstoning; post-delete activity still re-indexes.

- readPersistedTranscript resolved CLAUDE_CONFIG_DIR from process.env only,
  so users who set a custom config dir via Agent Mode env overrides got a
  blank restored chat. Resolve it with the same precedence the SDK is
  spawned with (env overrides > managed env > process.env > ~/.claude).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(agent-mode): match live sessions by backend+session id in one lookup

Codex follow-up: the native open/rename paths found the first live session by
sessionId and checked backendId after, so an (effectively impossible, UUID)
cross-backend id collision where the wrong-backend tab was created first would
hide the correct already-open tab. Add findLiveSession(backendId, sessionId)
that matches both at once and excludes closed sessions; use it in both
loadNativeSessionFromHistory and the updateChatTitle native branch. Existing
collision tests stay green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* style(agent-mode): inset the Recent Chats search box from the panel edges

Wrap the search bar in a small (p-1) padded container so it isn't flush
against the section's top/side edges.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agent-mode): adapter frontmatter fallback when routing a clicked chat

loadChatById decided agent-vs-legacy from metadataCache frontmatter only.
A hidden-folder agent note (dot-folder save location) isn't indexed by the
cache, so its mode: agent was invisible and the click routed to the legacy
Copilot chat loader instead of agent resume — even though Recent Chats now
surfaces such notes via the merge's adapter fallback. Read frontmatter via
the adapter when the cache misses before routing. Only runs on a cache miss,
so the common (visible folder) path is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agent-mode): keep Recent Chats row actions reachable by keyboard

The row's action cluster (open-source/rename/delete) was tw-hidden until
group-hover, so keyboard users could focus the row and open the chat but
never reach the management buttons — they sit out of the tab order while
display:none. Reveal the cluster on group-focus-within too (and hide the
relative time then), so focusing the row exposes the actions and Tab can
move into them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agent-mode): row Enter/Space opens only when the row itself is focused

After the focus-within a11y fix made the action buttons keyboard-focusable,
pressing Enter/Space on a focused rename/delete/open-source button bubbled
its keydown to the row handler, which also called onOpen — so managing a
chat by keyboard would additionally open/resume it (the buttons stop click
propagation, not keydown). Guard the row handler to act only when the row is
the keydown target.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 21:35:46 -07:00
.claude introduce model migration script 2026-05-28 16:03:46 -07:00
.cursor/rules Improve the regex for composer codeblock (#1778) 2025-09-03 13:51:34 -07:00
.github fix(mobile): guard Agent Mode off the mobile load path (#2577) 2026-06-06 21:56:58 -07:00
.husky chore(deps): swap unmaintained/legacy deps per e18e module-replacements (#2447) 2026-05-14 01:12:52 -07:00
__mocks__ feat(agent-mode): introduce Agent Mode feature 2026-05-20 19:05:41 -07:00
designdocs feat(agent-home): Agent Home PR1 — landing homepage + read-only Projects/Recent Chats (frontend-only) (#2545) 2026-06-01 15:45:48 -07:00
docs feat(chat): power legacy chat from the model-management chat backend (#2556) 2026-06-06 14:52:50 -07:00
images Reduce images size in half in README without losing quality (#1966) 2025-10-30 16:58:32 -07:00
scripts fix(mobile): keep Agent Mode off the emulated-mobile load path (#2587) 2026-06-10 14:18:30 +08:00
src feat(agent-mode): show recent chats from native harness history regardless of markdown autosave (#2591) 2026-06-10 21:35:46 -07:00
typings feat(agent-mode): introduce Agent Mode feature 2026-05-20 19:05:41 -07:00
.editorconfig Create vector store per vault (#348) 2024-03-08 21:50:45 -08:00
.gitignore Add BYOK settings - agent enablement 2026-05-28 16:02:47 -07:00
.npmrc Initial commit 2023-03-30 17:15:32 -07:00
.prettierrc Refactor Settings, add formatting (#518) 2024-08-20 21:53:09 -07:00
AGENTS.md Add BYOK settings - agent enablement 2026-05-28 16:02:47 -07:00
CLAUDE.md fix(agent-mode): surface missing provider credentials (#2529) 2026-05-29 23:39:18 -07:00
components.json Add tw prefix to tailwind (#1497) 2025-05-31 22:30:54 -07:00
CONTRIBUTING.md Add npm run test:vault for fast worktree-to-vault plugin reload (#2477) 2026-05-19 12:05:49 -07:00
esbuild.config.mjs fix(mobile): guard Agent Mode off the mobile load path (#2577) 2026-06-06 21:56:58 -07:00
eslint.config.mjs fix(mobile): keep Agent Mode off the emulated-mobile load path (#2587) 2026-06-10 14:18:30 +08:00
jest.config.js feat(agent-mode): introduce Agent Mode feature 2026-05-20 19:05:41 -07:00
jest.setup.js chore(lint): enable obsidianmd/no-global-this and fix violations (#2413) 2026-05-13 01:14:47 -07:00
knip.json chore(deps): remove unused deps and dead code to shrink bundle (#2460) 2026-05-14 22:25:59 -07:00
LICENSE Add license 2023-03-30 23:52:55 -07:00
local_copilot.md docs: update local copilot instructions for macOS (#1077) 2025-01-22 14:51:34 -08:00
manifest.json release: v3.3.3 (#2494) 2026-05-20 18:27:22 -07:00
nodeModuleShim.mjs feat(agent-mode): introduce Agent Mode feature 2026-05-20 19:05:41 -07:00
package-lock.json feat(agent-mode): show recent chats from native harness history regardless of markdown autosave (#2591) 2026-06-10 21:35:46 -07:00
package.json fix(mobile): guard Agent Mode off the mobile load path (#2577) 2026-06-06 21:56:58 -07:00
README.md feat(relevant-notes): dedicated pane with redesigned populated view (#2559) 2026-06-05 06:54:12 +08:00
RELEASES.md release: v3.3.3 (#2494) 2026-05-20 18:27:22 -07:00
tailwind.config.js feat(agent-home): segmented-tab shelf, aligned rows, top-anchored composer (#2550) 2026-06-06 13:01:24 -07:00
tsconfig.json Merge 3.1.0 preview (#1906) 2025-10-10 21:38:50 -07:00
version-bump.mjs chore(release): make prerelease tooling stop poisoning master's manifest.json (#2429) 2026-05-13 15:53:48 -07:00
versions.json release: v3.3.3 (#2494) 2026-05-20 18:27:22 -07:00
wasmPlugin.mjs Format code (#521) 2024-08-21 15:16:22 -07:00

Copilot for Obsidian

The Ultimate AI Assistant for Your Second Brain

GitHub release (latest SemVer) Obsidian Downloads

Documentation | Youtube | Report Bug | Request Feature

Reward Banner

The What

Copilot for Obsidian is your invault AI assistant with chat-based vault search, web and YouTube support, powerful context processing, and ever-expanding agentic capabilities within Obsidian's highly customizable workspace - all while keeping your data under your control.

The Why

Today's AI giants want you trapped: your data on their servers, prompts locked to their models, and switching costs that keep you paying. When they change pricing, shut down features, or terminate your account, you lose everything you built.

We are building the opposite. Our goal is to create a portable agentic experience with no provider lock-in. Data is always yours. Use whatever LLM you like. Imagine that a brand new model drops, you run it on your own hardware, and it already knows about you (long-term memory), knows how to run the same commands and tools you have defined over time (as just markdown files), and becomes the thought partner and assistant that you own. This is AI that grows with you, not a subscription you're hostage to.

This is the future we believe in. If you share this vision, please support this project!

Key Features

  • 🔒 Your data is 100% yours: Local search and storage, and full control of your data if you use self-hosted models.
  • 🧠 Bring Your Own Model: Tap any OpenAI-compatible or local model to uncover insights, spark connections, and create content.
  • 🖼️ Multimedia understanding: Drop in webpages, YouTube videos, images, PDFs, EPUBS, or real-time web search for quick insights.
  • 🔍 Smart Vault Search: Search your vault with chat, no setup required. Embeddings are optional. Copilot delivers results right away.
  • ✍️ Composer and Quick Commands: Interact with your writing with chat, apply changes with 1 click.
  • 🗂️ Project Mode: Create AI-ready context based on folders and tags. Think NotebookLM but inside your vault!
  • 🤖 Agent Mode (Plus): Unlock an autonomous agent with built-in tool calling. No commands needed. Copilot automatically triggers vault, web searches or any other relevant tool when relevant.

Copilot's Agent can call the proper tools on its own upon your request.

Product UI screenshot

Table of Contents

Copilot V3 is a New Era 🔥

After months of hard work, we have revamped the codebase and adopted a new paradigm for our agentic infrastructure. It opens the door for easier addition of agentic tools (MCP support coming). We will provide a new version of the documentation soon. Here is a couple of new things that you cannot miss!

  • FOR ALL USERS: You can do vault search out-of-the-box without building an index first (Indexing is still available but optional behind the "Semantic Search" toggle in QA settings).
  • FOR FREE USERS: Image support and chat context menu are available to all users starting from v3.0.0!
  • FOR PLUS USERS: Autonomous agent is available with vault search, web search, youtube, composer and soon a lot other tools! Long-term memory is also a tool the agent can use by itself starting from 3.1.0!

Read the Changelog.

Why People Love It ❤️

  • "Copilot is the missing link that turns Obsidian into a true second brain. I use it to draft investment memos with text, code, and visuals—all in one place. Its the first tool that truly unifies how I search, process, organize, and retrieve knowledge without ever leaving Obsidian. With AI-powered search, organization, and reasoning built into my notes, it unlocks insights Id otherwise miss. My workflow is faster, deeper, and more connected than ever—I cant imagine working without it." - @jasonzhangb, Investor & Research Analyst
  • "Since discovering Copilot, my writing process has been completely transformed. Conversing with my own articles and thoughts is the most refreshing experience Ive had in decades.” - Mat QV, Writer
  • "Copilot has transformed our family—not just as a productivity assistant, but as a therapist. I introduced it to my nontechnical wife, Mania, who was stressed about our daughters upcoming exam; within an hour, she gained clarity on her mindset and next steps, finding calm and confidence." - @screenfluent, A Loving Husband

Get Started

Install Obsidian Copilot

  1. Open Obsidian → Settings → Community plugins.
  2. Turn off Safe mode (if enabled).
  3. Click Browse, search for “Copilot for Obsidian”.
  4. Click Install, then Enable.

Set API Keys

Free User

  1. Go to Obsidian → Settings → Copilot → Basic and click Set Keys.
  2. Choose your AI provider(s) (e.g., OpenRouter, Gemini, OpenAI, Anthropic, Cohere) and paste your API key(s). OpenRouter is recommended.

Copilot Plus/Believer

  1. Copy your license key at your dashboard. Dont forget to join our wonderful Discord community!
  2. Go to Obsidian → Settings → Copilot → Basic and paste the key into in the Copilot Plus card.

Usage

Free User

Chat Mode: reference notes and discuss ideas with Copilot

Use @ to add context and chat with your note.

Chat Mode

Ask Copilot:

Summarize Q3 Retrospective and identify the top 3 action items for Q4 based on the notes in {01-Projects}.

Chat Mode

Vault QA Mode: chat with your entire vault

Ask Copilot:

What are the recurring themes in my research regarding the intersection of AI and SaaS?

Vault Mode

Copilot's Command Palette

Copilot's Command Palette puts powerful AI capabilities at your fingertips. Access all commands in chat window via / or via right-click menu on selected text.

Add selection to chat context

Select text and add it to context. Recommend shortcut: ctrl/cmd + L

Add Selection to Context

Quick Command

Select text and apply action without opening chat. Recommend shortcut: ctrl/cmd + K

Quick Command

Edit and Apply with One Click

Select text and edit with one RIGHT click.

One-Click Commands

Create your Command

Create commands and workflows in Settings → Copilot → Command → Add Cmd.

Create Command

Command Palette in Chat

Type / to use Command Palette in chat window.

Prompt Palette

Open it from the command palette (Open Relevant Notes) to get its own pane that surfaces related content and links for whatever note you're viewing.

Use it to quickly reference past research, ideas, or decisions—no need to search or switch tabs.

Relevant Notes

Copilot Plus/Believer

Copilot Plus brings powerful AI agentic capabilities, context-aware actions and seamless tool integration—built to elevate your knowledge work in Obsidian.

Get Precision Insights From a Specific Time Window

In agent mode, ask copilot:

What did I do last week?

Time-Based Queries

Agent Mode: Autonomous Tool Calling

Copilot's agent automatically calls the right tools—no manual commands needed. Just ask, and it searches the web, queries your vault, and combines insights seamlessly.

Ask Copilot in agent mode:

Research web and my vault and draft a note on AI SaaS onboarding best practices.

Agent Mode

Understand Images in Your Notes

Copilot can analyze images embedded in your notes—from wireframes and diagrams to screenshots and photos. Get detailed feedback, suggestions, and insights based on visual content.

Ask Copilot to analyze your wireframes:

Analyze the wireframe in UX Design - Mobile App Wireframes and suggest improvements for the navigation flow.

Image Understanding

One Prompt, Every Source—Instant Summaries from PDFs, Videos, and Web

In agent mode, ask Copilot

*Compare the information about [Agent Memory] from this youtube video: [URL], this PDF [file], and @web[search results]. Start with your

 conclusion in bullet points in your response*

One Prompt, Every Source

Need Help?

  • Check the documentation for setup guides, how-tos, and advanced features.
  • Watch Youtube for walkthroughs.
  • If you're experiencing a bug or have a feature idea, please follow the steps below to help us help you faster:
    • 🐛 Bug Report Checklist
      • ☑️Use the bug report template when reporting an issue
      • ☑️Enable Debug Mode in Copilot Settings → Advanced for more detailed logs
      • ☑️Open the dev console to collect error messages:
        • Mac: Cmd + Option + I
        • Windows: Ctrl + Shift + I
      • ☑️Turn off all other plugins, keeping only Copilot enabled
      • ☑️Attach relevant console logs to your report
      • ☑️Submit your bug report here
    • 💡 Feature Request Checklist
      • ☑️Use the feature request template for requesting a new feature
      • ☑️Clearly describe the feature, why it matters, and how it would help
      • ☑️Submit your feature request here

FAQ

Why isnt Vault search finding my notes?

If you're using the Vault QA mode (or the tool @vault in Plus), try the following:

  • Ensure you have a working embedding model from your AI model's provider (e.g. OpenAI). Watch this video: AI Model Setup (API Key)
  • Ensure your Copilot indexing is up-to-date. Watch this video: Vault Mode
  • If issues persist, run Force Re-Index or use List Indexed Files from the Command Palette to inspect what's included in the index.
  • ⚠️ Dont switch embedding models after indexing—it can break the results.
Why is my AI model returning error code429: Insufficient Quota?

Most likely this is happening because you havent configured billing with your chosen model provider—or youve hit your monthly quota. For example, OpenAI typically caps individual accounts at $120/month. To resolve:

  • ▶️ Watch the “AI Model Setup” video: AI Model Setup (API Key)
  • 🔍 Verify your billing settings in your OpenAI dashboard
  • 💳 Add a payment method if one isnt already on file
  • 📊 Check your usage dashboard for any quota or limit warnings

If youre using a different provider, please refer to their documentation and billing policies for the equivalent steps.

Why am I getting a token limit error?

Please refer to your model providers documentation for the context window size.

⚠️ If you set a large max token limit in your Copilot settings, you may encounter this error.

  • Max tokens refers to completion tokens, not input tokens.
  • A higher output token limit means less room for input!

🧠 Behind-the-scenes prompts for Copilot commands also consume tokens, so:

  • Keep your message length short
  • Set a reasonable max token value to avoid hitting the cap

💡 For QA with unlimited context, switch to the Vault QA mode in the dropdown (Copilot v2.1.0+ required).

🙏 Thank You

If you share the vision of building the most powerful AI agent for our second brain, consider sponsoring this project or buying me a coffee. Help spread the word by sharing Copilot for Obsidian on Twitter/X, Reddit, or your favorite platform!

BuyMeACoffee

Acknowledgments

Special thanks to our top sponsors: @mikelaaron, @pedramamini, @Arlorean, @dashinja, @azagore, @MTGMAD, @gpythomas, @emaynard, @scmarinelli, @borthwick, @adamhill, @gluecode, @rusi, @timgrote, @JiaruiYu-Consilium, @ddocta, @AMOz1, @chchwy, @pborenstein, @GitTom, @kazukgw, @mjluser1, @joesfer, @rwaal, @turnoutnow-harpreet, @dreznicek, @xrise-informatik, @jeremygentles, @ZhengRui, @bfoujols, @jsmith0475, @pagiaddlemon, @sebbyyyywebbyyy, @royschwartz2, @vikram11, @amiable-dev, @khalidhalim, @DrJsPBs, @chishaku, @Andrea18500, @shayonpal, @rhm2k, @snorcup, @JohnBub, @obstinatelark, @jonashaefele, @vishnu2kmohan

Copilot Plus Disclosure

Copilot Plus is a premium product of Brevilabs LLC and it is not affiliated with Obsidian. It offers a powerful agentic AI integration into Obsidian. Please check out our website obsidiancopilot.com for more details!

  • An account and payment are required for full access.
  • Copilot Plus requires network use to facilitate the AI agent.
  • Privacy & Data Handling:
    • Free tier: Your messages and notes are sent only to your configured LLM provider (OpenAI, Anthropic, Google, etc.). Nothing goes to Brevilabs servers.
    • Plus tier: Messages go to your configured LLM provider. File conversions (PDF, DOCX, EPUB, images, etc.) are processed by Brevilabs servers only when you explicitly trigger these features via @ commands.
    • Processing vs. Retention: We process your data to deliver the feature you requested, then discard it. No message content, file uploads, or documents are retained on our servers after processing.
    • User ID: A randomly generated UUID is sent with Plus API requests for service delivery (license abuse prevention, rate limiting) but is not used for user tracking, profiling, or analytics.
  • Please see the privacy policy on the website for more details.
  • The frontend code of Copilot plugin is fully open-source. However, the backend code facilitating the AI agents is close-sourced and proprietary.
  • We offer a full refund if you are not satisfied with the product within 14 days of your purchase, no questions asked.

Authors

Brevilabs Team | Email: logan@brevilabs.com | X/Twitter: @logancyang