zhihu-cli
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 29 GitHub stars
Code Basarisiz
- process.env — Environment variable access in dsh-plugin/cordis.patch.yml
- exec() — Shell command execution in dsh-plugin/scripts/sync-version.mjs
- process.env — Environment variable access in dsh-plugin/scripts/sync-version.mjs
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
知乎命令行工具 · 浏览/搜索/下载 Markdown/发布/众裁/日报/创作分析,内置给 AI Agent 用的 MCP server —— Zhihu CLI + MCP for AI agents.
🧢 zhihu-cli
The terminal is your new Zhihu HQ.
A feature-complete, automation-ready Zhihu CLI & Developer Toolkit.
browse · download · search · publish · analyze — all from the command line.
zhihu-cli turns your terminal into a full-featured Zhihu client. Authenticate once, then browse, search, download, publish, and analyze — without ever opening a browser.
⚠️ This is an unofficial CLI for Zhihu. Use at your own risk. Not affiliated with Zhihu Inc.
👉 Looking for the DSH plugin? → dsh-plugin/
🚀 Quick Start
Requirement: Python 3.10 or newer. Check your version with
python --versionbefore installing.
# Install
pip install zhihu-toolkit
1. Authenticate
zhihu auth paste # paste a cURL from browser DevTools
zhihu auth login # scan a QR code with the Zhihu App
zhihu auth import # import the session from a local browser (needs: pip install 'zhihu-toolkit[browser]')
2. Verify
zhihu auth status # check login status and active profile
✨ What You Can Do
📖 Read & Browse
Browse Zhihu's feeds, hot lists, questions, articles, pins, and comments — all rendered in your terminal with a Rich-powered pager. Explore the real-time trending list with excerpts, scroll through your personalized recommend feed, or dive into a question and its full answer thread without clicking a single link. Zhihu Daily (知乎日报) has its own group: zhihu daily latest, zhihu daily before <date>, and zhihu daily story <id> --save.
💾 Download for Offline
Save any Zhihu content (articles, answers, questions, pins, videos) as clean Markdown with YAML frontmatter. Download individual pieces or batch-process from a manifest. Everything lands in ~/.zhihu-cli/downloads/, organized by type, ready for your note-taking system or offline reading.
🔍 Search
Search questions, articles, users, and topics across Zhihu. Fine-tune result depth and quantity — all from the command line.
✍️ Publish & Edit
Write answers and articles in Markdown, publish them to Zhihu with one command. Need to update? Modify existing answers and articles from your local files. Markdown-to-HTML conversion happens automatically via Zhihu's own rendering pipeline.
💬 Interact
Vote, thank, follow, block, and comment — full social interaction without the browser. Manage collections: create, populate, and organize them. Send and receive direct messages, and stream real-time notifications and chat via MQTT.
🕸️ Scrape & Export
Batch-export your creations, activity history, answers, and articles as structured JSON. Use the universal converter to merge and normalize across formats for your own data pipeline.
📊 Analyze
Creator analytics — pull your Zhihu income data and visualize it: monthly summaries, trend charts (with EMA), advanced indicators (Bollinger Bands, MACD), derivative analysis (velocity/acceleration/jerk), weekday breakdowns, and per-content daily metrics. Charts are saved as PNGs.
NLP tools — run word frequency analysis, generate word clouds, and perform K-means clustering on your downloaded content. All operate across your full Markdown library.
🔐 Multi-Account
Save multiple profiles from different accounts, switch between them with a single command. Each profile keeps its own auth credentials and cookies.
🏗️ Architecture
src/zhihu_cli/
├── main.py # Click CLI — command group hub
├── output.py # styled terminal output (Rich)
├── content/
│ ├── handlers/ # one file per Zhihu domain
│ └── utils/ # HTML↔Markdown, ZSE v4 signing
├── creator_tools/ # income analytics + plotting
├── nlp_tools/ # word count, wordcloud, clustering
└── extensions/ # plugin system (auto-discovered)
| Layer | What It Does |
|---|---|
| 🔐 Auth | Browser Cookie + User-Agent headers from cURL paste or QR code login, cached per-profile |
| ✍️ Signing | Every Zhihu request gets auto-signed with x-zse-93 / x-zse-96 headers via ZSE v4 cipher |
| 🌐 Requests | curl_cffi impersonates Chrome's TLS fingerprint to avoid detection |
| 📄 Extraction | Prefers direct API calls; falls back to HTML page scraping with js-initialData parsing |
| 📝 Markdown | HTML → LaTeX preprocessing → recursive traversal → clean Markdown. Reverse for publishing |
| 🔌 Extensions | Drop a plugin in extensions/ with register_cli(group) — auto-discovered at startup |
🧪 Extras
Optional Dependencies
pip install -e ".[nlp]" # jieba, matplotlib, wordcloud, scikit-learn...
pip install -e ".[creator]" # matplotlib, numpy, pandas, seaborn...
pip install -e ".[classifier]" # torch, transformers, scikit-learn...
pip install -e ".[llm]" # openai (zhihu agora ai, zhihu chat bot, crank)
pip install -e ".[notify]" # desktop-notifier (zhihu chat interactive --notify)
pip install -e ".[mcp]" # mcp (the zhihu-mcp server entry point)
Shell Completions
eval "$(python autocomp.py)"
🤝 Contributing
PRs welcome! The codebase is structured for extensibility:
- New command? Add a file to
commands/with aregister_<name>(group)function, import it inmain.py. - New handler? Add a file to
content/handlers/— follow the existing patterns. - New extension? Create
extensions/<name>/with an__init__.pyexposingregister_cli(group).
Run the formatter before submitting:
pre-commit run --all-files
ruff check .
ruff format .
📜 License
MIT
Made with ❤️ and way too many terminal sessions.
Report a bug · Fork this repository · Star ⭐ this repo!
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi