/install miniprogram-ci
miniprogram-ci
WeChat Mini Program CI tool · v2.1.31 · Node >= 16.1.0
A compilation module extracted from the WeChat Developer Tools for mini program/mini game projects. Supports both Node.js script calls and CLI commands.
Installation
npm install miniprogram-ci
# Global install (for CLI usage)
npm install -g miniprogram-ci
Prerequisites
- Get AppID — appid of your mini program/mini game
- Generate private key — WeChat Official Platform → Management → Development → Development Settings → Mini Program Code Upload → Generate "Upload Private Key" (
.keyfile) - Configure IP whitelist (recommended) — Only whitelisted IPs can call upload/preview APIs
- Key security — Private keys are not stored in plaintext on the platform. Must reset if lost.
Quick Start
const ci = require("miniprogram-ci");
(async () => {
const project = new ci.Project({
appid: "wx0000000000000000",
type: "miniProgram", // miniProgram | miniProgramPlugin | miniGame | miniGamePlugin
projectPath: "./dist/build/mp-weixin",
privateKeyPath: "./key/private.wx.xxxxx.key",
ignores: ["node_modules/**/*"],
});
// Upload code
const uploadResult = await ci.upload({
project,
version: "1.0.0",
desc: "Fixed several issues",
setting: { es6: true, minify: true },
onProgressUpdate: console.log,
robot: 1,
});
console.log("subPackageInfo:", uploadResult.subPackageInfo);
// Preview (generate QR code)
await ci.preview({
project,
desc: "Preview version",
setting: { es6: true },
qrcodeFormat: "image", // image | base64 | terminal
qrcodeOutputDest: "./preview.jpg",
pagePath: "pages/index/index",
searchQuery: "id=123",
onProgressUpdate: console.log,
robot: 1,
});
})();
Main API
| Method | Purpose | Key Parameters |
|---|---|---|
ci.upload() |
Upload code | project, version(required), desc, setting, robot |
ci.preview() |
Preview (QR code) | project, qrcodeOutputDest(required), desc, setting, robot |
ci.buildNpm() |
Build npm | project, options.ignores |
ci.getDevSourceMap() |
Get latest sourceMap | project, robot(required), sourceMapSavePath(required) |
ci.cloudFunctionDeploy() |
Upload cloud function | project, env(required), name(required), path(required) |
ci.cloudFileUpload() |
Upload cloud storage/static hosting | project, env(required), path(required) [alpha] |
ci.cloudContainerDeploy() |
Deploy cloud container version | project, env(required), containerRoot + version [alpha] |
ci.proxy() |
Set proxy | proxyUrl(optional) |
Compile Settings
{
es6: true, // ES6 → ES5
es7: true, // Enhanced compilation
minifyJS: true, // Minify JS
minifyWXML: true, // Minify WXML
minifyWXSS: true, // Minify WXSS
minify: true, // Minify all
codeProtect: true, // Code protection
autoPrefixWXSS: true, // Auto prefix CSS
}
Project Object
new ci.Project({
appid: "wx...", // required
projectPath: "./dist", // required (directory containing project.config.json)
privateKeyPath: "./key", // required
type: "miniProgram", // optional, defaults to miniProgram
ignores: ["node_modules"],// optional
})
CLI Commands
# Upload
miniprogram-ci upload \
--pp ./dist \
--pkp ./key/private.key \
--appid wx0000000000000000 \
--uv 1.0.0 \
--ud "Version description" \
--r 1
# Preview
miniprogram-ci preview \
--pp ./dist \
--pkp ./key/private.key \
--appid wx0000000000000000 \
--uv 1.0.0 \
--ud "Preview description" \
--qrcode-format image \
--qrcode-output-dest ./preview.jpg
Proxy Configuration
Auto-detection order: HTTPS_PROXY → https_proxy → HTTP_PROXY → http_proxy → npm config → manual
ci.proxy("http://127.0.0.1:8888"); // manual
ci.proxy(); // clear, restore auto
servicewechat.com is automatically added to no_proxy.
Return Values (upload/preview)
{
subPackageInfo: [
{ name: "__FULL__", size: 123456 }, // entire package
{ name: "__APP__", size: 100000 }, // main package
{ name: "subPack1", size: 23456 }, // sub package
],
pluginInfo: [
{ pluginProviderAppid: "wx...", version: "1.0.0", size: 12345 },
],
devPluginId: "wx...",
}
Third-Party Platform
Supported since 1.0.28. Note:
- Project must have a valid
ext.json - Use the private key of the development mini program bound to the third-party platform
- IP whitelist also belongs to that development mini program
- The appid passed in must be the bound development mini program's appid
Robot Parameter
Specify which CI robot to use (1~30), enabling concurrent operations without conflicts.
Reference Files
| File | Content |
|---|---|
| references/cloud.md | Cloud development (cloud functions/cloud containers/cloud storage) |
| references/cli.md | CLI command detailed options |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install miniprogram-ci - After installation, invoke the skill by name or use
/miniprogram-ci - Provide required inputs per the skill's parameter spec and get structured output
What is WeChat Mini Program CI?
Automate WeChat Mini Program code upload, preview, npm build, and cloud deployments with CI/CD support using Node.js or CLI without opening DevTools. It is an AI Agent Skill for Claude Code / OpenClaw, with 53 downloads so far.
How do I install WeChat Mini Program CI?
Run "/install miniprogram-ci" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is WeChat Mini Program CI free?
Yes, WeChat Mini Program CI is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does WeChat Mini Program CI support?
WeChat Mini Program CI is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created WeChat Mini Program CI?
It is built and maintained by OpenLark (@openlark); the current version is v1.0.0.