# catbus > catbus (猫巴士, "all aboard, every platform") is a TypeScript CLI that drives the web APIs of 10 Chinese and global platforms — Xiaohongshu (xhs), Douyin, TikTok, Bilibili, Kuaishou, Weibo, Xianyu, Taobao, JD and X — through one uniform command syntax and one JSON output format. > Capabilities are ported from cv-cat's open-source Python projects and rewritten in TypeScript. Only Node is required at runtime. Version 0.1.0; web endpoints of all 10 platforms are ported; app / pc endpoints are planned. ## What catbus does - One command, `catbus [args] [options]`, for every platform. - Same meaning, same name: a platform's main content unit (note, video, post, tweet, product) is always `item`; searching is always `search`; liking is always `like`. The same command takes the same options and returns the same normalized shape on every platform. - stdout carries only JSON; logs, prompts, progress and QR codes go to stderr. Human-facing text (help, error `message` / `hint`) is in Chinese; command names, options, JSON fields and error codes are English. - Sessions are stored locally in `~/.catbus/` per platform × endpoint × account. No telemetry; nothing is uploaded. ## Install Requires Node `^22.22.2 || ^24.15.0 || >=26.0.0`. No Python or compiler needed. Supported: win32 / darwin / linux, x64 / arm64 (glibc and musl). From npm: ```bash npm i -g catbus-cli catbus doctor ``` From source: ```bash git clone https://github.com/cv-cat/catbus.git cd catbus npm ci npm run assets:jd && npm run assets:ocr # captcha models npm run build npm link catbus doctor ``` ## Command syntax ``` catbus [args...] [options...] catbus ``` - Global commands: `platforms [platform]`, `doctor`, `auth list`, `config get|set|unset|list`, `version`. - Global options: `-a/--account `, `-e/--endpoint web|app|pc` (default web), `-o/--output json|jsonl`, `--raw`, `--proxy `, `-v`, `-q`, `-y/--yes`, `-h/--help`. - Paging: one page by default; `--limit N`, `--all`, `--cursor `. - Standard filters: `--sort general|latest|popular|views|comments|collects|sales|price_asc|price_desc`, `--type all|video|image|text|article|goods`, `--time all|day|week|month|half_year|year`, `--kind recommend|hot|following` (feed list). Each platform supports a subset; a standard value the platform lacks returns `UNSUPPORTED`, a non-standard value returns `USAGE`. - Arguments accept IDs, URLs (including share short links), natural identifiers (Bilibili BV id, X handle) and `me` for users. Every output object has `id` and `url` that can be passed to the next command. For xhs, pass URLs (they carry `xsec_token`). - Resources: `auth user item product comment feed live keyword notice msg media folder series history topic poi`, plus platform extensions (e.g. bilibili `danmaku` `dynamic` `article` `draft`, jd `order` `cart` `coupon`, x `article`). - Dangerous operations (every `delete`, `msg revoke`, bilibili `item coin` / `item triple`, `live send --gift`) need `-y` unless both stdin and stderr are TTYs (then catbus asks y/N). - Platform-native words are not aliases: `catbus xhs note get` returns `UNSUPPORTED` with a hint pointing to `catbus xhs item get`. - Help: `catbus --help`, `catbus --help`, `catbus --help`, `catbus --help`. Examples: ```bash catbus bilibili item get BV1xx411c7mD catbus xhs item search 露营 --sort latest --limit 50 catbus douyin comment list "