核心概念

几个核心观念,解释了 OmniPost 的行为方式。

一个分发层,而不是内容生成器

OmniPost 从不撰写内容。它接收已准备好的标题与 Markdown 正文,负责有状态、易出错的那部分:平台账号、格式化、草稿、发布、定时与记录。把生成与分发分开,意味着你可以更换模型或编辑器,而不影响发布的可靠性。

一核四接口

只有一个发布内核。一切都通过 127.0.0.1:8787 上的本地 HTTP API 与它通信:

  • 桌面界面 —— 面向人工:分发、记录、定时任务、账户(订阅)以及接入指南等标签页。
  • HTTP API —— 仅限本机访问(非本机请求返回 403),用于你自建的集成。
  • CLI —— 面向脚本,以及不走 MCP 的 Agent。
  • MCP —— 面向 Claude Code、Codex 等 Agent。

因为共用一个内核,四种接口永远不会彼此脱节。

目标:平台 + 账号

你可以用三种方式指定分发目标,可组合并自动去重:

  • platforms —— 某平台上全部已登录账号。
  • targets —— 具体某个账号,如 csdn:defaultcsdn:a2
  • groups —— 你保存的一组命名账号集合。

三种模式:草稿、发布、定时

  • 草稿 是安全默认——内容在平台上暂存,不公开。
  • 发布 尝试真正发文,仅在支持自动发布的平台上有效。
  • 定时 保存内容快照与目标列表,到点自动发布。

诚实的结果

OmniPost 绝不伪造成功。每个目标都会返回结构化结果,带有 stagedraftpublished),并在被跳过或失败时给出原因 code。仅支持人工发布的平台会创建草稿并返回 MANUAL_PUBLISH 及编辑器链接——它不会假装内容已上线。完整结果模型见发布

真实、隔离的浏览器会话

对于没有开放 API 的平台,OmniPost 通过一个真实的 Electron 浏览器窗口登录(由你自己操作),并在平台自己的页面上下文中执行发布请求——使用真实的 Cookie、TLS 与来源,而非脆弱的浏览器插件。每个账号都在自己独立的存储分区中,因此你可以同时并存多个账号。

默认本地

账号、记录、定时、分组、策略与授权都存放在 ~/.omnipost/ 下。登录 Cookie 保存在本机隔离的浏览器分区中。平台调用直接从你的机器发往各平台。

免费版与专业版

免费版覆盖一组核心开发者平台、少量账号与草稿功能。正式发布、Agent 自动化、定时任务与账户分组为专业版功能。 具体限制见发布