把鸿蒙应用管理带回终端:我开源了 agc-cli

用过 App Store Connect CLI 之后,我开始希望:管理华为应用,也能有这样的命令行体验。
asc-cli 把 App Store Connect 的应用管理能力带进终端,让开发者能够用命令组织操作、接入脚本,并交给 AI 编程助手使用。这种体验吸引我的地方,是它让应用管理自然地进入了开发工作流。
当我把同样的工作方式带到鸿蒙开发中时,发现自己还需要逐个查找 AppGallery Connect 接口、处理鉴权、整理参数,再把请求拼接起来。代码可以版本控制,构建可以脚本化,应用管理也值得拥有同样清晰的操作入口。
所以,我做了 agc-cli:一个用 Go 编写、面向华为 AppGallery Connect 的开源命令行工具。
它希望让开发者少做重复配置,把常用的应用管理操作变成可以保存、复用和组合的命令。
- 项目地址:github.com/Createitv/agc-cli
- 官网与接口参考:agccli.app
开发效率,也取决于代码之外的工作
维护一个鸿蒙应用,工作并不会在构建完成时结束。
你还需要查看应用资料、核对多语言描述、管理测试用户、处理评论、请求报表。维护多个项目时,还要反复确认当前账号和应用 ID。每一步都不复杂,但这些操作会随着版本迭代持续发生。
对单人开发者而言,它们打断写代码的节奏;对团队而言,它们往往成为需要口头交接的操作经验。
CLI 的价值,是让这些经验拥有明确的表达方式:一条命令说明做什么,参数说明操作哪个应用,输出提供可以继续处理的数据。整理好的操作可以留在项目脚本中,下次维护时继续使用。
一个入口,组织 AppGallery Connect 的常用能力
agc-cli 安装后的命令名是 agc,按功能组织接口:
| 场景 | 命令入口 |
|---|---|
| 应用资料、多语言描述与发布请求 | agc publishing |
| 测试版本、测试用户与群组 | agc testing |
| 商品、订阅、价格与促销 | agc pms |
| 鸿蒙证书、Profile、设备与指纹 | agc provisioning |
| 评论、评分与报表 | agc comments / agc reports |
| 项目、SDK 配置与域名 | agc projects / agc domains |
当前注册表包含 13 个 API 家族、156 个接口条目,提供接口发现、通用请求构建和调用能力。每个条目带有对应的官方参考链接,开发者可以从命令直接找到协议依据。
这里的接口数量代表注册范围,不代表所有接口都已经完成生产验证。具体字段、权限和业务前置条件仍以对应华为文档为准。
从安装到第一次查询
macOS 用户可以通过 Homebrew 安装:
brew tap createitv/tap
brew install agc-cli
agc version
Windows 用户可以使用 Scoop,Linux 用户可以下载 Release 安装包。发布版二进制无需安装 Go;各平台的安装说明见项目文档。
准备好 AppGallery Connect 应用 ID 和 Service Account JSON 后,保存凭据:
agc auth login \
--service-account-file ~/.agc/service-account.json \
--name production
在应用项目目录绑定默认凭据:
agc init --app-id YOUR_APP_ID --default-profile production
项目配置写入 .agc/project.json。后续命令自动选择该项目的凭据 profile;当前接口调用仍需显式填写应用 ID 等参数。
先预览一次应用信息查询:
agc publishing app-info-query \
--invoke \
--query appId=YOUR_APP_ID \
--query lang=zh-CN \
--pretty
默认 dry-run:构建请求并显示 HTTP 方法和目标 URL,不发送请求。确认后,在同一命令末尾增加 --dry-run=false,即可执行真实查询。
如果接口要求 client_id 请求头,追加 --header client_id=YOUR_CLIENT_ID。
实际例子:把多语言资料查询写进项目脚本

概念示意:整理凭据与常用命令,让查询结果进入可复用的脚本流程。
假设你正在维护一个同时提供中文和英文资料的鸿蒙应用,需要定期读取两种语言的应用信息。
可以把查询写成下面的脚本。先替换应用 ID;如果接口要求 client_id,在调用中补上对应请求头:
mkdir -p agc-results
for lang in zh-CN en-US; do
agc publishing app-info-query \
--invoke \
--query appId=YOUR_APP_ID \
--query lang="$lang" \
--dry-run=false \
--out "agc-results/app-info.$lang.json"
done
--out 保存接口的原始响应体。你可以读取这些结果、检查返回内容,再用自己的脚本整理需要的信息。它们也可以作为进一步比较资料变更的输入。
这种工作方式的收益很直接:常用查询只需整理一次,后续通过参数复用;查询结果可以继续交给程序处理,减少手工复制与重复整理。
多账号场景则可以显式选择凭据:
agc --profile staging publishing endpoints --output table
这让命令的执行上下文更清楚,也方便在不同项目中维护各自的配置。
为脚本与 AI Agent 提供清晰的接口

接口示意:CLI、本地 REST 和 Agent 使用同一份接口定义;执行前先发现、配置与预览。
agc-cli 默认输出 JSON,同时支持 table 和 markdown。
对于脚本,结构化输出可以继续交给 jq 或其他程序处理;对于 AI Agent,它提供了可发现的接口定义、官方文档地址,以及 affordances 中的后续命令模板。
开发者可以先查看能力,再决定执行哪一步:
agc capabilities --output table
agc publishing endpoints --output table
agc publishing app-info-query --pretty
这些命令无需先登录即可查看定义。Agent 也能沿着同样的路径了解接口,补齐参数后构建请求。当前命令模板用于导航,不会替代业务状态检查或审核判断。
需要进一步集成时,agc web-server 提供本地 REST API,agc openapi 导出接口契约。终端操作、脚本和本地工具可以围绕同一份接口注册表协作。
开源,让工作流可以持续演进
agc-cli 使用 MIT 许可证,提供中英文文档、测试与 CI 检查。目前重点是应用管理接口的统一入口;完整二进制/multipart 上传编排和本地 Hvigor 构建执行器尚未完成。
如果你正在维护鸿蒙应用,希望把常用的查询与管理操作纳入项目脚本,可以从安装后的第一次应用查询开始。
项目:github.com/Createitv/agc-cli
安装、命令与使用指南:agccli.app
使用中的问题与功能建议可以提交到 GitHub Issues。
更多推荐


所有评论(0)