| name | sysu-anything-cli |
| description | Use when the user wants SYSU campus help through the SYSU Anything CLI, including natural-language requests such as 查课表、今天有什么课、教务系统、请假、雨课堂作业、ddl、签到、预约健身房、预约体育馆、订球场、查班车、查岐关、图书馆研讨室、宣讲会、招聘会、岗位投递、勤工助学、学工系统、交叉探索、校园问答、校内资讯, or fuzzy requests to handle campus services, bookings, schedules, reminders, and CAS-based login recovery. |
| metadata | {"openclaw":{"emoji":"🎓","requires":{"bins":["sysu-anything"]},"install":[{"id":"node","kind":"node","package":"sysu-anything","bins":["sysu-anything","sysu-anything-apple"],"label":"Install SYSU Anything CLI (npm)"}]}} |
SYSU anything CLI
Use the published sysu-anything CLI instead of re-deriving campus APIs. Prefer the installed binary. If sysu-anything is missing, install the compiled package with npm i -g sysu-anything or use one-off calls via npx -y sysu-anything@latest .... If the user is actively developing the local repo, the checked-out workspace build is also acceptable.
If the user explicitly wants Apple Calendar / Apple Reminders integration on macOS, switch to the separate Apple entrypoint described in references/apple.md.
First step
- Confirm the runtime path:
- preferred:
sysu-anything
- one-off fallback:
npx -y sysu-anything@latest
- local-dev fallback inside the repo:
npm run build
- Prefer targeted help before composing a command:
sysu-anything --help
sysu-anything <command> --help
sysu-anything <command> <subcommand> --help
- Before any login-dependent feature, read
references/auth-and-state.md and identify what session or token is required.
- Check login state before the real action:
bus: no login check needed
qg: no login check needed; prefer sysu-anything qg --help or sysu-anything qg list --today --available
ykt: sysu-anything ykt status
today / jwxt: sysu-anything jwxt status
chat: sysu-anything chat sources
gym: sysu-anything gym profile
libic: sysu-anything libic whoami
explore: sysu-anything explore whoami
career list/detail: no login check needed
career teachin/jobfair signup or career job apply: no dedicated status endpoint; if the career write path may be stale, run sysu-anything auth workwechat first so the command can seed career-session.json
xgxt: sysu-anything xgxt current-user
- If the check fails, restore login first, then rerun the check, and only after that run the user’s actual command.
- If the user wants Apple Calendar / Reminders integration, read
references/apple.md and run sysu-anything-apple apple doctor before the real sync command.
- For
chat send, prefer the campus-news scope first:
- run
sysu-anything chat sources
- if the list contains
校园资讯 or 校内资讯, prefer that exact returned title by default
- only switch to another scope when the user explicitly asks for it or the source list shows a better match
Routing
- If you are unsure where a capability lives, read
references/overview.md.
- For login state and cached files, read
references/auth-and-state.md.
- For career teachin/jobfair/job list/detail/signup/apply flows, read
references/career.md.
- For offline Guangzhou shuttle lookup, read
references/bus.md.
- For Qiguan rides between Zhuhai and Guangzhou, read
references/qiguan.md.
- For Apple Calendar / Reminders integration, read
references/apple.md.
- For Rain Classroom login, courses, classroom/check-in/homework flows, read
references/ykt.md.
- For course timetable or leave flows, read
references/jwxt.md.
- For campus chat login, scopes, or messaging, read
references/chat.md.
- For gym availability or booking, read
references/gym.md.
- For libic seminar-room refresh / availability / reservation flows, read
references/libic.md.
- For explore seminar or research flows, read
references/explore.md.
- For xgxt work-study or holiday leave/return-school flows, read
references/xgxt.md.
Safety
- Login-dependent features must not skip the login check step.
- Read
references/safety-and-confirm.md before any write operation.
- Prefer preview/query commands before mutation commands.
- Do not add
--confirm unless the user clearly wants the real submission.
- Prefer the existing CLI over browser automation unless the user explicitly asks for a lower-level path.