llmchat2knowledge (LLM chat → knowledge) is a Chrome extension (Manifest V3) that turns conversations from mainstream LLM chat web apps into structured Markdown articles. You select the turns you care about, call your own OpenAI-compatible Chat Completions API, then copy, download, or save to a local folder (e.g. an Obsidian vault) via the File System Access API.
Scope today: only Kimi (kimi.com / kimi.moonshot.cn) is implemented. Other sites will follow behind the same adapter pattern.
简体中文: README.zh-CN.md
The goal is broad support for popular chat UIs (DeepSeek, ChatGPT, Claude, Gemini, Perplexity, etc.), not a single vendor. Each site gets a small DOM adapter; shared logic handles prompting, API calls, Markdown output, and publishing.
- Shadow DOM sidebar: question list, generated article, copy / download / publish
- Service worker proxies API calls to avoid CORS
- Options page: API URL, key, model; editable prompt template; publish folder (handle in IndexedDB)
- Refreshes the list when you switch chats; scroll-to-message is tuned for Kimi’s main scroll layout
Design and implementation notes:
Planned work (not shipped yet):
- DeepSeek web chat adapter (extract threads, same sidebar flow)
- ChatGPT (
chatgpt.com) adapter - Claude (
claude.ai) adapter - Encrypted storage for user-supplied API keys (today keys live in
chrome.storage.localas plaintext, which is the usual extension trade-off; we intend to add an encryption layer suitable for local-only use)
cd chrome-extension
npm install
npm test
npm run buildLoad the folder chrome-extension/dist via Load unpacked on chrome://extensions (Developer mode on). After edits, run npm run build again and Reload the extension.
The manifest includes <all_urls> so arbitrary HTTPS API hosts work. You may narrow host_permissions in manifest.json if you only use specific providers.
This project is licensed under the MIT License — see LICENSE.