fabrelay 是做什么的?
Operate the JLCPCB China website via a business CLI. This is an unofficial community project, not endorsed by JLCPCB. Use commands for the regular workflow; only operate the CDP page it reserves when a command returns 'awaiting takeover'.
Installation Check
The project was formerly named jlc-cli, the current command is fabrelay; do not assume the old command being available means the new CLI is installed. Upgrades are compatible with existing data directories and login states, see the repository README for details.
Before running any business command, first run fabrelay --version, then if successful run fabrelay --help. Installing this Skill does not automatically install the CLI.
If the command is not found (command not found / unrecognized), explain to the user that the CLI is not yet installed or not in PATH, and provide the project repository and installation instructions. This package is not currently published to npm, do not install a third-party package with the same name. After preparing Node.js 22.12 or later, npm, Git, and Google Chrome, install from source:
git clone https://github.com/TXyy2023/FabRelay.git
cd FabRelay
npm ci
npm run build
npm pack
npm install -g ./fabrelay-1.0.0-dev.2.tgz
fabrelay --version
fabrelay --help
The package name matches the current development version; use the actual filename generated by npm pack when the version changes; if a source directory already exists, verify the path and do not overwrite the user's directory. After installation, re-check the version and help, then continue the original task. If the command exists but fails to start, report the actual error and check the Node.js version and PATH; do not treat a startup failure as 'not installed' and blindly reinstall.
Getting Started
After completing the installation check, run fabrelay browser doctor --json to verify browser availability. fabrelay skill path returns the Skill delivered with this CLI; prefer using the same-version documentation.
First time use: present the initialization scope returned by fabrelay init --json to the human, obtain explicit consent, then run fabrelay init --accept --confirmed-by human; alternatively, the human may run init interactively. Subsequently configure the browser, initiate login, and verify auth status; when scanning a QR code, show the current QR code returned by the command to the human. Login completion is confirmed by the account status verification result, not merely by page navigation or scanning action. After completion, use fabrelay account show --json to perform a query.
The current practical workflow explicitly uses fabrelay browser configure --clear-endpoint --engine chrome. The default Obscura runtime has been verified, but the current real customer center SPA and login iframe still have compatibility issues; do not treat runtime connectivity as business availability, and do not claim that a browser switch has been automatically performed. If the CLI already has a session switching engine for the browser, stop that session first, see Browser and Login Commands.
Business Index
| Requirement | Command Group & Reference |
|---|---|
| Installation discovery, initialization, browser, account configuration, multi-method login, QR code, success callback | Commands & Login |
| Upload/parse/preview, parameters, quotes, checks, and order creation | PCB Workflow |
| PCB/FPC orders, balance payment, Jia Xiaozhi | Orders & Payment |
| JSON status, exit codes, task observation, CDP takeover, unknown results | Results & Recovery |
Mandatory Decision Boundaries
default: Ask the user about production parameters they have not decided on. Site presets, last configuration, and parsing facts are not automatically converted into user choices.auto: First obtain the user's intent for the Agent to help fill in selections, then propose and fill according to their constraints; explain the rationale, and ask if there is a conflict. The mode flag itself is not authorization.- After setting parameters, read the actual effective values. If the website changes or resets the user's choices, report the discrepancy; do not accept replacement values on the grounds that the process can continue.
- Upload, preview, and quote do not automatically authorize order creation. When the user has authorized order creation, first check the summary, then submit explicitly; do not treat a quote as an order or payment.
- Each balance payment requires human confirmation of the current account, order, amount, and payment method. Only pass
--human-confirmedafter the specific summary has received explicit human consent; do not fabricate confirmation or modify local confirmation records. The CLI validates binding, timing, and single-use; the flag itself cannot prove the conversation facts. Initialization, auto, and takeover cannot replace payment confirmation. - When the result is unknown, first verify the original task and order; do not resubmit or pay. Maintain correspondence between tasks, files, account configurations, and pages; takeover does not expand existing business authorization.
Only report results actually verified by commands. QR code delivery, login completion, parsing completion, order creation, and payment are different states. Do not fabricate missing fields; do not fill in site-redacted information. Available capabilities and true acceptance boundaries are determined by the current CLI help and project acceptance records.