一组面向 Rainbond 日常交付、排障和初始化流程的独立技能,支持 Codex 和 Claude Code。
从 Skill 市场安装完整的 Rainskills 产品:
npx skills add goodrain/rainskillsSkill 市场命令当前要求 Node.js 22.20.0 或更高版本。无法升级时,可以直接运行下面的 Rainskills 安装器(最低支持 Node.js 18),或使用 CDN 入口。
市场只展示一个 rainskills 入口。首次使用时,该入口会启动随包携带的交互式安装器,继续完成客户端选择、Rainbond 环境选择、浏览器授权和 MCP 配置;内部 rainbond-* Skill 不需要单独安装。
安装完成后,9 个 rainbond-* Skill 仍各自独立加载、独立触发和独立维护。统一的是安装、授权和升级入口,不会把业务 Skill 合并成一个大 Skill。
也可以使用客户端自己的 Plugin 市场。无论使用哪种入口,都只会看到一个 Rainskills,第一次使用时仍然进入同一套初始化和授权流程。
Codex Plugin:
codex plugin marketplace add goodrain/rainskills
codex plugin add rainskills@goodrainClaude Code Plugin(在 Claude Code 会话中执行):
/plugin marketplace add goodrain/rainskills
/plugin install rainskills@goodrain
/reload-plugins
也可以直接运行安装器:
npx --yes rainskills安装器会识别或引导选择 Codex / Claude Code、填写 Rainbond 地址、打开浏览器授权、注册 MCP 并安装全部独立 Skill。没有 Node.js 或 Node 版本低于 18 时,使用保留的 CDN 安装方式:
bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh)给 AI 助手的指引:
- 如果用户的请求是"帮我把这个 repo 装上 / 让我用上这套 Rainbond skills",优先让用户执行
npx --yes rainskills。- 如果用户没有 Node.js、Node.js 低于 18,或 npm registry 不可用,改用上面的 CDN
curl命令。- AI 应识别自己运行在 Codex 或 Claude Code,并把对应 target 传给安装器,不要再询问用户客户端类型。macOS、Linux 和 WSL 不支持 OpenClaw 或 Pi Agent 安装。
- 不要
git clone后手工把目录复制到任一客户端的 Skills 目录。- 不要手工拼
~/.rainbond/mcp.env、猜 JWT 或手改客户端 MCP 配置。- 不要建议
npm install -g、pip install或make。npx只是启动包内的install.sh,两种入口使用同一套安装流程。- 如果用户机器上需要换 MCP 服务地址、改默认安装路径,把对应 flag 直接追加到
npx --yes rainskills或install.sh后面。
rainbond-app-assistantrainbond-app-version-assistantrainbond-delivery-verifierrainbond-env-syncrainbond-fullstack-bootstraprainbond-fullstack-troubleshooterrainbond-platform-installer(内部安装流程,不作为独立产品使用)rainbond-project-initrainbond-template-installer
这些 skill 适合以下场景:
- 将本地项目首次接入 Rainbond
- 为已绑定项目同步环境信息
- 基于镜像或模板在 Rainbond 中完成初始化部署
- 管理 Rainbond 应用版本中心中的创建快照、发布、本地/云市场发布事件和快照回滚流程
- 对 Rainbond 全栈应用进行低风险排障
- 在部署结束后做交付验收
- 选择私有化但尚无平台时,在当前 Linux、当前 macOS、当前 Windows(预览)或远程 Linux 服务器部署 Rainbond 单机版
- 已安装
Codex或Claude Code - Skill 市场的
npx skills add当前要求 Node.js 22.20.0 或更高版本 - 直接运行
npx rainskills推荐 Node.js 22 或 24,最低支持 Node.js 18 - Node.js 18/20 已结束维护,安装器会警告但仍继续;Node.js 低于 18 请使用 CDN 安装方式
- macOS/Linux 本机可执行
bash、curl、python3;CDN 入口还需要tar。远程 Linux 安装还需要系统ssh和scp - 使用 Rainbond Cloud 时需要可登录账号;私有化新安装会先创建平台,再在浏览器完成初始化和授权
支持 macOS、Linux 和 Windows。Windows 本地安装目前是 preview,也可以改选 Linux 服务器:
npx --yes rainskillsnpm 包已经携带完整安装器和所有 skill,不会再次下载仓库 tarball。npx 保留终端交互,因此选择客户端、填写私有化地址和浏览器授权流程与原安装脚本完全一致。
Windows 本地预览要求 Windows 10 build 19041+ 或 Windows 11 x64、已开启 CPU 虚拟化,并使用 Administrators 用户和 UAC。推荐 4 核 CPU、8 GB 内存、50 GB 可用磁盘;2 核、4 GB 内存、30 GB 可用磁盘是预检最低门槛,低于推荐配置时安装器会提示风险但继续尝试。安装器会创建独立的 Rainbond WSL2 环境,首次下载可能较久且可能重启一次;下载会显示进度,重启后从已保存断点继续。Windows 登录后通过 http://127.0.0.1:7070 访问 Console。Windows 10/11 真机验收完成前不视为正式支持。
常用参数可以直接追加:
npx --yes rainskills codex --saas
npx --yes rainskills claude --self-hosted --rainbond-url <url>
npx --yes rainskills all --force国内推荐用 OSS 入口(CDN 加速,无需翻墙):
bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh)海外或源码党可以直接用 GitHub 入口:
bash <(curl -fsSL https://raw.githubusercontent.com/goodrain/rainskills/main/install.sh)脚本会按 用户覆盖 → OSS → GitHub 的顺序自动尝试下载仓库 tarball,解压到 ~/.rainbond/skills(可通过 RAINBOND_SKILLS_HOME 覆盖),然后继续走交互式安装流程。
可通过环境变量自定义下载源:
RAINBOND_SKILLS_TARBALL_URL— 用户显式指定的 tarball URL(最高优先)RAINBOND_SKILLS_OSS_URL— OSS tarball URL(默认https://get.rainbond.com/rainskills/rainskills-latest.tar.gz)RAINBOND_SKILLS_HOME— 安装目录(默认~/.rainbond/skills)
谨慎模式:如果不想让远程脚本直接执行,可以先下载再阅读:
curl -fsSLO https://get.rainbond.com/rainskills/install.sh less install.sh # 自行审阅 bash install.sh
如果你已经 git clone 了 rainbond-skills 仓库,直接进入仓库根目录执行:
./install.sh如果只是让 Codex 或 CI 在非交互模式下覆盖本地 skill,直接执行 ./install.sh --force 即可;未提供 Rainbond 参数时,脚本会自动跳过 MCP 配置。
不论使用 npx、CDN 还是本地仓库,安装器都会引导你完成这些动作:
- AI 安装时自动识别当前客户端;直接运行命令时可选择
Codex、Claude Code或全部 - Skill 文件安装完成后,选择要连接的 Rainbond:
- Rainbond Cloud(SaaS):无需自行安装 Rainbond,地址固定为
https://run.rainbond.com - 私有化部署:已有平台时填写 Console 地址;尚无平台时进入内置单机安装向导
- Rainbond Cloud(SaaS):无需自行安装 Rainbond,地址固定为
- 浏览器中完成登录并授权(无需在终端输入用户名/密码)
- 自动接收一年期、仅限 Rainbond MCP 使用的 JWT,并写入
~/.rainbond/mcp.env - 自动配置 Codex 和 Claude Code 的原生 MCP
- 自动把环境变量加载逻辑写入当前 shell 的 rc 文件
- 自动验证所选客户端的专用 MCP 地址是否可用:
- Codex:
/console/mcp/rainskills/codex/query - Claude Code:
/console/mcp/rainskills/claude-code/query
- Codex:
如果用户尚未明确要连接的 Rainbond 环境,AI 不得在安装命令中自行添加 --saas、--self-hosted 或 --rainbond-url,也不得根据已有缓存替用户做决定。安装器会在 Skill 文件安装完成后进入用户选择阶段并输出:
[RAINSKILLS_USER_INPUT_REQUIRED:rainbond_connection]
AI 看到该标记后必须暂停安装,把 Rainbond Cloud / 私有化部署的选择交给最终用户,不得代替用户选择,也不得通过空回车采用默认项。用户回答后,AI 应把选择写回仍在等待的安装进程。如果用户在发起安装时已经明确指定 Rainbond Cloud 或给出了私有化地址,AI 可以直接采用该选择,不必重复询问。
用户选择私有化部署后,还需要明确选择“已经有平台”或“还没有,帮我安装”。已有平台时,安装器输出:
[RAINSKILLS_USER_INPUT_REQUIRED:rainbond_console_url]
AI 看到该标记后,让用户发送浏览器中访问 Rainbond Console 的完整地址,然后把地址写回仍在等待的安装进程。
选择“还没有,帮我安装”时,当前阶段会保存 0600 权限的非敏感断点并输出一行固定 JSON:
{"schema":"rainskills.next-action.v1","action":"install-platform","onboarding_id":"<id>","argv":["platform","install","--onboarding-id","<id>"]}AI 必须把 argv 数组作为参数传回同一个 rainskills 命令,不得把输出拼成任意 shell 字符串。平台安装器会:
- 检查系统、架构、推荐资源(4 核 CPU、8 GB 内存、50 GB 磁盘)、最低资源门槛(2 核 CPU、4 GB 内存、30 GB 磁盘)、权限和端口;低于推荐配置时只提示风险
- 展示官方脚本实际可能修改的主机项目,并等待用户一次明确确认
- 从固定 HTTPS 官方来源下载脚本,限制同源跳转和文件大小,检查 Bash 结构与语法,并用本次 SHA-256 保证远程/WSL 执行内容一致
- 展示下载和启动阶段,保留受保护的本地日志
- 独立验证 Rainbond 容器、K3s、
rbd-system组件和 Console - 自动执行
npx rainskills resume --onboarding-id <id>,继续浏览器授权
平台安装器会先识别当前设备,并统一提供“安装到本地”和“安装到 Linux 服务器”。回车默认安装到本地;Windows 本地路径由固定安装器自动准备 WSL2,用户不需要输入 WSL 命令。远程连接优先使用已有的 SSH Key;需要密码时由系统 SSH 在终端读取,Linux/macOS 会复用临时连接,Windows 自带 OpenSSH 可能在后续步骤再次请求密码,Rainskills 不会保存密码或私钥。
当前支持单机版,包括本机和远程 Linux 安装,以及 Windows 本地预览;不支持多节点、高可用、离线安装或自动清理已有容器和端口冲突。
当前版本默认从 https://get.rainbond.com/ 下载并校验 Rainbond 官方安装脚本;Linux、macOS 和 Windows 的安装流程保持一致,不需要额外设置环境变量。
验证自定义 Rainbond 整体镜像时,可以在 platform install 命令后追加完整镜像名。安装器会在校验安装脚本后,仅替换 Rainbond 主镜像并继续执行原有安装、就绪检查和授权流程:
npx --yes rainskills platform install --onboarding-id <id> \\
--rainbond-image registry.cn-hangzhou.aliyuncs.com/goodrain/rainbond:v6.9.7-devs镜像覆盖会记录在 onboarding 状态中,后续继续或恢复时无需重复填写;默认不指定时使用官方安装脚本当前配置的镜像。
如需使用包内固定的 rainbond-console/script/install-rainbond.sh 做本地回归测试,可显式设置 RAINSKILLS_USE_BUNDLED_RAINBOND_INSTALLER=1;正常安装不需要设置它。
远程部署完成后,Rainskills 会从当前设备验证 SSH 地址、Rainbond 上报地址和远端主网卡地址,自动选择实际可访问的 Console。云服务器的内网地址不可达时会优先使用 SSH 公网地址;只有全部候选都失败时才询问公网 IP 或域名。
如果 AI 使用的执行工具不能保持交互终端,平台预检后会输出:
[RAINSKILLS_USER_INPUT_REQUIRED:platform_install_confirmation]
AI 应先把检测结果和系统变更展示给用户;用户明确同意后,再用相同参数追加 --yes,不得自行确认。
Ctrl+C 会停止当前下载或安装子进程并保留断点。重新执行安装器输出的固定 platform install 命令即可从真实机器状态继续;Rainbond 已部署但授权未完成时,执行固定 resume 命令即可,不需要重新部署平台。
安装脚本会把安装流程状态异步上报到固定地址 https://log.rainbond.com/api/rainskills/installations,用于统计脚本执行、授权和配置成功率。每次执行使用一个随机的 install_attempt_id 串联以下阶段:
started:脚本开始执行authorized:完成 Rainbond 授权,并取得当前企业的eidconfigured:Codex / Claude Code MCP 配置完成failed:流程失败,仅记录固定的失败阶段和分类
上报字段只包含安装尝试 ID、eid、客户端类型、安装或刷新动作、阶段和状态。不会上报 JWT、账号、密码、用户名、邮箱、Rainbond 地址、原始错误信息或本地代码。统计请求在后台执行;统计服务不可用、超时或企业信息读取失败都不会改变原安装结果。
安装器默认使用设备授权流程。终端显示八位授权码和 Rainbond 授权地址,并在 后台等待结果:
- 本地 macOS / Linux 桌面:自动打开当前 Rainbond 的
/device页面。登录 后核对终端中的授权码,点击允许,终端自动继续。 - Windows / WSL:使用固定 PowerShell 浏览器桥接打开 Windows 浏览器;授权 结果仍由原安装进程接收,不需要复制 Token。
- SSH、容器或无桌面 Linux:不会尝试打开远程浏览器。使用任意能够访问该 Rainbond 平台的电脑或手机打开终端中的地址,登录并允许访问;远程终端会自动 检测结果,不需要复制回调 URL、JWT 或在终端按回车。
设备码有效期为 10 分钟,只能成功交换一次。最终签发的 JWT 默认有效期为一年,
并带有 token_use=mcp、scope=mcp 和 aud=rainbond-mcp 限制,不能用于普通
Console API。安装器仅在确认旧版 Console 没有 Device Flow 路由时,才回退到
原来的本机回调/复制回调兼容流程。
--no-browser 只禁止自动打开浏览器,设备授权地址仍会输出:
npx --yes rainskills all --no-browser
# AI 包装器或脚本也可以使用环境变量
RAINSKILLS_NO_BROWSER=1 npx --yes rainskills allDevice Flow 默认要求 HTTPS。Windows 本地安装使用的 loopback 或受管私网 Console
地址会自动允许 HTTP,不再要求额外参数;其他私有环境只有显式使用
--allow-insecure-http 才能继续,终端和浏览器授权页都会提示长期凭证可能被截获。
CI 或完全非交互环境仍应通过 --token / RAINBOND_JWT 提供已有凭证。
私有化平台升级时,应先发布包含 /#/device 的 Rainbond UI,再执行 Console 数据库
迁移,最后设置 RAINBOND_MCP_DEVICE_FLOW_ENABLED=true。平台有固定外部地址时同时
设置 RAINBOND_MCP_DEVICE_PUBLIC_ORIGIN=https://你的平台地址,避免代理请求头影响
浏览器授权地址。未开启功能开关时,Rainskills 会自动使用旧版授权兼容流程。
默认技能安装目录:
~/.claude/skills~/.codex/skills
# npx 模式
npx --yes rainskills all --saas
npx --yes rainskills all --self-hosted --rainbond-url <url>
# CDN 模式:参数追加在脚本之后
bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh) all --saas
bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh) all --self-hosted --rainbond-url <url>
# 本地仓库模式
./install.sh all --saas # Rainbond Cloud
./install.sh all --self-hosted --rainbond-url <url> # 私有化只装并配置 Claude Code:
npx --yes rainskills claude只装并配置 Codex:
npx --yes rainskills codex同时装并配置全部平台:
npx --yes rainskills allSSH、容器和有交互终端的无桌面 Linux 会自动进入跨设备授权模式,不需要提前 准备 Token。终端会持续轮询授权状态,在另一台电脑完成浏览器授权后自动 继续。仅连接旧版 Console 时才会显示粘贴提示;此时把浏览器地址栏中的完整回调 URL 粘贴进去即可。
CI 等没有可交互 TTY 的环境不能粘贴回调地址,可以使用下面两条兼容路径:
-
预先在浏览器拿到 JWT 再传进来(推荐):
./install.sh all --non-interactive \ --self-hosted --rainbond-url https://your-rainbond.example.com \ --token "$RAINBOND_JWT"建议通过 CI Secret 注入
RAINBOND_JWT,不要把 JWT 写入仓库或命令日志。 -
私有化兼容用户名/密码(已不推荐,未来移除):
./install.sh all --non-interactive \ --self-hosted --rainbond-url http://your-rainbond.example.com:7070 \ --username admin \ --allow-insecure-http
仅当部署没有开
USE_SAAS、确实是用户名/密码模式时可用;SaaS 模式下没有这个登录入口。
如果你的 Rainbond 还是 http://,安装脚本会明确提示风险,并要求你确认(交互模式)或要求显式 --allow-insecure-http(非交互模式)。
脚本会把 JWT 保存到:
~/.rainbond/mcp.env并自动把下面这类加载逻辑写入当前 shell 的 rc 文件:
[ -f "$HOME/.rainbond/mcp.env" ] && source "$HOME/.rainbond/mcp.env"注意:
- 新开的终端会自动加载
RAINBOND_JWT - 当前已经打开的终端不会被子进程脚本直接改写
- 安装完成后,如果你想立刻在当前终端运行
codex或claude,请执行脚本最后提示的source ~/.zshrc或source ~/.bashrc
如果目标目录里已经存在同名 skill,默认会跳过,避免覆盖本地修改。
需要强制覆盖时:
npx --yes rainskills --force
npx --yes rainskills codex --forcenpx --yes rainskills --dest ~/.claude/skills
npx --yes rainskills --dest ~/.codex/skills --force--dest 适合:
- 调试安装过程
- 安装到非标准目录
- 在 CI 或临时目录中做验证
注意:--dest 只复制 skill,不会自动配置 Rainbond MCP。
从市场安装时,只更新一个 Rainskills 入口;更新后的入口会运行对应版本的安装器,再同步完整的内部 Skill:
# 通用 Skill 市场
npx skills update rainskills
# Codex Plugin 市场
codex plugin marketplace upgrade goodrainClaude Code 在会话中执行:
/plugin marketplace update goodrain
/plugin update rainskills@goodrain
/reload-plugins
npx 模式:显式使用 latest 并覆盖已有 skill:
npx --yes rainskills@latest --forceCDN 模式:再跑一次同一行命令即可。脚本会重新下载最新 tarball 解压到 ~/.rainbond/skills,然后继续安装流程:
bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh) --force本地仓库模式:
git pull
./install.sh --force如果只想更新某一个平台:
./install.sh claude --force
./install.sh codex --forcerainbond-skills/
README.md
install.sh
package.json
bin/rainskills.js
.gitignore
rainbond-app-assistant/
SKILL.md
rainbond-delivery-verifier/
SKILL.md
...
docs/product-object-model.md 描述了 skills 之间共享的产品对象(project、app、component、environment、delivery 等)和跨-skill 边界。如果你要扩展某个 skill 的输入/输出,或新增一个 skill,先看它。
- 每个 skill 使用单独目录,目录名和 skill 名保持一致
- 每个 skill 至少包含一个
SKILL.md - 如果后续需要补充
scripts/、references/、assets/,请放在对应 skill 目录下 - 安装脚本默认复制所有
rainbond-*目录
Codex / Claude Code 请按安装器提示重启。
因为 ./install.sh 是一个子进程,不能直接改写你当前 shell 的环境变量。
处理方式:
- 直接执行脚本最后提示的
source ~/.zshrc或source ~/.bashrc - 或者开一个新的终端
因为有些使用者会在本地做二次调整。默认跳过更安全,--force 才会覆盖。
保存在:
~/.rainbond/mcp.env脚本不会保存你的 Rainbond 用户名和密码。
通常是 ~/.rainbond/mcp.env 里的 JWT 到期了。无需重装 skills,也不要手工改文件,直接用下面任一命令刷新:
npx --yes rainskills refresh
# 或:bash <(curl -fsSL https://get.rainbond.com/rainskills/install.sh) refresh
# 或:bash ~/.rainbond/skills/install.sh refreshrefresh 不会改动 skill 文件。它会刷新 ~/.rainbond/mcp.env,并检查 RainSkills 早期版本写入的旧通用 MCP 地址。只有地址完全等于当前 Rainbond 的 /console/mcp/query 且认证配置仍是脚本管理格式时,才会先生成 .rainskills-backup 备份,再迁移到对应客户端的专用地址;自定义 MCP 地址不会被修改。迁移失败时会恢复原配置。
刷新后按终端提示重启 Codex / Claude Code。
脚本会输出每个目标目录和每个 skill 的安装结果。
如果你要新增或修改 skill,建议流程如下:
- 在仓库里直接修改对应 skill 目录
- 先查看
docs/product-object-model.md,它是当前产品对象模型和跨-skill 边界的主文档 - 在虚拟环境中执行
python3 -m pip install -r requirements-test.txt,再执行npm test跑 helper、评测、安装器、包内容和 PTY 信号测试;测试在隔离临时目录中运行,无需输入,也不应打开真实浏览器 - 执行
./install.sh --dest /tmp/rainbond-skills-test --force做一次本地验证 - 确认无误后再提交到 Git 仓库