jit 是一个面向 JIT 的非交互式命令行工具,主要服务于 AI Agent 和脚本场景。
一期默认使用 PAT(jit_pat_*)作为鉴权方式,通过 Authorization: Bearer <token> 直接复用现有 JIT 后端接口。
仓库内置了一份给 Agent 使用的 jit skill,路径如下:
resources/skills/builtin/jit/SKILL.md
这份 skill 面向已经安装好 jit CLI 的 Agent 运行环境,约束 Agent 先查本地 help,再按 auth、app、element、model、service、api 等命令族选择正确命令,避免凭记忆臆造参数或查询语法。
如果任务涉及 TQL 或 Q 表达式,skill 还会引用同目录下的参考文档:
resources/skills/builtin/jit/references/tql-query-guide.md
如果你要把 JitCli 集成到自己的 Agent/技能系统,可以直接复用这套目录结构。
GoReleaser 预期产物如下:
jit-darwin-amd64.tar.gzjit-darwin-arm64.tar.gzjit-linux-amd64.tar.gzjit-linux-arm64.tar.gzjit-windows-amd64.zipjit-windows-arm64.zip
解压后执行:
chmod +x jit
mv jit ~/.local/bin/jitLinux/macOS:
curl -fsSL https://raw.githubusercontent.com/zjfjiayou/jit-cli/main/scripts/install.sh | shWindows PowerShell:
irm https://raw.githubusercontent.com/zjfjiayou/jit-cli/main/scripts/install.ps1 | iex可选安装环境变量:
JIT_CLI_REPO:仓库名,默认zjfjiayou/jit-cliJIT_CLI_VERSION:版本号,默认latestJIT_CLI_INSTALL_DIR:安装目录,默认 Unix 为~/.local/bin,PowerShell 为~/.local/bin
先在 JIT Web 个人中心创建 PAT,再执行登录:
jit auth login --server https://demo.jit.cn --app wanyun/JitAi --token jit_pat_xxx_yyy也可以通过 stdin 传入 token:
printf '%s' 'jit_pat_xxx_yyy' | jit auth login --server https://demo.jit.cn --app wanyun/JitAi查看当前身份:
jit auth whoami
jit whoami常用 profile 操作:
jit auth ls
jit auth use demo
jit auth use 0
jit auth logout --profile demo
jit auth rm demojit auth logout:只删除 profile 对应的 PAT,保留 profile 配置jit auth rm:删除整个 profile,包括配置、PAT 和本地缓存jit auth ls会按当前输出顺序给每个 profile 标注index,可直接用于jit auth use <index>
原始 API 网关调用,默认使用当前 profile 的 default_app:
jit api services/JitAISvc/sendMessage --data '{"assistantId":"a","chatId":"c","message":"hello"}'显式指定 app:
jit api auths/loginTypes/services/AuthSvc/listCliTokens --app wanyun/JitAi应用缓存与构建相关命令:
jit app refresh
jit app get
jit app ls
jit app build开发态元素源码命令:
jit element ls
jit element get services.ElementSvc --resources '["service.py","e.json"]'
jit element save services.DemoSvc --resources '{"service.py":"print(\"hi\")"}'
jit element apply --data @- < element-list.json
jit element build services.DemoSvc
jit element search ElementSvc
jit element knowledge services.ElementSvc服务快捷命令:
jit service ls
jit service ls --all
jit service ls --filter attendance
jit service call corps.services.AttendanceSvc getAttendanceColumns --data '{"corpFullName":"corps.Default"}'模型相关示例:
jit app refresh
jit model ls
jit model ls --all
jit model get wanyun.crm.Customer
jit model query wanyun.crm.Customer --filter 'Q("name", "=", "Alice")' --fields '["id","name"]' --order '[["id",-1]]' --page 1 --size 20 --app erp_demo/ErpApp
jit model create wanyun.crm.Customer --data '{"name":"Alice"}'
jit model update wanyun.crm.Customer --filter 'Q("id","=",1)' --data '{"name":"Bob"}'
jit model delete wanyun.crm.Customer --filter 'Q("id","=",1)'
jit model analyze 'Select([F("id"), F("name")], From(["models.Customer"]), Limit(0, 10))'jit model 说明:
jit model始终使用解析出的业务 app:若传入--app <org/app>则优先使用,否则回退到 profile 的default_app。- CLI 不再自行推导
JitAuth、JitORM这类兄弟应用,共享服务由后端继承机制负责解析。 jit model ls读取本地缓存的appInfo.js结果,默认只返回当前 app 自身的非 private 模型元素。- 传入
jit model ls --all时,会把extendApps中集成进来的模型也一起列出。 - 切换 app 或后端元素定义发生变化后,建议重新执行
jit app refresh。 jit model get仍然调用ModelSvc/getModelInfo,完整字段定义以后端接口为准。jit model query调用模型的aiQuery,适合读取明细列表;--filter传的是 Q 表达式字符串,--fields和--order传 JSON 数组字符串。jit model create、jit model update、jit model delete分别调用aiCreate、aiUpdate、aiDelete。jit model analyze通过ModelSvc/aiSelect执行 TQL 统计与分析查询。
jit service 说明:
jit service ls读取本地appInfo.js缓存,默认只列出当前 app 自身中非 private 且带有functionList的元素。- 传入
jit service ls --all时,会把extendApps中集成进来的服务也一起列出。 - 某些实际可调用的服务不会出现在列表里,例如来源于继承链、且在源 app 中被标记为
private的服务;这类服务仍可以通过jit service call或jit api直接调用。 jit service call仅在元素命中缓存时校验functionName;如果元素不在缓存中,则跳过预校验,最终以后端返回结果为准。- 切换 app 或后端元素定义发生变化后,建议重新执行
jit app refresh。
jit element 说明:
jit element面向部署了services.ElementSvc的开发态应用,用于元素源码读写、构建和检索。jit element ls调用ElementSvc/getElementTree,返回后端元素树,不依赖本地 appInfo 缓存。jit element get调用ElementSvc/getElementResource,按fullName读取元素源码资源;--resources和--ignore都传 JSON 字符串数组。jit element save调用ElementSvc/saveElementResource,写入单个元素的资源文件并触发元素构建;--resources是文件名到内容的 JSON 对象。jit element apply调用ElementSvc/saveElement,用于批量保存ePath/define/resources元素列表并统一构建。jit element build调用ElementSvc/buildElement,只构建指定元素;全量构建当前应用用jit app build。jit element search调用ElementSvc/searchContent,按正则检索应用源码内容。jit element knowledge调用ElementSvc/getElementKnowledge,读取元素面向 AI 的知识描述。- 破坏性裸文件操作(删除、重命名、批量替换等)不作为默认命令面暴露;确需使用时走
jit api明确调用。
全局参数:
--profile <name>--app <org/app>--jq <expr>--format json:一期仅支持 JSON--dry-run
0:请求成功,且后端errcode == 01:请求成功,但后端errcode != 0,属于业务错误2:CLI 侧错误,例如网络错误、鉴权失败、参数非法、profile 不存在等
jit api 会将后端原始响应输出到 stdout。
CLI 自身错误会以 JSON 形式输出到 stderr。
本地构建:
make build运行测试:
make test生成 GoReleaser snapshot:
make snapshot- 一期以 JSON 输出和脚本友好为主。
- 一期刻意不提供
--format table。 jit api不会再额外包一层 CLI 自定义响应结构。