dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
“Answers should grow where the question is asked — a single-file AI reading tool, zero dependencies, with all data kept local.”答案应该长在提问的地方 —— 单文件的 AI 阅读工具,零依赖,数据全在本地
A single-file reading tool. Select text, a Q&A panel opens right there. Follow-ups stack into a chain. When you're done, collapse them: the article is an article again, with a few faint underlined notes left behind.
One Inline.html. No dependencies. Open it and read.
https://github.com/user-attachments/assets/92cc1d20-4f16-4cf7-af0c-b06a79ef4a08
中文 · English
Desktop: download and double-click · Phone: use the right button, no download, storage stays tied to the domain
Needs a DeepSeek API key — enter it once; it stays in your browser
When you want to ask something mid-read, you have two options today:
Both ask you to do the same thing: carry your attention away from the text, then carry it back.
Inline makes a simpler assumption: the answer belongs wherever your attention already is.
In your browser, and nowhere else.
localStorage. Refresh and they're still there.localStorage too. Requests go straight from the browser to the API; there is no server in between.No account, no backend, no analytics.
The model isn't hardcoded in the logic. There are two constants at the top of the file:
const API_BASE = "https://api.deepseek.com";
const API_MODEL = "deepseek-chat";
Any service exposing an OpenAI-compatible /chat/completions endpoint works. For example:
| Service | API_BASE | API_MODEL |
|---|---|---|
| DeepSeek (default) | https://api.deepseek.com | deepseek-chat |
| Qwen (DashScope) | https://dashscope.aliyuncs.com/compatible-mode/v1 | qwen-plus |
| Kimi (Moonshot) | https://api.moonshot.cn/v1 | moonshot-v1-8k |
| Local ollama | http://localhost:11434/v1 | qwen2.5:7b ¹ |
¹ Local ollama must allow the browser first, otherwise the request is blocked by CORS (you'll see Failed to fetch, which looks like a network problem):
# macOS / Linux
OLLAMA_ORIGINS=* ollama serve
# Windows
set OLLAMA_ORIGINS=*
ollama serve
* lets any web page call your local model. Fine for personal use; shut it down afterwards.
After switching, the key field should hold that provider's key.
Two known edges:
chat/completions is used — no provider-specific parameters.Not a style choice — it follows from the entry point: this tool is meant to be downloaded, double-clicked and opened, not installed, configured and run. One extra step in that path and it stops working.
Three things follow at once:
The price is real: every capability has to be written here — range anchoring, offset serialization, markdown conversion, image pasting, persistence.
So the test for pulling anything in is two questions:
Two yeses: write it. Either no: depend on it.
And in some areas (crypto, time zones, PDF parsing) writing it myself would certainly be wrong — so we simply do not do them. Not doing it is the only dependency that never needs maintenance.
If you work inside DeepSeek Harness, a small plugin removes the "prepare the material" step too.
dsh-inline-plugin
Then just say:
Turn https://example.com/some-article into an article /inline
Agent fetches, summarizes, writes the article
Plugin converts it to a snapshot → clipboard → opens Inline
You press Ctrl+V once
The article and your key both land in place — no file picking, no re-entering the key.
Importing a pasted snapshot is Inline's own feature, independent of the plugin — any
.inline.jsoncan be copied as text and pasted in directly.
No accounts. No cloud sync. No history. No mobile app. No backend.
No PDFs either — this is inline Q&A, and there are far cleverer ways to go about it.
MIT