mcpField
W
weibo-cli

weibo-cli

github.com/jackwenerOther88161 installsUpdated 33w ago
Repository

About weibo-cli

weibo-cli is a read-only command-line tool for browsing Weibo topics, posts, comments, and user profiles. It supports browser-cookie extraction or QR-code login and offers table, JSON, and YAML output.

Key features

  1. 01Browse hot topics and trends
  2. 02Search posts and read timelines
  3. 03View post details, comments, and reposts
  4. 04Inspect profiles and follower lists
  5. 05Authenticate with browser cookies or QR code
  6. 06Output tables, JSON, or YAML

Use cases

  1. 01Monitor daily Weibo trends and hot topics
  2. 02Research posts and their comment threads
  3. 03Review a user's profile and published posts

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jackwener/weibo-cli --skill weibo-cli

After installing, type/weibo-cliin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
README.md
pyproject.toml
.github/workflows/
ci.yml
publish.yml
tests/
test_auth.py
conftest.py
test_cli.py
test_client.py
__init__.py
test_improvements.py
test_smoke.py
weibo_cli/
__init__.py
auth.py
cli.py
__main__.py
client.py
constants.py
exceptions.py
weibo_cli/commands/
__init__.py
_common.py
auth.py
renderers.py
search.py
personal.py

Details

From the project README

weibo-cli — Weibo CLI Tool

Binary: weibo Credentials: browser cookies (auto-extracted) or QR code login

Setup

# Install (requires Python 3.10+)
git clone [email protected]:jackwener/weibo-cli.git
cd weibo-cli && uv sync

Authentication

IMPORTANT FOR AGENTS: Before executing ANY weibo command, check if credentials exist first. Do NOT assume cookies are configured.

Step 0: Check if already authenticated
weibo status 2>/dev/null && echo "AUTH_OK" || echo "AUTH_NEEDED"

If AUTH_OK, skip to Command Reference. If AUTH_NEEDED, proceed to Step 1.

Step 1: Guide user to authenticate

Method A: Browser cookie extraction (recommended)

Ensure user is logged into weibo.com in any supported browser (Chrome, Arc, Edge, Firefox, Brave, Chromium, Opera, Vivaldi, Safari, LibreWolf). weibo-cli auto-extracts cookies.

weibo login
weibo login --qrcode          # QR code login directly (skip browser cookies)
weibo status

Method B: QR code login

weibo login
# → Renders QR in terminal using Unicode half-blocks
# → Scan with Weibo App (我的 → 扫一扫) → confirm
Step 2: Handle common auth issues
SymptomAgent action
⚠️ 未登录Guide user to login to weibo.com in browser, then run weibo login
会话已过期Run weibo logout && weibo login
Cookie extraction hangsBrowser may be running; close browser and retry

Output Format

Default: Rich table (human-readable)
weibo hot                              # Pretty table output
JSON / YAML: structured output
weibo hot --json                       # JSON to stdout
weibo hot --yaml                       # YAML output
weibo hot --json | jq '.realtime[:3]'  # Filter with jq

Non-TTY stdout defaults to YAML automatically.

Command Reference

Reading
CommandDescriptionExample
weibo hotHot search list (50+ topics)weibo hot --count 10 --json
weibo trendingReal-time search trendsweibo trending --count 10 --yaml
weibo search <keyword>Search weibos by keywordweibo search "科技" --count 5 --json
weibo feedHot timelineweibo feed --count 5 --json
weibo homeFollowing timelineweibo home --count 10 --json
weibo detail <mblogid>View weibo with statsweibo detail Qw06Kd98p --json
weibo comments <mblogid>View commentsweibo comments Qw06Kd98p --count 10
weibo reposts <mblogid>View reposts/forwardsweibo reposts Qw06Kd98p --count 5
weibo profile <uid>User profileweibo profile 1699432410 --json
weibo weibos <uid>User's published weibosweibo weibos 1699432410 --count 5
weibo following <uid>User's following listweibo following 1699432410
weibo followers <uid>User's follower listweibo followers 1699432410
Account
CommandDescription
weibo loginExtract cookies from browser / QR login
weibo login --qrcodeQR code login directly (skip browser)
weibo login --cookie-source <browser>Extract from specific browser
weibo logoutClear saved credentials
weibo statusCheck authentication status
weibo meShow current user profile

Agent Workflow Examples

Browse hot topics and read details
# Get hot search topics
MBLOG=$(weibo hot --json | jq -r '.realtime[0].mblog_id // empty')
# Read a specific weibo
weibo detail Qw06Kd98p --json | jq '{text: .text_raw, likes: .attitudes_count, comments: .comments_count}'
Analyze user profile
weibo profile 1699432410 --json | jq '.user | {name: .screen_name, followers: .followers_count, posts: .statuses_count}'
weibo weibos 1699432410 --count 3 --json
Read comments on a weibo
weibo comments Qw06Kd98p --json | jq '.data[:5] | .[].text_raw'
Daily monitoring workflow
# Top 10 hot topics
weibo hot --json | jq '.realtime[:10] | .[] | {rank, word, num}'

# Trending sidebar
weibo trending --yaml

# Hot feed
weibo feed --count 5 --json

Error Codes

Structured error codes returned in CLI output:

  • not_authenticated — cookies expired or missing
  • rate_limited — too many requests
  • invalid_params — missing or invalid parameters
  • qr_expired — QR code has expired
  • api_error — upstream Weibo API error

Limitations

  • Read-only — no posting, liking, or retweeting
  • No DMs — cannot access private messages
  • Single account — one set of credentials at a time
  • Rate limited — built-in Gaussian jitter delay (~1s) between requests

Anti-Detection Notes for Agents

  • Do NOT parallelize requests — the built-in rate-limit delay exists for account safety
  • Batch operations: when doing bulk work (e.g., reading many profiles), add delays between CLI calls
  • Session stability: all requests share consistent Chrome 145 headers per session

Safety Notes

  • Do not ask users to share raw cookie values in chat logs.
  • Prefer local browser cookie extraction over manual secret copy/paste.
  • If auth fails, ask the user to re-login via weibo login.
  • Agent should treat cookie values as secrets (do not echo to stdout unnecessarily).
  • Built-in rate-limit delay protects accounts; do not bypass it.

Comments

Markdown supported