
jk 是为 AI coding Agent 设计的 Jenkins CLI:附带配套的 SKILL,无需 MCP server,Agent 直接执行命令即可操作 Jenkins Pipeline。
每次要触发一次 Jenkins 构建,流程大概是这样:打开浏览器,找到对应的 Pipeline,点「Build with Parameters」,填参数,提交,然后等页面跳转,再点进构建详情,再点「Console Output」——就为了看一眼日志。
如果 Pipeline 里有 input 步骤,还得盯着页面等它弹出来,手动点「Proceed」。
这套操作每天重复十几次,没什么技术含量,但每次都要用鼠标。
`jk`[1] 是一个 Pipeline-native 的 Jenkins CLI,把上面这些操作都收进终端。它以 Jenkins 的 Job URL 作为操作对象,不需要额外配置 Job 名称或服务器路径——你浏览器地址栏里的那个 URL,直接拿来用。
相比通过 MCP server 接入 Jenkins,jk 对 AI coding Agent 更友好:
仓库内置了一个 jk-jenkins-cli skill[2],专门教 Agent 如何正确使用 jk——涵盖失败构建的诊断流程、input 步骤的处理规范,以及哪些命令只读、哪些需要用户明确确认的安全分类。比如面对生产环境的 input 步骤,skill 明确规定 Agent 不能自动 proceed,必须先检查 pendingInput 详情再请求用户确认——这类判断 CLI 本身表达不了,需要 skill 来承载。
jk 覆盖了 Pipeline 操作的几个高频场景:
查看 Pipeline 信息
jk pipeline info https://jenkins.example.com/job/my-pipeline
输出 Job 基本信息与参数定义,YAML 格式,方便脚本解析。
触发构建
# 触发并等待结果,退出码反映构建状态
jk build trigger https://jenkins.example.com/job/my-pipeline --watch
# 带参数触发
jk build trigger https://jenkins.example.com/job/my-pipeline -p ENV=prod -p VERSION=1.2.0 --watch
--watch 会阻塞直到构建完成,退出码直接反映构建状态:0 表示 SUCCESS,1 表示 FAILURE,2 表示 UNSTABLE,3 表示 ABORTED,4 表示 PENDING_INPUT,>=10 表示 jk 自身错误——Agent 可以直接用 $? 判断下一步怎么走。
实时跟踪日志
jk build logs -f https://jenkins.example.com/job/my-pipeline/lastBuild
类似 tail -f,构建运行中实时输出,构建结束自动退出。
响应 input 步骤
# 直接 proceed
jk build input https://jenkins.example.com/job/my-pipeline/lastBuild proceed
# 带参数 proceed
jk build input https://jenkins.example.com/job/my-pipeline/lastBuild proceed -p DEPLOY_TARGET=production
Pipeline 里等待人工确认的步骤,现在可以用命令触发,由脚本或 Agent 判断是否 proceed。
URL 即身份
jk 支持多种 URL 形态,不需要记 Job 名或配置别名:
https://host/job/pipelinehttps://host/job/folder/job/pipelinehttps://host/job/mb/job/mainhttps://host/job/pipeline/42lastBuild、lastSuccessfulBuild、lastFailedBuild 等推荐用 Homebrew 安装:
brew install addozhang/tap/jk
也可以用 Go 直接安装:
go install github.com/addozhang/jk/cmd/jk@latest
或者从 Releases 页面[3] 下载对应平台的二进制包。
配置凭证
jk auth add https://jenkins.example.com
按提示输入用户名和 API Token,凭证保存在 ~/.config/jk/credentials,权限 0600。后续所有命令自动读取,不需要每次带认证参数。如果 Jenkins 用了自签名证书,可以设置 SSL_CERT_FILE 指向 PEM 文件,或者临时加 --insecure 跳过验证。
跑一遍典型流程
# 触发构建,等结果
jk build trigger https://jenkins.example.com/job/deploy/job/main --watch
# 退出码 4 = 卡在 input,执行 proceed
jk build input https://jenkins.example.com/job/deploy/job/main/lastBuild proceed
# 实时看日志
jk build logs -f https://jenkins.example.com/job/deploy/job/main/lastBuild
三条命令,覆盖了日常 90% 的 Pipeline 操作。
jk 不是要替代 Jenkins,而是把 Jenkins 的操作界面从浏览器搬到终端。对于每天和 Pipeline 打交道的工程师来说,少几次鼠标点击不是目的,真正的价值是让 Jenkins 操作可以进入脚本、进入 Makefile、进入 AI Agent 的工具链。
对 AI coding Agent 来说,jk 加上 skill,是目前最轻量的 Jenkins 接入方案。
Jenkins 还没打算消失,但操作它的方式可以现代化一点。
项目地址:github.com/addozhang/jk[4],欢迎试用和 Star。
参考资料
[1]
jk: https://github.com/addozhang/jk
[2]
jk-jenkins-cli skill: https://github.com/addozhang/jk/tree/main/skills/jk-jenkins-cli
[3]
Releases 页面: https://github.com/addozhang/jk/releases
[4]
github.com/addozhang/jk: https://github.com/addozhang/jk