- Accueil
- Plugins
- Outils et capacités
- dsh-zhihu
dsh-zhihu
shijiezhiai/dsh-zhihu
Zhihu inside DeepSeek Harness: hot, recommendation and follow lanes plus in-site search, formatted question and column bodies, a per-item discussion that runs as a real Session, and one-key export to Obsidian through its REST API. Reads with your own signed-in cookie, kept in the credentials service.
Installer
dsh plugin --profile web add github:shijiezhiai/dsh-zhihuREADME
@deepseek-ai/dsh-zhihu-plugin
Zhihu inside DeepSeek Harness: hot and recommendation feeds, question and column reading, in-site search, a right-sidebar panel, an in-panel discussion that runs as a real Session, and one-key capture into Obsidian. Everything ships as one package — one Host entry, one Client bundle, one bundle patch — so installing it is a single step.
What it registers
| Surface | Contribution |
|---|---|
ctx.zhihu | Content seam: feeds, reads, search, rate limiting and typed failures |
ctx.zhihuProvider | Credentialed HTTP provider using a Zhihu cookie |
ctx.tools | zhihu_feed, zhihu_read, zhihu_search |
ctx.zhihuController | Authenticated Remote serving bounded rows to the browser |
| Client | Tool cards, the right-sidebar Zhihu panel, the per-item discussion segment |
Install
-
Add the package to a profile and enable it:
// <profile>/package.json { "dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@your-scope/dsh-zhihu"] } } } -
Store the signed-in Zhihu cookie in the credentials service under the ref the provider reads (
zhihuby default):dsh credentials set zhihu # paste the Cookie header value of a signed-in www.zhihu.com requestZhihu answers 401 to anonymous callers, so a signed-in cookie is required; the provider never writes it anywhere else.
-
Restart the app. Host plugins load at startup, so the tools and the Remote appear only after a full restart; the browser panel then loads from the same package.
Configuration
- id: zhihu
name: '@your-scope/dsh-zhihu'
config:
http:
credential: zhihu # credential ref holding the cookie
requestTimeoutMs: 20000
minIntervalMs: 1000 # spacing between calls to Zhihu
maxContentChars: 8000
pageSize: 20
maxFeedPages: 3
answerLimit: 1
tool:
maxItems: 20
maxAnswerLimit: 5
excerptMaxChars: 200
timeoutMs: 30000
remote:
defaultLimit: 20
maxLimit: 50
obsidianUrl: https://127.0.0.1:27124
obsidianFolder: zhihu
obsidianCredential: OBSIDIAN_API_KEY
Using it
- Panel. Open it from the sidebar; the lanes are hot, recommendation, follow and search. Rows page as you scroll, and the lane you left is restored on the next open.
- Reader. Open a row for the body, formatted from the provider's Markdown when it has one. Right-click for copy title, copy link, copy body, open on Zhihu, and export to Obsidian.
- Discussion. The reader's Discussion segment keeps one Session per item: ask a question there
and the model fetches the body itself with
zhihu_readinstead of receiving it in the prompt, so the exchange stays logged and resumable like any other conversation. - Obsidian. Export writes the entry as a Markdown note through the Obsidian REST API, and reports the note path when it lands.
Publishing
The workspace name is @deepseek-ai/dsh-zhihu-plugin because the repository's experimental gate
only admits @deepseek-ai names. The publishable package is assembled under your own scope:
npx tsc -b tsconfig.json && npx tsx ../../../scripts/generate-typert.ts
npx tsdown -F "@deepseek-ai/dsh-zhihu-plugin" && npx tsdown
node scripts/pack-dist.mjs --name @your-scope/dsh-zhihu --out dist/zhihu
pack-dist.mjs copies lib/index.js, lib/client.js, the Typert artifacts, lib/types,
locale/ and cordis.patch.yml, and rewrites the package name in the manifest, the bundle patch
and the built bundles so the published package owns its Typert manifest.
Plugins associés
archify (deepseek-harness)
tt-a1i/archify
WeKnora (dsh-weknora)
tencent/weknora
next-ai-draw-io (dsh-plugin)
dayuanjiang/next-ai-draw-io
weknora
tencent/weknora