From pku-cli
Provides context for developing, debugging, and extending the Rust CLI tool for PKU campus card system, covering Synjones auth flows, mobile UA/HTTP1.1 API constraints, CLI commands for balance, recharge, transactions, QR payments, and stats.
npx claudepluginhub pkuinfo/pkucli --plugin pku-cliThis skill uses the workspace's default tool permissions.
A CLI client for PKU's campus card system (Synjones platform at bdcard.pku.edu.cn).
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
A CLI client for PKU's campus card system (Synjones platform at bdcard.pku.edu.cn).
crates/campuscard/app_id="portal2017") → portal → berserker-auth → JWTsynjones-auth headerPKUANDROID) and http1_only() (server rejects HTTP/2)src/main.rs — Clap CLI with subcommandssrc/commands.rs — Command implementationssrc/api.rs — API client with synjones-auth header injectionsrc/display.rs — Terminal output, QR code renderingsrc/client.rs — reqwest client with mobile UA and HTTP/1.1 enforcement| Command | Alias | Function |
|---|---|---|
login / logout / status | IAAA → portal → berserker → JWT | |
info | Card balance and details | |
pay | Display payment QR code in terminal | |
recharge | Top up card balance | |
bills | ls | Transaction history (pagination, monthly filter) |
stats | Monthly spending statistics | |
otp | TOTP 2FA management |
# Check session status
info-auth check
# Auto-login (reads credentials from OS keyring, no password needed)
campuscard login -p
PKUANDROID) or requests will be rejectedhttp1_only() — the Synjones server does not support HTTP/2info_common::qr (viuer or system viewer)anyhow::Result with .context("中文描述")~/.config/info/campuscard/info_common::credential (keyring → env → interactive)