Bundle
dsh-zhihu-dashboard
Zhihu (知乎) dashboard for DeepSeek Harness: hot list with trends, follow feed, post tracking, and app-idea distillation — from the UI and as native agent tools (zhihu_search/hot/answer/global_search/followees).
- Source
- kexuejin
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 16 hours ago
Readme
# dsh-zhihu-dashboard English | [中文](README.zh.md) A Zhihu (知乎) dashboard plugin for [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness): hot list, follow feed, post tracking, and app-idea distillation — usable from the DSH UI **and** directly in agent conversations as native tools. Built on the official [zhihu-cli](https://developer.zhihu.com/zhihu-cli) (知乎开放平台). Requires a free Zhihu Open Platform **Access Secret**. ## Features ### Panel (UI) - **热榜 (Hot list)** — today's trending questions/articles, with **trend arrows** (新上榜 / ↑ / ↓) computed by diffing successive snapshots - **关注动态 (Feed)** — your recent favorites, your own creations (sort by latest or **most-liked**), and the people you follow - **帖子追踪 (Post tracking)** — watch a **question** (all its answers), a **keyword** (similar new content), or a **person** (their new posts, author-filtered). New content is flagged `NEW` and surfaced inline under the tracked item immediately, so you do not need to hunt for it; optional **auto-brief** distills newly found posts into app-idea briefs via Zhihu Zhida; optional **system notifications + a sidebar unread badge** — the background checker runs in the DSH top window, so you get alerted **while using DSH, without opening the panel** - **收藏夹 (Favorites)** — browse collections with each collection's content shown inline immediately, with local search, favorite-specific sorting, NEW markers for newly seen collection items, and research-pack export - **未读 (Unread)** — an aggregated feed of everything newly found across your tracks (source track / author / time / summary); the sidebar badge jumps straight to it, with one-click mark-all-read - **Smart brief** — auto-route candidates to templates by followed object/source (person views, question progress, topic trends, development opportunities, research projects, favorites review), generate with the current DSH provider/model, keep recent brief history, and surface a global reminder that opens the panel - **Opportunity report** — aggregate candidates from hot/feed caches, tracked NEW items, unread items, the workspace, and research projects; score them locally and use the current DSH provider/model to generate a development-opportunity report, with prompt copy as fallback - **Data sources** — Access Secret remains the Open Platform path; Settings supports Zhihu QR login, the host persists the read-only session locally with one-click clearing, risk-control responses show a local verification page sharing the QR attempt's temporary cookies with continue-check and cookie-inheriting QR regeneration, and browser Cookie/profile reading has been removed from the user-facing UI - **Content workspace** — send any card to a local workspace as Later / Analyze / Done, review grouped queues in a dedicated tab, create research projects, and copy project-level Agent analysis prompts - **Reading mode** — open any card inside the panel as a clean reader view with source metadata, original-link access, and one-click Markdown copy - **Tracking search controls** — configure per-track result count, content type, and recency window; recent tracking queries are suggested back in the tracker input - **Local sorting / scoring** — choose platform order, newest-first, likes-first, time-first, or a local score weighted by your preferred keywords - **Export / research packs** — copy the current hot/feed/favorites/unread/tracked-new list as Markdown or CSV, ready to paste into an agent conversation for analysis - **Local content filters** — browser-local keyword, author, and regex block rules apply across hot list, feed, favorites, unread, and tracked-post checks; cards include quick block buttons, and settings keep a recent block history with one-click undo - Access Secret and limits are configured in the panel's own Settings dialog (stored in browser `localStorage` only) ### Agent tools (conversation) | Tool | What it does | |---|---| | `zhihu_search` | Search Zhihu content (titles/authors/summaries/links) | | `zhihu_hot` | Current hot list | | `zhihu_answer` | Zhihu Zhida (retrieval-augmented answer / app-idea distillation) | | `zhihu_global_search` | Whole-web search with a recency window (`sinceHours`) and realtime index | | `zhihu_followees` | List the users your account follows | | `zhihu_my_contents` | Your own creations (sortable by likes to find your best content) | | `zhihu_favorites` | Favorite collections / one collection's items | ## Install ```sh dsh plugin --profile web add dsh-zhihu-dashboard ``` Or add it to your profile's `cordis.patch.yml` bundle layer. Restart `dsh web`. ### Prerequisites 1. Install the **zhihu-cli skill** (`dsh skill install zhihu` or your harness's skill flow) so the CLI binary is on PATH / standard install location — the plugin auto-detects it (`cliPath` config → `ZHIHU_CLI_HOME` → `PATH` → platform default) 2. Get an **Access Secret** at [developer.zhihu.com/profile](https://developer.zhihu.com/profile) 3. Provide the secret to the CLI: `printf '%s' 'zh-…' | zhihu-cli auth set --secret-stdin`, or set `ZHIHU_ACCESS_SECRET` env for agent tools, or enter it in the panel (browser-local) > 💡 **First launch**: with no secret configured, the panel shows a three-step onboarding card (open the platform → create an Access Secret → paste & verify); it loads data automatically once verification passes. ## How it works - **Host half** (`lib/`): serves `/zhihu-dashboard` routes behind the same Host/Origin trust fence as the DSH API gateway, drives the zhihu-cli binary, and registers the seven agent tools via `ctx.tools.register` - **Client half** (`src/client/`, bundled to `client/client.js`): a **知乎面板** button in the official sidebar foot (`sidebar.footer.action`) opens a right-hand drawer (`shell.overlay`) embedding the panel — global, shared across sessions, no third-party sidebar dependency; it also mounts the **background track checker** (`track-checker.ts`, running with the DSH top window) which checks tracked items on a schedule and raises system notifications / the sidebar unread badge when something new appears ## Configuration | Option | Default | Meaning | |---|---|---| | `cliPath` | auto-detect | Path to the zhihu-cli binary | | `hotLimit` | 10 | Hot list item count (1-30) | | `feedLimit` | 10 | Feed item count (1-50) | | `refreshSeconds` | 0 | Auto-refresh for hot/feed (0 = off) | Panel-only options (browser localStorage): Access Secret, track-check interval, auto-brief toggle, system-notification toggle, and local block rules for keywords, authors, and regex patterns. Today's hot/Zhida quota is shown at the top of the panel so you don't silently run out. ## Quotas Zhihu Open Platform trial quotas (shared across all your secrets): hot list **100/day**, Zhida **100/day**, search **5,000/day**. Auto-brief and question-title resolution each cost one Zhida call; tracking checks use search. ## Security - Access Secret never leaves the browser's `localStorage` except as a same-origin request header to the host; it is injected into the CLI via `ZHIHU_ACCESS_SECRET` (never in argv, never written to the keychain by the plugin) - Routes enforce the same trusted-Host/Origin fence as DSH's `/api` gateway - No telemetry, no external calls beyond the Zhihu Open Platform API ## Development ```sh pnpm install npx tsdown --config tsdown.config.ts # build client/client.js npx tsc -p tsconfig.client.json # typecheck client sources ``` ## License MIT
Install
dsh plugin --profile web add github:kexuejin/dsh-zhihu-dashboard
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-zhihu-dashboard from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.