CLI

CLI 命令

City 与 Fed 的常用命令

CLI 命令

Agent

city agent                         # 打开 Agent 面板
city agent create [path]           # 不传路径:当前目录或系统文件夹选择窗口
city agent list
city agent start [agent_id]
city agent stop [agent_id]
city agent restart [agent_id]
city agent status [agent_id]
city agent doctor [agent_id]
city agent model [agent_id]
city agent chat [agent_id]
city web                         # 启动本地 City Web 控制面
city web --no-open --port 43128  # 不自动打开浏览器并指定端口

city agent start 装配的 Agent 默认启用 ask_question Tool。在 city agent chat 中,模型需要关键补充信息时会显示文本、单选或多选面板;CLI 将完整答案 提交给当前 Session,并继续同一个 Turn。按 Esc 可停止当前 Turn。

在输入框中可以使用 slash command 打开系统文件选择器并添加本地附件:

/attach

附件会加入下一条消息;也可以使用 /file 别名。Unix 终端的 Ctrl-V(Windows 为 Alt-V)会优先尝试粘贴剪贴板中的图片或文件,无法识别时仍按普通文本粘贴处理。

单 Agent Token

Token 只属于一个 Agent,并可访问该 Agent 的全部非公开 HTTP API。没有 User、Role 或 Permission 层。

city agent token list [agent_id]
city agent token create [agent_id] --name automation
city agent token create [agent_id] --name temporary --expires-at 2026-08-01T00:00:00Z
city agent token delete <token_id> [agent_id]

Plugin

city plugin list 会展示每个 Plugin 的标题、稳定名称、具体用途说明、来源和版本。

city plugin list
city plugin install <local-directory|git-url|github:owner/repo#ref>
city plugin update <plugin_name>
city plugin uninstall <plugin_name>
city plugin inspect <plugin_name>
city plugin enable <plugin_name> [agent_id] --config '{"key":"value"}'
city plugin disable <plugin_name> [agent_id]
city plugin config <plugin_name> [agent_id]
city plugin config <plugin_name> [agent_id] --set '{"key":"value"}'
city plugin config <plugin_name> [agent_id] --interactive
city plugin config <plugin_name> [agent_id] --resources '["resource-id"]'
city plugin resource list <plugin_name>
city plugin resource create <plugin_name> --set '{"type":"api","api_key":"secret"}'
city plugin resource create <plugin_name> --interactive
city plugin resource update <plugin_name> <resource_id> --set '{"type":"api","api_key":"new-secret"}'
city plugin resource refresh <plugin_name> <resource_id>
city plugin resource remove <plugin_name> <resource_id>
city plugin action <plugin_name> <action_name> [agent_id] --input '{"key":"value"}' --token <token>

第三方入口命名导出 plugins constructor 数组。每个 Plugin 通过 static manifest 声明名称、配置和 Resource Schema,并可通过 static resolve_resource 补全动态 Resource 字段。构建产物必须包含 Manifest v2 downcity.plugin.json 和自包含 ESM entry。安装过程不会执行 npm install、构建脚本、生命周期脚本或 Plugin entry。

Plugin 配置由 Agent Binding 持有;Plugin Resource 由全局 Resource Store 持有,Binding 只保存 resource_ids。CLI 根据 Schema 安全收集用户字段,调用 Plugin constructor 的静态 Resolver 写入 readOnly 动态字段,并在实例化前把 ID 解析成完整 Item。CLI 最终执行 new PluginType({ config, resources })writeOnly 字段会加密保存,且不会在 CLI 输出中回显。

resource update --set 替换全部用户可写字段;resource refresh 保留用户字段,只重新计算 Resolver 字段。已被 Binding 引用的 Resource 不能删除;仍拥有 Resource 的第三方 Plugin 不能卸载。

修改 enable、disable、config 或 Resource Binding 后,正在运行的 Agent 需要重启,新的 Runtime 装配才会生效。

CLI、Agent plugin_call、HTTP 与定时任务统一调用 Plugin Action。不存在 plugin command,Chat 也不再是顶层命令特例。

Env 与 Federation

city env                                      # 打开 Env TUI
city env list --global
city env list --agent <agent_id>
city env set <key> <value> --global
city env set <key> <value> --agent <agent_id>
city env delete <key> --global
city env delete <key> --agent <agent_id>
city federation

Global Env 写入 ~/.downcity/.env;Agent Env 写入其 Workspace 根目录的 .env。也可以从 city agent 的“配置 Env”入口管理选中 Agent。修改完成后,City 会通知受影响的运行中 Agent 重新加载 Env,并通过 Workspace 将新快照广播给已有 Session;已停止 Agent 会在下次 启动时加载。

多个 Agent 绑定同一 Workspace 时共享同一个项目 .env。运行时优先级为:Global .env 低于 Workspace .env,启动进程显式环境变量最高。list 不显示明文值;copy 只允许从 本机 CLI 显式执行。

Fed

fed                              # Federation Server 管理 TUI
fed web                         # 启动当前 Federation 的本地 Web 管理 UI
fed web --no-open --port 43128  # 启动但不自动打开浏览器
fed server add
fed server manage
fed bureau token                          # 打开 Bureau Token 管理 TUI
fed bureau token issue <bureau_id>        # 输入用途并请求 Federation 签发 Token
fed bureau token list
fed bureau token revoke <token_id>
fed query GET /health
fed create [dir]
fed deploy [source]

fed web 默认在 http://127.0.0.1:43128 启动本地控制面。它读取当前 active Federation,也可以用 --federation <name-or-url> 显式选择。管理员会话 Token 只由本地 CLI 进程持有,不会发送到浏览器;为避免把 Federation 管理控制面暴露到网络,该命令只允许监听 127.0.0.1localhost::1。页面包含 Dashboard、用户、Bureau、模型、Env、 Credits、Usage、支付、Service 目录与调试器。分析区进一步分为数据概览、用户活跃、 Usage 消耗、用户留存、调用质量和用户明细。

Usage Dashboard 以浏览器所在 IANA 时区统计:日活是今日产生至少一次 AI Usage 的去重 用户,周活和月活分别是滚动 7 天与 30 天去重用户。用户用量页展示所有注册用户,包括 零用量用户;默认按 Total Tokens 降序排列,与总览的 Token 消耗排行使用相同口径,也可按 调用数、Credits、P95 耗时与最后活跃时间排序。每个用户同时展示 Input、 Output、Total Token、成功率、Top Model、平均/P95 耗时和已入账 Credits 消耗。图表包含 DAU/WAU/MAU 折线、24 小时活跃柱状图、Token 堆叠图、模型与 Action 分布、执行结果与 耗时趋势,以及 D1/D3/D7/D14/D30 Cohort 留存表和漏斗。