Listex 是一个面向 Listex/Yocal 城市平台的 Rust 命令行工具,基于该平台 v2 API 提供对城市内容与邮件工作流的管理能力。官方定位是让智能体优先使用已安装的二进制文件,而不是手写 HTTP 调用,因为 CLI 已处理认证、城市 slug 解析、请求信封与分页。
用途与主要能力
覆盖城市平台的多类资源:城市(cities)、职位(jobs)、房源(homes)、新闻(news)、活动(events)、用户提交的城市建议(tips)、邮编与人口统计(zip-codes,只读)、街区(neighborhoods)、城市榜单(listicles)、地点(places)和内容页面(content-pages)。此外还提供邮件相关能力:受众(audiences)、按城市配置的 MJML 邮件模板(email-templates)、广播(broadcasts)以及每周城市通讯工作流(weekly)。
安装与配置
优先使用 PATH 中的 listex(通常位于 ~/.local/bin/listex)。若缺失,可从发布版安装:curl -fsSL https://raw.githubusercontent.com/agoodway/listex/main/cli-rust/install.sh | sh。也可从本地仓库的 cli-rust/ 目录构建:cd cli-rust && just release && LISTEX_LOCAL_BIN=./target/release/listex ./install.sh。Windows 使用 install.ps1,同样支持 LISTEX_LOCAL_BIN。安装后可用 listex --version 与 listex configure show 确认。
配置存储在 ~/.listex.json(Windows 为 %USERPROFILE%.listex.json),支持多环境并兼容旧版 Zig 二进制。通过 listex configure set --env dev --base-url http://localhost:4000/api/v2 --api-key <key> 等方式设置环境,基础 URL 必须包含 /api/v2 前缀;首个添加的环境成为默认,可用 configure use 切换,也可用全局 --env 按次覆盖。configure show 会遮蔽 API 密钥。
使用方式与约定
需要解析结果时使用 --json,裸输出是供人阅读的表格。不同资源的请求信封不同:多数 create/update 需要包裹(如 {"job": {...}}),但 homes 使用扁平 JSON、content-pages 要求精确的 {"content_page": {...}}。城市选择器为 UUID 或带州后缀的 slug(如 deltona-fl),不接受裸 slug;部分命令(neighborhoods、listicles、places、email-templates)每次操作都需要 --city。--data 支持内联 JSON、@文件或 stdin。生命周期变更(publish、archive、unpublish、enable/disable、feature/unfeature、status、set-default)使用专用动词,不能通过 update 设置状态字段替代。分页参数为 --page 与 --per-page(默认 20,最大 100)。退出码 0 表示成功,1 表示其他情况。每个命令的详细帮助以 listex help <command> 为准。
安全与限制
广播测试、广播发送、每周通讯发送、各类删除等操作不可逆或会联系真实用户,执行前必须在对话中获得用户明确确认。--confirm 应由用户授权,不能由工具自行添加;命令因缺少 --confirm 失败时应报告用户而非重跑。删除前应先展示记录,广播前应列出受影响范围。避免打印完整 API 密钥。创建职位、新闻或活动前应先用 match 子命令检查重复。