
告别 Jenkins UI:jk 让 AI Agent 也能操控 Jenkins
TLDR
jk 是为 AI coding Agent 设计的 Jenkins CLI:附带配套的 SKILL,无需 MCP server,Agent 直接执行命令即可操作 Jenkins Pipeline。
引言
每次要触发一次 Jenkins 构建,流程大概是这样:打开浏览器,找到对应的 Pipeline,点「Build with Parameters」,填参数,提交,然后等页面跳转,再点进构建详情,再点「Console Output」——就为了看一眼日志。
如果 Pipeline 里有 input 步骤,还得盯着页面等它弹出来,手动点「Proceed」。
这套操作每天重复十几次,没什么技术含量,但每次都要用鼠标。
jk 是一个 Pipeline-native 的 Jenkins CLI,把上面这些操作都收进终端。它以 Jenkins 的 Job URL 作为操作对象,不需要额外配置 Job 名称或服务器路径——你浏览器地址栏里的那个 URL,直接拿来用。
为什么适合 AI Agent
相比通过 MCP server 接入 Jenkins,jk 对 AI coding Agent 更友好:
- 更少依赖:不需要启动额外的 MCP server
- 更低集成成本:直接调用命令,无需接入协议
- 更少失败点:没有协议层,调试更简单
- 更符合 coding Agent 工作流:Agent 本来就擅长跑命令、解析 stdout
- 更容易落地:脚本、CI、本地开发环境,装上就能用
仓库内置了一个 jk-jenkins-cli skill,专门教 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 名或配置别名:
- 顶层 Pipeline:
https://host/job/pipeline - Folder 内:
https://host/job/folder/job/pipeline - Multibranch 分支:
https://host/job/mb/job/main - 指定构建号:
https://host/job/pipeline/42 - 符号链接:
lastBuild、lastSuccessfulBuild、lastFailedBuild等
安装 & 快速上手
推荐用 Homebrew 安装:
brew install addozhang/tap/jk
也可以用 Go 直接安装:
go install github.com/addozhang/jk/cmd/jk@latest
或者从 Releases 页面 下载对应平台的二进制包。
配置凭证
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,欢迎试用和 Star。



