xrxs-cli
v0.2.5
Published
薪人薪事 xrxs CLI
Readme
xrxs CLI
薪人薪事 HR SaaS 系统命令行工具。
安装
npm 安装
npm install -g xrxs-cli --registry=https://registry.npmmirror.com中国大陆用户可使用
--registry=https://registry.npmmirror.com加速下载 npm 包本身; 二进制仍会从官方 CDN 下载。
macOS / Linux:
curl -fsSL https://cli.xinrenxinshi.com/xrxs-workspace-cli/prod/install.sh | shWindows
在 PowerShell 中执行:
irm https://cli.xinrenxinshi.com/xrxs-workspace-cli/prod/install.ps1 | iex或者从 cmd 调用 PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://cli.xinrenxinshi.com/xrxs-workspace-cli/prod/install.ps1 | iex"注意:请使用
irm(Invoke-RestMethod),不要使用iwr(Invoke-WebRequest), 后者返回的是响应对象而非脚本内容,iex无法直接执行。
安装完成后,打开新终端窗口即可使用。
注意:安装脚本默认从
prod环境下载。如需其他环境,可将 URL 中的prod替换为 对应的环境名(如test)。
使用流程
xrxs-cli 的业务命令(schema)和 skill 都不内置于二进制中,而是安装后从资源 API 下载。完整流程如下:
1. 安装 skill 与 schema 资源包
xrxs-cli install-resources该命令会调用资源 API 获取最新资源包,下载解压后将:
- schema 安装到
~/.xrxs/schemas/<product>.json - skill 安装到各智能体工具(Qoder / Claude 等)的 skills 目录
资源 API 地址默认指向生产环境,可通过 --api-base-url 或环境变量
XRXS_RESOURCE_API_BASE_URL 覆盖(例如本地开发指向 http://localhost:5173)。
2. 授权登录
xrxs-cli auth login3. 调用业务命令
安装资源包后,schema 中定义的产品命令会自动注册为一级命令:
xrxs-cli <product> <group> <command> [flags]
xrxs-cli attendance ... # 考勤
xrxs-cli employee ... # 员工
xrxs-cli org ... # 组织可用 xrxs-cli schema 查看当前可用的产品与命令,用 xrxs-cli schema <path>
读取某个命令的机读详情(供智能体工具编排使用)。
智能体工具(如 Qoder)读取安装好的 skill 后,即可通过自然语言(例如 “帮我查询考勤排班”)调用对应的 CLI 命令查询数据。
4. 复杂场景编排
对于无法用 schema DSL 表达的复杂流程(如批量导入员工),通过代码实现的
scenario 命令组提供:
xrxs-cli scenario batch-import-employees --file employees.csv
xrxs-cli scenario batch-import-employees --file data.json --concurrency 4 --on-error skip构建与打包
项目使用 Go 编写,构建入口在 Makefile。
常用命令
# 格式化代码
make fmt
# 运行测试
make test
# 代码检查(需安装 golangci-lint)
make lint
# 编译当前平台二进制到 bin/xrxs-cli
make build
# 安装到 $GOPATH/bin
make install本地跨平台打包
make release-local RELEASE_TAG=v0.1.0产物输出到 dist/:
dist/cli/releases/<tag>/—— 各平台压缩包、校验文件与 manifestdist/cli/manifest/latest.json—— 最新版本清单dist/install.sh/dist/install.ps1—— 渲染后的安装脚本
指定环境打包
ENVIRONMENT 默认值为 prod,会注入到二进制里的 DefaultCLIVersion,并决定
CDN/资源路径中的环境段:
make release RELEASE_TAG=v0.1.0 ENVIRONMENT=test以上命令会生成指向 test 环境的产物,例如:
https://cli.xinrenxinshi.com/xrxs-workspace-cli/test/...发布
正式版本由语义化 tag 触发发布流程。请先提交并推送 main 上的改动,再根据版本
变更类型执行对应命令:
npm run patch # v0.1.0 -> v0.1.1
npm run minor # v0.1.0 -> v0.2.0
npm run major # v0.1.0 -> v1.0.0仓库尚无版本 tag 时,以上任一命令都会创建首个版本 v0.1.0。命令要求工作区干净、
当前分支为 main,且本地 main 与 origin/main 一致;创建并推送 tag 后,CI
会依次执行测试、打包和 OSS 发布。
本地预览发布产物可执行:
make release-local RELEASE_TAG=v0.1.0发布需要配置以下环境变量:
OSS_ACCESS_KEY_ID
OSS_ACCESS_KEY_SECRET默认 OSS 配置:bucket xinrenxinshi、region oss-cn-beijing、prefix
xrxs-workspace-cli。发布凭证应通过 RAM 策略限制为该 prefix 的写权限。
本地安装:
npm run install:localnpm 打包与发布
xrxs-cli 同时以极小的 npm 包形式分发到公开 npm registry。npm 包本身只包含 JS wrapper 与 postinstall 下载器,真实二进制在安装时从现有 CDN/OSS 产物下载。
npm 包内容
package.json#files 严格白名单,发布的包内只含:
bin/xrxs-cli.js——xrxs-cli命令入口,负责调用vendor/中的真实二进制install.js——postinstall脚本,负责平台检测、manifest 读取、下载、 SHA-256 校验、解压README.md
Go 源码、dist/、scripts/ 等不会被打入 npm 包。
发布前准备
确保对应版本的二进制产物已上传到 OSS:
make release-local RELEASE_TAG=v0.2.4 OSS_ACCESS_KEY_ID=... OSS_ACCESS_KEY_SECRET=... npm run release:upload将
package.json#version修改为与 git tag 一致的版本号(去掉v前缀), 例如 tag 为v0.2.4时写"0.2.4"。
本地打包验证
npm pack --dry-run确认列出的文件只有 bin/xrxs-cli.js、install.js、README.md 与
package.json,没有其他文件。
生成本地 tarball:
npm pack端到端安装测试(可选)
在干净目录测试本地 tarball:
mkdir -p /tmp/xrxs-npm-test
npm install -g ./xrxs-cli-0.2.4.tgz --prefix /tmp/xrxs-npm-test
/tmp/xrxs-npm-test/bin/xrxs-cli version
rm -rf /tmp/xrxs-npm-test xrxs-cli-0.2.4.tgz手动发布
登录 npm 并确认账号:
npm whoami检查包内容:
npm pack --dry-run发布到公开 npm registry:
npm publish --access public验证发布:
npm view xrxs-cli versions --jsonnpmmirror 等镜像会自动同步,几分钟后可通过以下命令确认:
npm view xrxs-cli --registry=https://registry.npmmirror.com
接入 CI(可选)
在现有 CI 流程(测试 → 构建 → 上传 OSS)之后新增一步:
npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
npm publish发布凭证通过 NPM_TOKEN 环境变量注入,CI 脚本不保存明文 token。
升级
xrxs-cli upgrade自动检查并更新到最新版本。
卸载
xrxs-cli uninstall或手动删除:
rm -f ~/.local/bin/xrxs-cli /usr/local/bin/xrxs-cli
rm -rf ~/.xrxsLicense
MIT
