CLI

ATM CLI 将桌面端的操作能力暴露为终端命令,适用于脚本化与无头环境。

安装

ATM 装好之后,把二进制软链到 PATH:

# 全局
ln -sf /Applications/ATM.app/Contents/MacOS/atm /usr/local/bin/atm

# 或者用户目录
mkdir -p ~/.local/bin
ln -sf /Applications/ATM.app/Contents/MacOS/atm ~/.local/bin/atm

桌面 UI 在 Settings → CLI 里也有一键安装器。

验证

atm --help

应该打出顶层命令清单。如果 command not found,软链目标错了或软链不在 $PATH

命令

atm

不带参数 = 打开桌面端(同 atm open)。

atm status

打印一次性状态快照:

  • 网关状态(Running / Stopped)。
  • 已发现 Agent 数。
  • 各路由当前 Agent 数。
  • 最近请求时间戳。

应用健康时退出码 0,否则非零。适合 shell prompt 或监控脚本。

atm gateway

打印网关当前状态。不带参数等同于 atm status 过滤到网关信息。

atm gateway restart

重启网关,加载运行期保存的策略和 Provider 变更。鉴权 key 是实时生效的,不需要重启。

atm dashboard --json

把 dashboard 数据导成机器可读 JSON:路由、最近请求、最近用量。便于接到监控工具。

atm dashboard --json | jq '.routes'

atm agents list

列出 Agent。

  • --enabled — 只列已启用(路由已绑)的。
  • --all — 包括未启用 / 未扫描的。
  • --json — 输出 JSON 而非格式化表格。

atm key issue

终端签 key。镜像 POST /api/keys/issue

atm key issue \
  --agent-name my-agent \
  --agent-type generic_agent \
  --policy-id default

keyValue 打到 stdout。粘贴板:

atm key issue --agent-name my-agent --agent-type generic_agent --policy-id default | pbcopy

keyValue 只显示一次。丢了重新签发。

atm usage rescan

强制全量重扫所有本地历史扫描器。等同于 UI 点 Rescan,但无头。

atm providers list <agent>

列出指定 Agent 的所有兼容 Provider。

atm providers list codex

atm doctor

跑 ATM 内置诊断:

  • 配置文件存在并能解析。
  • 数据库完整性。
  • 网关端口没被别的进程占。
  • 已知扫描路径可达。

打总结报告,全好退出 0,否则非零。出问题时第一个该跑的命令。

示例

在 shell 里冒烟测整个网关

atm gateway restart
sleep 1

KEY=$(atm key issue --agent-name shell-test --agent-type generic_agent --policy-id default \
  | grep '^keyValue:' | cut -d' ' -f2)

curl -s -X POST http://127.0.0.1:4317/v1/chat/completions \
  -H "Authorization: Bearer $KEY" \
  -H 'Content-Type: application/json' \
  -d '{"messages":[{"role":"user","content":"pong"}]}' | jq

atm dashboard --json | jq '.recent_requests | .[-1]'

在 shell prompt 里嵌 atm status

# zsh
atm_status() {
  if atm status --quiet 2>/dev/null; then
    echo "%F{green}atm%f"
  else
    echo "%F{red}atm%f"
  fi
}
PROMPT='$(atm_status) %~ %# '

results matching ""

    No results matching ""