Anythink CLI 是 Anythink 无头后端平台的官方命令行界面,面向开发者与创业者,让用户在终端中完成对后端项目的管理。Anythink 平台本身提供关系型数据与行级安全、搜索、RBAC、工作流、增长与留存工具以及支付能力,该 CLI 覆盖平台的主要操作。
主要能力
- 账户与项目:signup、login、logout 为交互式操作,首次运行会引导连接计费账户和项目;billing accounts 管理计费账户(一个计费账户包含一个或多个项目并持有订阅与支付信息);projects 创建和管理项目,每个项目是独立的后端实例,拥有自己的数据库、认证、文件和工作流;config 查看和管理 CLI 配置文件,可用 projects use 在多个项目间切换。
- 实体与字段:entities 管理项目中的实体(数据库表),fields 管理实体字段,字段直接映射为数据库列。
- 数据操作:data 提供记录级 CRUD;data list 支持过滤操作符;data export 按页流式导出到文件,data import 每行创建一条记录,导入前应先用 --dry-run 校验。
- 搜索:跨实体全文搜索,并支持索引生命周期管理;search rehydrate 从数据库重建索引,search purge 删除索引,search audit 检查公开搜索数据泄露(检测到泄露时退出码为 1,可用于 CI/CD)。
- 工作流:workflows 管理自动化工作流,触发器可以是 cron 计划、实体事件、API 路由或手动运行。
- 用户与文件:users 管理项目用户;files 管理已上传文件。
- 邮件:查看和编辑事务邮件模板(确认、邀请、恢复等)以及包裹所有邮件正文的 HTML shell。
- 角色与 API 密钥:roles 控制已认证用户可访问的内容;api-keys 为 CI 管道、脚本、集成等非交互访问签发和管理密钥,密钥含权限范围、有效期,并与创建者绑定,原始密钥仅在创建时显示一次,之后无法取回。
- 菜单、图表与仪表板:menus 管理仪表板侧边栏菜单;charts 构建和预览图表;dashboards 管理由图表、列表、备注等小部件组成、采用 12 列网格布局的仪表板。
- 项目设置与集成:settings 查看和修改项目设置,包括允许浏览器调用 API 的 CORS 来源;integrations 管理可用提供商目录(Claude、OpenAI、Slack、Google 等)及其凭据连接。
- 支付与订阅:pay 管理 AnythinkPay,包括 Stripe Connect、Apple 应用内购买、支付、订阅计划与实时订阅。
安装方式
- Homebrew(macOS / Linux,推荐):同时安装 anythink CLI 和 anythink-mcp(MCP 服务器)到 PATH,也可先 tap 再安装,可更新到最新版本。
- 下载二进制(macOS / Linux):从 Releases 页面获取对应平台的最新版本,MCP 服务器为同一发布中匹配平台的 anythink-mcp-<platform> 二进制;可用 checksums.txt 校验下载。
- .NET 全局工具:需要 .NET 8 SDK。
- 从源码构建。
配置与使用 凭据和项目配置保存在 ~/.anythink/config.json,配置按项目别名或 ID 命名,可通过 projects use 切换。
数据导入导出的细节(依据资料)
- 过滤操作符(JSON 形式):{"field": value} 精确匹配,{"field": [a, b]} 匹配任意一个,{"field": null} 匹配空值;其他情况使用操作符对象,如 {"price": {"gte": 10, "lt": 100}}。
- CSV 遵循 RFC 4180:含逗号、引号或换行的单元格会加引号,引号会双写,带引号的单元格可跨行;对象、数组、JSON 字段和关系以紧凑 JSON 文本写入。
- 公式防护(导出):以 =、+、-、@、制表符或回车开头的 CSV 文本会被加上前缀 ',避免被电子表格当作公式执行;数字不受影响,包括 +44 20 7946 0000 这类电话号码。该防护是单向的:导入该文件时会保留 ',除非导出时使用了 --no-formula-guard。
- 类型按实体字段处理:文本保留精确字符(00123 仍是 00123);整数和小数要求以 . 为小数点(1,5 会被拒绝,不会猜测);布尔接受 true/false、1/0、yes/no;日期须为 ISO 8601(2025-03-31、2025-03-31T09:30:00Z,无偏移量按 UTC);JSON 字段须为合法 JSON。
- 空 CSV 单元格作为 null 发送;JSON 与 JSONL 输入中的空字符串保持为空字符串。
- 错误行会被跳过而不会发送,并报告行号(CSV 为记录号,表头为第 1 行;JSONL 为行号;JSON 为数组位置)并计入 skipped;服务器拒绝的行计入 failed。有任何跳过或失败时退出码非零。
- 重试:400、409、422 永不重试,避免重复创建;仅 429/503 响应和从未到达服务器的请求(DNS、连接或 TLS 失败)会重试。超时或发送后连接断开时,该行会被报告为 UNCERTAIN: may have been created,需在重新导入前检查项目。
- 系统列在导入时被忽略:id、created_at、updated_at、tenant_id、locked 永不发送,导入会说明忽略了哪些;把导出文件重新导入同一项目会创建新 id 与时间戳的重复记录,不会更新原记录。
- 一对多集合和秘密字段在导入时跳过;除非在 --fields 中指定,一对多列不会导出;多对多、文件和用户列以 id 复制,仅在同一项目内有意义,导入时每列警告一次。
- 空布尔单元格作为 null 发送而不是 false。
- Ctrl+C 会停止读取文件、完成已排队的行并打印部分摘要(退出码 1);被中断的导出会删除临时文件。
- data import 和 data export 读写本地文件,因此不通过托管(HTTP)MCP 服务器提供。
适用场景 适合希望通过终端统一管理后端项目、实体与数据、工作流、用户、文件、邮件模板、角色、密钥、仪表板、集成与支付的开发者;也适合在 CI/CD 中使用 search audit 做公开搜索泄露检查、用 api-keys 做非交互访问。
限制与注意事项(依据资料)
- 暂不支持:按键更新或 upsert 已有记录、按自然键查找关系(需使用相关记录的 id)、文件上传。
- 通过 MCP 服务器时,文件相关选项不提供,agent 需以 content_text、wrapper_text、html_text 内联传入 HTML。
- 部分命令会要求确认(如取消、删除、过期、重新关联、暂停等),可用 -y / --yes 跳过;非交互式 shell 中不带该参数会拒绝运行。
- 修改部分设置(如将 default_role_id 指向管理员角色)需 --yes;allow_registrations 为 true、require_email_confirmation 为 false 时会要求确认。
- CORS 来源必须是带主机和可选端口的 http/https,无路径、查询或片段,尾部 / 会被去除;共享托管域名(vercel.app、github.io 等)或裸 TLD 下的通配符会被拒绝,除非传入 --yes。
- 邮件 HTML 上限为 1,000,000 字符。
- 原始 API 密钥仅创建时显示一次,无法再次获取。
分类说明:该工具是 Anythink 平台的命令行接口,属于 AI 开发平台范畴。