Syndroo文档
网站GitHub概览

CLI 参考

本地工作流有三个一级命令:syndroo connect、syndroo publish 和 syndroo status。可选的 syndroo server 命令族用于部署和操作由用户自己拥有的 Cloudflare Worker。重试是 syndroo publish 的一种模式,而 syndroo status 中的查询是只读的。站点发布时,本页的每条命令和每个参数都会对照已构建的 CLI 检查。

全局参数

这些参数会在命令之前解析,因此放在命令行任意位置都可以,并且绝不会传给命令。

参数含义
--config选择本地配置文件。路径必须为绝对路径。Server 命令改用 server --project <directory>。
--json输出一个 JSON 信封,并且从不提示。
--verbose加入完整标识符和经过审查的安全诊断信息。诊断写入 stderr,因此 stdout 仍只包含一个 JSON 文档。
--no-color禁用人类可读输出中的颜色。NO_COLOR 具有相同效果。
--help显示整个 CLI 或单个命令的用法。
--version输出已安装版本和运行它的 Node.js 版本。

重复一个全局参数属于用法错误,而不会静默采用最后一个值。单独运行 syndroo 会输出相同用法,以退出码 0 结束,并且不读取配置、不创建任何状态。

syndroo connect

syndroo connect [options] [provider]

启动、继续或维护一个连接。每次运行只能使用一种模式:位置参数提供商会启动连接;--update 和 --disconnect 维护现有连接;--input 读取完整请求文档。

参数含义
--label为连接命名。
--connection重新连接或刷新现有连接 ID。
--from-env从 SYNDROO_CREDENTIALS 读取凭证。
--credential-file从一个私有 JSON 文件读取凭证。
--update修改连接的标签或默认标记。
--disconnect删除一个已保存的连接。绝不会撤销平台凭证。
--input读取机器请求文档;- 从标准输入读取。
--redirect-uri <uri>选择 CLI 自行绑定的 OAuth 重定向地址。默认值是预先可注册的回环 URI;CLI 在该主机、端口和路径上提供服务并接收一次重定向,这需要控制终端。
--callback-url <url>使用浏览器最终到达的 URL 完成重定向。- 从标准输入读取;包含 code 或 state 的 URL 会在命令行上被拒绝。
--default将连接标记为默认目标。
--no-default清除默认标记。

--from-env 与 --credential-file 互斥,继续请求只能从标准输入接受。仍需输入的连接步骤会报告待处理动作并以退出码 0 结束,不会阻塞;在终端中,同一次运行会提示输入提供商声明的字段。对于 OAuth 提供商(linkedin、threads 和 mastodon),--redirect-uri 指定 CLI 自行绑定的回环回调,--callback-url - 从标准输入接收重定向 URL;这条本地回调路径只针对本地服务器做了模拟测试。

syndroo publish

syndroo publish [options]

准备、执行或重试一次发布。必须且只能提供一个输入来源;type 为 execute 的请求只能从标准输入传入。

参数含义
--input从文件读取请求文档;- 从标准输入读取。
--data内联提供请求文档。绝不能在此放置凭证。
--retry重试较早操作中符合条件的目标。
--to指定要重试的连接。可重复,每个目标一次。
--request-id为本次逻辑调用提供稳定身份。
--dry-run仅预览:不写状态、不解析凭证、不发起网络请求。
--yes自动确认当前进程刚刚准备的冻结意图,不再提示。

--to 需要配合 --retry,而 --dry-run 会拒绝重试。重试目标必须符合条件:结果为 unknown 的投递绝不会重试。

syndroo publish --retry <operationId> --to <connectionId> --yes --json

在终端中,已准备的文档会显示冻结预览并询问 Publish to N accounts? [y/N/v]。接受的回答是 y 或 yes、n 或 no,以及 v 或 view:只有明确的 y 会执行当前进程刚刚签发的令牌;n、no、空行或输入结束会取消且不发送;其他回答不构成授权,会再次询问。v 或 view 会展开完整冻结预览并再次询问;它从不重新读取或重新准备输入,也从不延长确认窗口,窗口期限在第一次提示前已固定,并在之后每次回答时重新计算。准备后编辑输入文件不会改变将发送的内容。审批过期、连接绑定变化或提供商变化时,旧令牌会被拒绝,绝不会复用于它未被冻结覆盖的内容或账号。--yes 跳过提示,但不跳过冻结意图检查:它不会重新签发凭证,不会绕过身份绑定、过期、提供商验证或幂等规则,也不会进行第二次准备。配合 --dry-run 时它保持离线。显式 execute 请求已经携带自己的授权,因此 --yes 不会增加任何作用;重试会准备所选符合条件的子集,--yes 会确认并执行同一份冻结重试。

