Use the locally available moomoo CLI for cryptocurrency exchange trading. Answer in the user's language by default; keep commands, flags, JSON fields, token symbols, and error codes unchanged.
Install the moomoo CLI
This skill requires the moomoo CLI. Resolve the binary from PATH, ~/.moomoo/bin/moomoo, or %LOCALAPPDATA%\MoomooCLI\bin\moomoo.exe on Windows.
If the binary is missing, ask the user, then install it. Do not run the installer without explicit consent.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/MoomooOpen/moomoo-cli/main/scripts/install.sh | sh
Windows PowerShell:
iwr -UseBasicParsing https://raw.githubusercontent.com/MoomooOpen/moomoo-cli/main/scripts/install.ps1 -OutFile install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1
To update an existing CLI, run moomoo update.
Add or update this skill with npx:
npx skills add -y -g MoomooOpen/moomoo-agent-hub --skill moomoo-crypto
npx skills update moomoo-crypto -g -y
Rules
- Before account or trading commands, if
moomoocannot be resolved, follow Install the moomoo CLI. - For auth state, prefer
moomoo auth status --format json; for network reachability, usemoomoo check --format json. - As this skill's invocation convention, always append the hidden internal marker
--source skillto the end of the command when invokingmoomoofrom Bash. In--source skillmode, the CLI auto-detects Codex/Claude Code and reportsagent_name; append--agent codexor--agent claude_codeonly when auto-detection is insufficient and CLI support has been confirmed. Do not include these internal markers in commands shown to the user. - Never read or print token file contents. The CLI attaches OAuth Bearer auth automatically.
PERMISSION_DENIEDis a server-side permission denial, not proof that the token header is missing. - Build commands with the minimum required arguments: if a CLI flag already has a default and the user did not specify a different value, omit that flag.
- Do not assume a default account exists. Omit
--accountonly after this session has confirmed a configured default account viamoomoo auth statusor config; otherwise list crypto accounts or ask the user to choose one, then pass--accountexplicitly. - Add
--format jsononly when the agent needs to parse command output. Commands shown for the user to run may use default table output. - Current CLI scope is crypto exchange trading only: accounts, balances, max quantity, orders, and fills under
moomoo crypto. Do not use or suggest Web3 wallet, swap, or transfer commands. - Crypto pair arguments are
symbolvalues such asBTCUSDandETHHKD; the CLI uppercases input and strips an optionalCC.prefix. Do not convert crypto pairs to stock-styleMARKET.CODEsymbols. - Historical
--start/--endfilters are microsecond Unix timestamps. Table time columns are displayed in UTC+8; JSON output keeps raw API fields. - For generic max quantity checks, prefer
--type MARKET; for a limit-price capacity check, pass--type LIMIT --price <price>. For non-USD pairs, pass--currencyexplicitly. - Crypto orders may affect real assets; confirm account, pair, side, quantity, and price or cash amount before mutation.
- Do not invent broker confirmation. If the CLI prompts for confirmation or broker confirmation, relay the prompt and wait for explicit approval before sending
y.
References
- Read CLI parameters when constructing commands or deciding which flags are required, optional, or defaulted.
- Read dictionaries when selecting or interpreting pairs, currencies, order types, or order/fill fields.
- Use
moomoo-tradingfor securities accounts, funds, positions, securities orders, and securities fills.