createitv
V2EX  ›  华为

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

  •  
  •   createitv · 2 days ago · 614 views

    agc-cli 项目封面:面向终端、脚本和 AI Agent 的 AppGallery Connect CLI

    用过 App Store Connect CLI 之后,我开始希望:管理华为应用,也能有这样的命令行体验。

    asc-cli 把 App Store Connect 的应用管理能力带进终端,让开发者能够用命令组织操作、接入脚本,并交给 AI 编程助手使用。这种体验吸引我的地方,是它让应用管理自然地进入了开发工作流。

    当我把同样的工作方式带到鸿蒙开发中时,发现自己还需要逐个查找 AppGallery Connect 接口、处理鉴权、整理参数,再把请求拼接起来。代码可以版本控制,构建可以脚本化,应用管理也值得拥有同样清晰的操作入口。

    所以,我做了 agc-cli:一个用 Go 编写、面向华为 AppGallery Connect 的开源命令行工具。

    它希望让开发者少做重复配置,把常用的应用管理操作变成可以保存、复用和组合的命令。

    开发效率,也取决于代码之外的工作

    维护一个鸿蒙应用,工作并不会在构建完成时结束。

    你还需要查看应用资料、核对多语言描述、管理测试用户、处理评论、请求报表。维护多个项目时,还要反复确认当前账号和应用 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。

    实际例子:把多语言资料查询写进项目脚本

    命令复用流程示意:凭据配置、命令调用、JSON 结果与脚本复用

    概念示意:整理凭据与常用命令,让查询结果进入可复用的脚本流程。

    假设你正在维护一个同时提供中文和英文资料的鸿蒙应用,需要定期读取两种语言的应用信息。

    可以把查询写成下面的脚本。先替换应用 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 提供清晰的接口

    agc-cli 接口示意:CLI 、本地 REST 和 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。

    1 replies  •  2026-10-07 09:25:17 +08:00
    shuiduoduo
        1
    shuiduoduo  
       2 days ago
    1000 万以内最好的终端
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3300 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:39 · PVG 19:39 · LAX 04:39 · JFK 07:39
    ♥ Do have faith in what you're doing.