执行会报告真实进度,而不是猜测。每次观察都是已保存操作在提交后的一次投影,并在其描述的写入之后回读,所以进度行绝不会显示尚未持久记录的状态。目标按顺序串行运行:第一个目标正在发布时,排在后面的目标仍显示等待;每个目标只会在自己的持久写入落地后改变状态。

终端能够安全重绘时,进度块会隐藏光标并原地重绘;其他情况下,它会变成追加日志,只追加实际发生变化的行,最后以完整结果和摘要结束。正常结束和中断都会恢复光标,并移除尺寸变化与中止监听器,因此无论哪种方式都不会破坏终端可用性。

使用 --json 时完全没有实时进度块:stdout 不会收到进度、提示或转义序列,从而只保留一个信封。冻结预览和确认提示写入控制终端,而不是 stdout,因此重定向后的 stdout 永远不会成为输入答案的位置;--json 从不提示,--yes 自动确认,而不带 --yes 的人工准备需要可写控制终端。没有控制终端时会报告待处理结果并以退出码 0 结束,而不是阻塞在无人可回答的读取上,或根据无人看到的答案发送。

默认的人类可读视图对每个目标最多显示三行内容和两行原因,并给出一条建议的下一步;它会隐藏内部 ID 和确认窗口。--verbose 会加入这些内容,并且仅在已记录过期时间时输出过期行。失败、只发送了一部分、结果为 unknown 或尚未完成的目标,每个操作只需一条查询命令,而不是每个目标一条:syndroo status --operation <operationId> --verbose。unknown 与 not_started 不同:未知写入可能已到达平台,绝不会自动重试;从未开始的目标则显示为未发送。

syndroo status

syndroo status [options]

只读。它从不创建状态根目录、不获取写入锁、不读取机密,也不联系平台。未提供选择器时返回概览。

参数含义
--provider查询一个提供商;也可以筛选 --connections。
--connections列出已保存的连接。
--operation按 ID 读取一个操作。
--operations分页读取最近的操作摘要。
--limit--operations 的分页大小,范围为 1 到 100。
--cursor用于下一页 --operations 的不透明游标。

--connections、--operation 和 --operations 互斥,--provider 不能与任一操作选择器组合,而未使用 --operations 却传入 --limit 或 --cursor 属于用法错误。

syndroo server

server init 会固定 @syndroo/[email protected] 和 @syndroo/[email protected],并安装项目本地 Wrangler。该工作流只在模拟环境中测试过,尚未进行真实 Cloudflare、GitHub、Meta 或 Threads 验收。npm 发布和产品部署是彼此独立的发布操作。

从项目运行,或使用 syndroo server --project <directory> <command> 明确选择项目。部署会复用现有 Wrangler 登录,不会启动登录流程。部署服务器指南涵盖前提条件、授权和完整的首次运行步骤。

命令作用
syndroo server init [directory]创建受版本跟踪的配置、固定包清单和锁文件、示例帖子及首次本地 Git 提交。--github OWNER/REPO 还会创建并推送仓库;默认私有,只有明确选择时才公开。
syndroo server doctor运行只读的项目、工具和部署检查。它不修复项目,也不证明 OAuth 或发布已就绪。
syndroo server deploy --yes在用户授权目标后,创建缺失的自有资源并部署 Worker。
syndroo server connect threads --app-id APP_ID完成 Threads OAuth 并保存经过验证的连接引用。App Secret 使用隐藏输入、THREADS_APP_SECRET 或 --app-secret-stdin。
syndroo server ci setup github --repo OWNER/REPO --yes安装手动 Publish to Threads 工作流并配置限定范围的 GitHub 环境,但不提交、不推送、也不发布。
syndroo server publish threads --input FILE --request-id REQUEST_ID --yes --json使用限定范围的 CI 令牌发布一个严格 { "text": string } 文档。复用请求 ID 可恢复同一逻辑发布。

退出码

退出码描述本地调用,而不是平台。退出码 0 仍可能表示等待授权或预览尚未执行。

代码含义
0已按文档处理。结果仍可能需要确认或授权。
1内部或持久化故障。副作用未知。
2用法、配置、认证或预检拒绝。未发送任何内容。
4写入可能已到达提供商,但结果未知。
5用户在确认步骤中明确拒绝。未发送任何内容。
6执行已经结束,并确认没有完全成功。
130本地进程因信号终止。服务器端工作未取消。