TeiNam188 downloadsAgentic LLM sidebar with four backends (AWS Bedrock, Google Gemini, OpenAI, Ollama). Includes chat, Graph RAG vault search, Second Brain layer, to-do management, web clipper, and MCP server integration.
This documentation describes 0.7.11. See the changelog for version history.
An AI assistant sidebar plugin for Obsidian with multi-provider backend support — AWS Bedrock, Google Gemini, OpenAI, and Ollama.
Note on command names: command palette entries, notices, the status bar, and tool results follow the UI language you pick in settings (English, 한국어, 日本語). Obsidian caches the palette at load time, so restart the app after switching languages to see the new names.
=, !=, >, >=, <, <=, and ~ (substring). Dot notation reaches nested keys, so project.status = active works. Invalid filters are reported rather than silently dropped, so a bad condition never masquerades as a whole-vault search.txt, .csv, .json, and .html files in your vault are indexed and searchable alongside notes, not just read once and discarded.base file with four views (decision ledger, open questions, outdated knowledge, review queue) from your vault data. Files you wrote yourself are never overwritten#heading anchors are checked against the index; unresolved citations are flagged under the answerobsidian-markdown, obsidian-bases, json-canvas, korean-writing, business-english-writing, second-brainRequires Obsidian 1.7.2 or later, on desktop.
Obsidian 1.13+ settings search can find the settings shown for the current backend. Earlier Obsidian versions retain the settings screen.
https://github.com/teinam/obsidian-agent-llmsmain.js, styles.css, manifest.json from the latest Release.obsidian/plugins/agent-llms/Version 0.4.0 changes the plugin ID from ai-assistant to agent-llms. The old ID was already claimed by an unrelated plugin in Obsidian's community plugin registry (qgrail/obsidian-ai-assistant), so Obsidian's updater treated this plugin's folder as that one and overwrote it. Nobody else has registered the new ID.
data.json), vault index, chat history, sessions, MCP config, and credentials are automatically copied on first launch. Your backend choice, models, region, Second Brain settings, and custom skills are all preserved. The old files remain in place, so rolling back to a previous version works seamlessly..obsidian/plugins/ai-assistant/ — if the overwriting update already ran, that folder holds an unrelated plugin's code rather than this one. The old data files (.ai-assistant-*.json, .bedrock-assistant-*.json) are no longer used either; you may delete them manually if vault size is a concern. The index file can be tens of MB due to embeddings.If you were using the kiro-edition (Assistant Kiro), the same migration applies. That edition was merged into main in 0.3.0, and .assistant-kiro-*.json data is also migrated automatically.
Settings → Agent LLMs → AI Backend:
The sidebar icon, model list, and branding update dynamically when you switch.
Backend support policy: This plugin relies on embedding APIs for Graph RAG vault search, so only providers with embedding endpoints are supported. The Anthropic direct API is excluded because it offers no embedding endpoint — use the Bedrock backend to access Claude models.
Bedrock: Enter a Bedrock API key (AWS Console → Bedrock → API keys) and set the AWS Region. The plugin does not refresh the key automatically; replace it when it expires.
Key issuance, model access, and using multiple machines: Bedrock setup guide
AWS access key and
~/.awsprofile (including SSO) authentication were removed in 0.3.0. This backend uses the Bedrock API key entered in settings.
Required IAM permissions:
bedrock:InvokeModelWithResponseStreambedrock:InvokeModelbedrock:ListFoundationModelsbedrock:ListInferenceProfilesbedrock:CallWithBearerTokenGemini: Enter your API key from Google AI Studio.
OpenAI: Enter your API key. To use an OpenAI-compatible endpoint, set the base URL including /v1; leave it empty for the official API.
Ollama: Enter the server base URL, or leave it empty to use http://localhost:11434. No API key is needed.
Key storage: Successfully saved keys are encrypted with the OS keychain and excluded from vault sync. Configure each device separately. Legacy keys in
data.jsonare removed only after local storage succeeds; if saving fails, resolve the issue and save again before restarting.
Click the ribbon icon, or run the command Open assistant from the command palette.
Click 🔍 in the chat header to index notes for semantic search, or run Index vault. Indexing is required for Graph RAG search and for the Second Brain tools that search the vault. emerge needs the index too, because it enumerates index entries. architect and update_index read the vault file list directly and work without an index.
Type a message in the input area and press Enter. The AI responds in real-time streaming. Attach notes for context using the toolbar buttons:
The web search toggle (globe icon) in the input toolbar only turns on if a search MCP (fetch, exa, or brave) is configured, or if you are on the Gemini backend, which has native Google Search grounding. Otherwise clicking it shows a notice and the toggle stays off.
Settings → Agent LLMs → Generation Settings → Reasoning Effort sets how much reasoning the model does.
Allowed values depend on the selected provider and model (for example, Anthropic models on Bedrock accept xhigh and max; Gemini Pro models accept only low and high). The setting is only shown for models that support reasoning effort, and requests to models that do not support it fall back to the provider's default sampling behavior. If you switch to a model that does not allow your saved value, it is clamped to the nearest allowed level.
Notes are split into chunks and embedded, then a search walks outlinks and backlinks
from the best matches to pull in related neighbours. Start indexing from the search icon
in the sidebar header, or the Index vault command. Edited files are re-indexed automatically.
Details: Graph RAG & Second Brain
A layer that creates and maintains wiki notes grounded in your existing notes. It is off by default — enable it explicitly under Settings → Second Brain.
<!-- @generated:KEY --> markers, so regenerating keeps any notes you wrote yourself in the same file.Details: Graph RAG & Second Brain
Click the globe icon (🌐) in the action toolbar above the chat input → enter a URL. The page is fetched, translated (if needed), and summarized as a markdown note.
The generated frontmatter has four fields: source (the URL), created (the date), type: web-clip, and tags: [web-clip].
{{date}} / {{prevDate}} variables01. Projects, 02. Areas, 03. Resources, 04. ArchivesSettings → MCP Servers → Edit Config:
{
"mcpServers": {
"fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/fetch"]
}
}
}
Both uvx (Python) and docker are supported.
Declare API keys, proxies, DOCKER_HOST, and other server-specific values in that server's env; the full parent environment is no longer inherited. These values are stored in the vault's .obsidian/plugins/agent-llms/mcp.json, so manage that file's sync scope when it contains secrets. This is separate from local encrypted storage of AI backend keys.
Enable Confirm note changes and MCP tools to review the tool name and input before every MCP call (off by default). Stop all also cancels servers that are still initializing.
This plugin makes network requests to the following external services:
bedrock-runtime.us-east-1.amazonaws.com).generativelanguage.googleapis.com for chat, embedding, and model listing.https://api.openai.com/v1 for chat, embedding, and model listing, or to the OpenAI-compatible base URL you configure.http://localhost:11434), which is local unless you point it elsewhere.cdn.buymeacoffee.com.No data is sent to any third-party analytics or tracking services.
These capabilities support the features below. MCP servers have their own access privileges.
child_process.spawn) — Saved MCP commands run on startup or reconnection with shell: false. The plugin does not insert a shell, but it does not sandbox the command or scripts supplied as arguments. No server configuration means no server process. A direct child that remains alive three seconds after stopping receives a force-kill signal.fs) — AI backend keys are encrypted in agent-llms-credentials.json under Electron's userData directory. A complete temporary file with mode 0600 replaces the destination; legacy credential files are copied within the same directory. Encryption/write failures preserve the previous file and show a notice. Legacy keys in data.json are removed only after local storage succeeds. Newly entered keys remain in memory if saving fails; resolve the issue and save again before restarting. MCP executable lookup uses Node's spawn and PATH.PATH, HOME, USERPROFILE, APPDATA, LOCALAPPDATA, SYSTEMROOT, SYSTEMDRIVE, COMSPEC, PATHEXT, TMPDIR, TMP, TEMP, LANG, LC_ALL, and LC_CTYPE are inherited by default. Per-server env overrides are then applied. Other tokens and runtime options are not passed automatically. A server controls how it uses or transmits values explicitly provided to it.See the 0.7.11 review record (Korean) for changes and validation scope.
Release assets from 0.7.6 onward carry GitHub artifact attestations, so you can confirm they were built from this repository:
gh attestation verify main.js --repo TeiNam/obsidian-agent-llms
This plugin is desktop-only (isDesktopOnly: true) because MCP server integration relies on spawning local child processes via stdio, which is not available on mobile platforms.