WebLLMate
pendingby Lumos
Embed AI chat Web Homepages.
Obsidian WebLLMate
Embed AI chat Web Homepages in Obsidian.
Introduction β¨
Select text in your notes or PDFs, automatically send it to the LLM web panel in the sidebar to start a conversation, intelligently save responses to Wiki notes, and create bidirectional reference links in the original text.

Why I built this: While reading papers and notes, I frequently encountered unfamiliar terms. My previous tedious workflow was:
- Copy the text;
- Open KIMI or similar sites to ask questions;
- Manually copy the answer back to my notes.
This repetitive process was exhausting, so I automated the entire workflow into this plugin.
Key Features π―
-
β‘ Quick Query: One-click queries on selected text via hotkeys, context menu, or toolbar button
-
π WIKI References: Auto-generates WIKI notes with bidirectional reference links at the highlighted text after receiving answers
-
π Traceable Links: Automatically adds the conversation URL to the WIKI for easy source tracing
-
π History Search: Quickly search through conversation history
-
π Multi-Platform Support: Deeply integrated with
KIMI,Qwen,YuanBao,ChatGPTand more -
π PDF++ Enhancement: Highly recommended to use with PDF++ for an enhanced experience
Quick Query β‘

WIKI References π

History Search π

Traceable Links π

Multi-Platform Support π

PDF++ Enhancement πβ¨
Works with PDF++ to highlight selected text and create bidirectional PDF references

Additional Notes π‘
Plugin Highlights:
-
π° Zero Cost:
All platforms offer free tiers -
π¨ Beautiful UI:
All platforms have well-designed interfaces -
π Cross-Platform:
Chat history syncs across devices
β οΈ Note: This plugin is designed for light LLM usage. For heavy usage, direct API integration is recommended.
RoadMap πΊοΈ
-
Support automatic image/file upload for multimodal conversations (multimodal models excel at formula recognition)
-
Build application framework (abstract the workflow as LLM API to implement useful capabilities such as Function Call)
-
......
Adapter Development π§
To develop a new adapter, implement the WebLLMAdapter interface from src/types.ts. Inheriting from base classes in src/adapters/bases/ is recommended.
The base class provides an executor: WebExecutor property with a chainable API for convenient DOM manipulation.
Example π°:
const html = await this.executor
.waitFor(selector1) // Wait for element to appear
.queryAll(selector2, global=true) // Query all elements globally
.at(-1) // Get the last element
.query(selector3) // Query within the element
.html() // Get innerHTML
.done(); // Complete script building and execute
Each chained call doesn't execute immediately but builds a script that runs when
done()is called.
Seesrc/utils/webviewer/WebExecutor.tsfor details.
Support the Project π
If this project helps you, consider sponsoring:
-
Afdian: http://afdian.com/a/lumosmoon
-
UniFans: https://app.unifans.io/c/lumosmoon
Acknowledgments π
Thanks to KIMI, Tongyi Qianwen, Tencent Yuanbao, ChatGPT and other platforms for their excellent services. This plugin is built upon their web interfaces.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.