关于 revenueos
RevenueOS 是面向企业的营收运营系统,可检查网站、广告、潜在客户和邮箱,提出行动方案,并在获批后执行和衡量结果。工作进程不能未经批准修改内容,结果依据实际观测记录。
主要功能
- 01检查网站、广告、潜在客户和邮箱
- 02提出待批准的行动方案
- 03执行获批的变更
- 04根据实时账户衡量结果
- 05网页面板与定时编排
适用场景
- 01发现网站和 SEO 待修复问题
- 02检查广告支出和推广表现
- 03起草客户联系内容并跟踪回复
- 04衡量获批工作完成后的变化
MCP 相关
Community 产品包含 MCP 服务。获批的工作通过统一执行路径交由执行器处理,但 README 未说明 MCP 工具的具体内容。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
RevenueOS
为单个企业打造的营收部门。它会读取你的网站、广告、潜在客户和邮箱, 将发现的问题整理成简短的行动清单,执行你批准的操作,并衡量 发生的变化。
连接一次。所有功能免费运行。认可结果后再付费。
手动运行永久免费,包括网页面板。按计划持续运行的费用为 每月 $99,且只有在衡量出你认可的结果并经过 14 天后才会收费。
开始使用 Pro · 价格 · 联系真人 (或发送邮件至 [email protected])
运行时证明 · 架构 · 安全与审批 · 集成 · 社区版与托管版 · 功能
功能
- 连接一次。 提供你的网站。它会补全其余信息,并标注每一项推测。
- 发现问题。 它会读取网站、广告导出数据或广告账户、潜在客户列表和邮箱,并将发现的问题整理为行动项。
- 审批。 未经你批准,任何内容都不会发生变化。
- 执行。 部署网站修复、暂停浪费预算的广告活动、发送邮件、预约通话、开具发票、发布帖子。
- 衡量。 它会重新读取实时账户,并在行动项旁记录变更前 → 变更后的情况。
- 付费。 只有在衡量出你认可的结果后才会收费。
用一条命令在你的网站上试用
uvx revenueos demo https://yoursite.com # nothing to install; or: pip install revenueos && revenueos demo …
无需账户,也不会保留任何数据:演示会在临时目录中创建工作区,并在退出前将其
删除。不过,这并非离线运行。它读取的页面会发送到你配置的模型,只有 --no-llm 才会让整个运行过程完全在本地进行。以下是
在中性域名上运行时的完整输出,未经改动:
RevenueOS demo — Example Domain (https://example.com)
1 pages crawled · ad/analytics tags: none · booking link: no · phones: none seen
1. MISSING DESCRIPTION — https://example.com
Page has no meta description.
→ RevenueOS writes the fix as a deliverable you approve, then re-checks the page.
2. THIN PAGE — https://example.com
Only ~127 characters of body text were extracted.
→ RevenueOS writes the fix as a deliverable you approve, then re-checks the page.
3. NO SITEMAP — https://example.com
No sitemap.xml was discovered at the host root or under the site path.
→ RevenueOS writes the fix as a deliverable you approve, then re-checks the page.
4. NO CANONICAL — https://example.com
The homepage declares no canonical URL.
→ RevenueOS deploys this fix itself once the site is connected (git or WordPress), then re-checks it.
4 finding(s). Everything above runs free, every day, once connected:
pip install revenueos && revenueos init --from https://example.com && revenueos serve
You pay only when you agree with a measured result.
在真实企业网站上运行同一条命令时,它还会读取主页,查找可点击的电话号码、 LocalBusiness 架构、预约链接和广告标记(Meta Pixel、Google Ads、GA4)。
若要改为从 CI 运行,只需添加一个步骤,然后查看作业摘要:
- uses: unempyd/revenueos@main
with:
url: https://yoursite.com
连接一次
revenueos init --from https://yoursite.com # the site fills the questionnaire; every inference is labelled
revenueos serve # TODAY / RESULTS / Connections / Spend on http://127.0.0.1:8791
连接是指你只需授权一次的账户:Stripe、Google(Search Console、GA4、 Calendar、Ads)、Meta Ads、由 git 托管的网站、WordPress。在你为某个连接启用 允许更改之前,所有连接都处于只读状态;即使启用了该选项,每项更改仍需你在 TODAY 中批准。请参阅 docs/integrations.md。
工作原理
四条规则共同支撑这一架构,并且都在代码中得到强制执行,也有测试覆盖:
- 工作进程绝不发送、发布或花费。它们只写入操作。
- 只有获批的操作才能进入执行器;而执行器要更改已连接的账户,还需要开启该连接的 允许更改 开关。否则,它会用一句直白的话拒绝执行。
- 有证据前,结果为
pending;根据证据,结果为measured或no_effect;如果无法衡量,则为unmeasurable,并附注说明需要什么才能进行衡量。绝不会凭空编造指标。 - 已生成但未发布的交付物会标记为
produced,绝不会报告为成功。
更详细的说明见 docs/architecture.md。
客户看到的内容


上方的运行记录和下方的简报来自一次针对真实公司公开网络信息的实时运行;过程仅执行读取操作,没有向任何人发送邮件。两者都不是模拟内容。
Workers
| Worker | 发现 | 执行(审批后) | 衡量 |
|---|---|---|---|
seo | 抓取缺陷、权威性差距、索引范围 | 对应的 SEO 技能;如果网站已连接,则执行 site_deploy | 重新抓取:是否已修复 |
ads-audit | 广告导出数据中的浪费、投放速度过快和预算集中情况;花费但没有转化且未被排除的搜索词;然后依据上游运行时契约执行完整的控制项审计(涵盖 12 个平台的 414 项控制项,其中 Google 有 97 项,Meta 有 72 项),仅凭证据判定通过或失败 | 对应的广告技能 | 下一次导出数据的变化;下一次搜索词检查;下一次审计时重新检查失败的控制项 |
ads-live | 在已连接的 Google Ads 和 Meta 账号中发现相同问题,以及关键词、质量得分、搜索词和否定关键词列表 | ads_pause、ads_budget | 下一次支出检查 |
analytics | 搜索流量与关键字分析中点击量下降的查询、GA4 渠道结果 | 标题和描述技能 | 下一次搜索流量与关键字分析检查 |
billing | Stripe 收入、MRR、客户、未结发票、付费订阅 | send_invoice | Stripe 付款状态 |
discover | 从潜在客户名单或外部客户开发服务中发现潜在客户,并通过资格审核门槛(企业邮箱、企业网站、真实公司名称;报告为已发现 · 可联系 · 符合资格) | 无 | 通过外联衡量 |
outreach | 根据你的业务规范撰写首次联系草稿,并在发送前根据实时页面重新核实 | 在每日上限、抑制名单和退订页脚的约束下发送 | 回复数、已预约数、销售管道金额 |
inbox | 邮箱中的回复、退信和 STOP 请求 | 无 | 为外联结果提供数据 |
intake | 将你自己的 PDF、Word、Excel、PowerPoint、CSV 和 RTF 文档放入 data/inbox/documents/,完全在你的机器上读取,并将表格保留为行;使用模型时,找出文档中与业务规范矛盾或可补充其缺漏的内容 | 将建议的修正记录到 learning-loop/CORRECTIONS.md,之后每个 Worker 的提示词都会读取该文件——Worker 永远不会编辑 company-context/ | 不直接衡量:规范修正会体现在受其影响的工作中,并附注记录为 unmeasurable |
content | 与你的渠道相匹配的内容工作;如果你的渠道之一是视频渠道,则提供简短的视频简报 | 交付内容,然后在获得第二次审批后通过 publish_post 发布到 WordPress;render_video 会将已审批的简报渲染为 data/outputs/ 中的 MP4/WebM | 在线 URL 上的已发布状态由 0 → 1;渲染后的视频标记为 produced (not published) |
monitor | 通过默认拒绝相关性门槛的 Hacker News 讨论串 | 无 | 无 |
growth | 你自己的渠道的外部采用数据:GitHub 流量、PyPI 下载量、网站可访问性 | 无 | 记录为带有变化值的指标 |
heartbeat | 你的目标状态:待处理、已审批但未运行、已衡量、失败或受阻的事项 | 无 | 每次运行写入一条带日期的事件 |
measure | 无 | 无 | 记录上述每项结果 |
revenueos orchestrator 会按计划运行各 Worker(data/automations.json)。
revenueos serve 提供与 Web 面板相同的界面,包括密码会话、入门引导、
简报和结果台账。
哪些已得到验证,哪些尚未验证
该表说明了代码会做什么,但这与实际观察到它执行这些操作并不是一回事。 证据并不均衡,了解自己依赖的是哪一行很重要。日期和记录: docs/proof.md 和 docs/integrations.md。
| 路径 | 状态 | 证据 |
|---|---|---|
| 网站修复已部署并测量 | 已实测运行 | site_deploy 向线上网站推送了两次提交;页面在 20 s 内带上了这两个标签;canonical_present 0 → 1 和 local_schema_present 0 → 1(2026-09-13) |
| 内容交付物 | 已实测运行 | 对一家真实公司的真实爬取,批准了一项机会,执行了技能,deliverable_written 0 → 1(2026-09-12) |
| Stripe | 已实测读取 | 线上账户:0 位客户,MRR 为 0.00 AUD,过去 30 天收入为 0.00 AUD;创建并删除了一张发票草稿;关闭允许更改后,同一调用遭到拒绝 |
| Google Search Console | 已实测读取 | 验证了资源,然后 revenueos run analytics 返回过去 28 天内有 0 次点击和 0 次展示(2026-09-13) |
| 邮箱 | 已实测运行 | inbox 读取了一个线上 IMAP 邮箱;book_call 发送了一份真实的日历邀请。尚未向任何人发送外联邮件 |
| 托管式、多租户 | 已实测运行 | 同一主机上有两个账户,各自绑定到自己的工作区;未登录或密码错误时返回 401 |
| Google Ads 和 Meta Ads 读取 | 尚未在线验证 | 所有请求格式都只针对模拟端点进行了测试。要实测运行 Google Ads,必须满足两个条件,且都与代码无关:默认不会请求 adwords 范围(revenueos connect google --scopes identity,searchconsole.read,analytics.read,calendar.write,ads.read 会请求该范围),并且必须从 Google Ads 管理账户的 API Centre 申请开发者令牌。ads-live 会指出缺少的前提条件并拒绝执行,而不是显示 401。对导出的 CSV 使用 ads-audit 是另一条更简单的路径 |
| GA4 | 未读取 | 被测网站未配置 GA4 资源 |
RevenueOS 有 0 位客户,收入为 $0。 上述各行记录的是产品执行工作并将其记录下来,而不是任何人付费购买的业务成果。RevenueOS 报告的每个数字都是它实际观察到的。若它无法观察某种效果,就会如实说明,而不会估算。
审批、权限与诚信
工作进程只会查看并提出建议。无论操作是通过 CLI、面板还是 MCP 触发,获批操作上的 execute 都是唯一的执行关口。唯一可能向陌生人发送邮件的路径受到每日发送上限、持久化抑制列表、List-Unsubscribe 标头、对 STOP 回复的处理以及 CASL 身份识别页脚的限制。REVENUEOS_DRY_RUN=1 会将每封待发送邮件写入 data/outputs/,而不是通过 SMTP 发送。
凭据分为两类,这一区别很重要:
- 来自环境变量,不会存储。 模型密钥、邮箱密码(
SMTP_PASSWORD、IMAP_PASSWORD)、面板密码、工作进程令牌和连接器密钥都从进程环境中读取,绝不会写入工作区。 - 存储在磁盘上,因为它们必须在进程结束后仍然可用。 连接的机密信息以 mode 600 写入
data/connections.json:Stripe 密钥、Google 和 Meta OAuth 访问令牌与刷新令牌、WordPress 应用程序密码。只有设置REVENUEOS_TOKEN_KEY后,这些信息才会在静态存储时加密。若未设置该变量,它们就会以明文存放在该文件中,任何能读取该文件的对象都可以读取,包括备份或同步客户端。请设置该变量,或接受相应风险。限制损害范围的是服务提供商的权限范围和允许更改开关;该开关默认关闭,直到你手动开启。
面板在没有密码的情况下拒绝绑定到非回环地址。它不进行遥测,也不会向外发送信息。提示词只包含所选的一部分业务准则,以及当前处理的那一项内容,绝不会包含完整准则或整个数据库。详见 docs/security-and-approval.md 和 SECURITY.md。
认同结果后再付费
Community 免费、采用 MIT 许可,且就是完整产品:包括所有工作器、控制面板、连接和执行器、能力目录(13 个包、790 项技能、104 个 Agent 定义、64 个连接器 CLI)、MCP 服务和 Claude Code 插件。它不是试用版;在你看到结果之前,不会开始计时。
所有功能都可免费运行,包括持续运行,直到 RevenueOS 在你批准的操作上测得结果。之后还会继续免费运行 14 天。之后只有一项功能需要 Pro(99 美元/月):持续运行的 revenueos orchestrator。单次运行、所有工作器和控制面板永远不会锁定。许可证密钥由 Ed25519 签名并离线验证;密钥缺失、过期或未签名时,会安全地退回 Community。
软件唯一实施门控的就是这项许可证检查。Business 和 Agency(每月 299 美元和 999 美元)是我们为你运行和支持 RevenueOS 的服务安排,并非更大的功能集:多品牌工作区、多用户、CRM 同步、集中式分析、客户群组、白标报告和 API 均不存在,本仓库中的任何内容也不会对它们实施门控。为这些服务付费前请先咨询。完整说明: docs/community-vs-hosted.md。
安装
pip install revenueos # or: uv tool install revenueos
revenueos init --from https://yoursite.com # or `revenueos init` for the questionnaire
revenueos run all # every worker once
revenueos today # the brief
revenueos approve 1 && revenueos execute 1
revenueos run measure && revenueos results
revenueos serve # the same surface as a web panel
或者运行已发布的镜像,无需 Python 工具链:
docker run --rm -v "$PWD/data:/app/data" ghcr.io/unempyd/revenueos:latest revenueos doctor
docker compose pull && docker compose up orchestrator panel # always-on, panel on 127.0.0.1:8791
从源代码安装:
git clone https://github.com/unempyd/revenueos && cd revenueos
uv sync && (cd orchestrator && npm install)
uv run revenueos init
要求:Python 3.12+;调度器和连接器 CLI 还需要 Node 20+。
如果有大模型可用,系统就会使用。RevenueOS 会按顺序尝试,并在服务提供商受到速率限制、过载或无法访问时自动切换到下一个:ANTHROPIC_API_KEY,然后是已登录的 Claude Code CLI,接着是通过 REVENUEOS_LLM_BASE_URL + REVENUEOS_LLM_MODEL 指定的任意 OpenAI 兼容端点。revenueos doctor 会显示尝试顺序以及哪些端点可访问。若这些选项都不可用,确定性功能仍会运行:网站爬取及其发现结果、广告导出浪费、投放节奏和集中度检查、搜索词浪费、潜在客户筛选、收件箱回复和退信、模板化外联草稿、内容匹配以及所有测量。有四项功能确实需要大模型,系统会如实说明,而不会假装可以运行:执行器运行技能的任何操作(SEO、内容和广告交付项)、414 项控制的广告审计、monitor 中的相关性门控,以及专业角色。网站部署、暂停广告系列、发票、预订和发送电子邮件都不需要大模型。
在会话之间持续工作
RevenueOS 会为业务保存一个目标(revenueos objective add "…"、入职流程中的最后一个问题,或工作区根目录下的 MANDATE.md)。每 30 分钟调度一次的心跳工作器会读取该目标的状态:有哪些待处理事项、哪些事项已获批准但尚未运行、测量了哪些结果、哪些事项失败及原因、哪些事项受阻以及如何解除阻碍。它每次运行都会写入一条带日期的事件、设定下一步操作,并且仅在需要人工处理时才给你留言(revenueos messages,或 TODAY 上的收件箱区块)。它不会发送、发布或花费任何费用。
专业角色(revenueos agent run research|marketing|sales|measurement "<task>")每个回答一个问题,并提供引用证据;它们最多可以向下拆分两层子任务,但只能提出操作建议,这些建议会像其他事项一样显示在 TODAY 上。每项测得的结果都会成为一条带日期的经验(revenueos learn、learning-loop/LESSONS.md),并注入后续提示词。除专业角色外,以上所有功能都无需大模型;若专业角色无法使用大模型,会明确说明,而不是给出答案。
集成
网站爬取、Hacker News、广告平台导出(CSV)、潜在客户列表 CSV、SMTP 和 IMAP 邮箱、上文列出的连接、通过环境变量配置的 64 个连接器 CLI(分析、CRM、电子邮件、SEO、广告、数据丰富),以及可选的外部潜在客户开发服务。请参阅 docs/integrations.md。
MCP 服务
uvx --from "revenueos[mcp]" revenueos-mcp 会通过 stdio 将 RevenueOS 作为 MCP 服务运行,供
Claude Desktop、Claude Code、Cline 或其他 MCP 宿主使用——通过与 CLI 相同的工作器提供 12 个工具。llms-install.md 是 Agent 无需本地克隆即可完成设置所需的最简说明;mcp/README.md 提供完整参考。
部署
Dockerfile、docker-compose.yml(编排器、面板、可选 TLS 代理)和 deploy/
(运行手册、Fly.io、Railway、冒烟测试)。请参阅 deploy/README.md。
开发
uv sync --extra dev --extra mcp && uv run pytest -q # runs green
(cd orchestrator && npm test && npm run typecheck)
uv run ruff check src tests
RevenueOS 是一个组装而成的项目,并非全新代码库。大部分功能来自固定版本的上游仓库,而
src/revenueos/ 中的代码负责连接各部分:业务上下文、存储、编排、审批界面、衡量和计费。请勿编辑
src/revenueos/vendor/、skills/、agents/ 或 tools/ 下的任何内容;这些内容由
scripts/vendor.py 重新生成。请参阅 CONTRIBUTING.md。
隐私
完整政策:https://unempyd.github.io/revenueos/privacy.html。简要说明如下, 依据代码的实际行为编写,而非套用模板:
RevenueOS 是可自托管的软件,不是一项服务。 你在自己的机器或
服务器上运行它。RevenueOS 项目不运营任何后端,不会接收你的数据副本,也无法访问你的工作区。没有遥测、使用情况报告、崩溃报告或任何形式的分析。产品中的任何功能都不会调用由 RevenueOS 运营的主机:
许可证使用 HMAC 签名密钥,并由 billing.py 在本地验证,因此许可过程也不会联系任何服务器。(2026-09-14,通过枚举已发布代码树中的每个外发主机字面值和每种网络原语——httpx、urllib、socket、smtplib、imaplib、subprocess,包括 src/revenueos/——进行验证。)
只有在你进行配置后,以下内容才会离开你的机器:
| 目的地 | 时间 | 发送内容 |
|---|---|---|
你的模型提供商——api.anthropic.com(ANTHROPIC_API_KEY)、已登录的 Claude Code CLI,或你通过 REVENUEOS_LLM_BASE_URL 设置的 OpenAI 兼容端点 | 任何由模型支持的步骤 | 工作器提示词:你的 company-context/ 规范内容、近期 learning-loop/CORRECTIONS.md 条目,以及正在分析的材料——页面文本、广告导出行、潜在客户行、电子邮件草稿、从文档中提取的文本。REVENUEOS_LLM=off 时不会向任何模型发送内容 |
| 你自己的网站,以及你指定给工作器的任何 URL | init --from、demo、seo、measure | 普通 HTTPS GET 请求 |
hn.algolia.com、hacker-news.firebaseio.com | monitor | 你的搜索种子 |
api.ahrefs.com(免费域名评级端点) | seo | 你的域名和你配置的竞争对手域名 |
overpass-api.de 及其镜像站,以及找到的商业网站 | discover 公共数据潜在客户来源 | 地理位置/类别查询 |
api.github.com、pypistats.org | growth | 公开仓库/软件包名称 |
| 你连接的账户:Stripe、Google(Ads、Search Console、Analytics、Calendar)、Meta、WordPress、GitHub Pages | 仅在运行 revenueos connect 后 | 在该提供商自身隐私政策约束下,对该账户进行 API 调用 |
| 你的 SMTP/IMAP 主机 | 执行外联操作时;inbox | 你批准的电子邮件;读取你的邮箱。取消设置 SMTP_PASSWORD 或设置 REVENUEOS_DRY_RUN=1,发送内容会改为写入 data/outputs/ |
| PyPI | 仅安装时 | 常规软件包下载 |
| 存储了什么,存在哪里——全部都在你的磁盘上,不会存到其他任何地方: | ||
company-context/(业务规范,纯 Markdown)、revenueos.yaml(网站、竞争对手、渠道、发件人身份、SMTP/IMAP 主机和用户名——密码从环境变量读取,绝不会写入文件)、data/revenueos.db(SQLite:操作、潜在客户及其联系详情、邮件草稿和发送记录、回复、结果、指标、文档)、data/exports/(你放入的 CSV 文件)、data/outputs/、data/reports/、data/documents/、logs/ 和 learning-loop/CORRECTIONS.md。已连接账户的凭据存放在 data/connections.json 中,文件权限为 0600;除非你设置了 REVENUEOS_TOKEN_KEY,否则凭据将以明文保存;设置后,凭据会使用 Fernet 加密。在托管模式下,accounts.json(权限同样为 0600)会存储邮箱和经过 200,000 轮 PBKDF2-HMAC-SHA256 处理的密码哈希。 |
你放入 data/inbox/documents/ 的文档会完全在进程内由纯 Python 库(intake.py)解析:不会上传,不会使用转换服务,也不会调用外部二进制程序。文件本身绝不会离开本机。只有提取出的文本会发送给你的模型提供方,而且只有在配置了凭据时才会发送。摄取工作进程不会修改 company-context/——它会将 correction 操作加入队列,供你审批。
**作为运营者,你需要承担的责任:**你是数据控制方。这包括:确保联系你导入的潜在客户具有合法依据,尊重退订请求(RevenueOS 会维护抑制名单并附加 CASL 页脚,但履行相关义务是你的责任),保护主机和工作区目录,在 data/connections.json 中的数据对你很重要时设置 REVENUEOS_TOKEN_KEY,以及遵守模型提供方对你发送给它的内容所规定的条款。
删除数据意味着删除文件:移除工作区目录,或删除 data/ 下的单个文件。revenueos disconnect <provider> 会删除该提供方存储的令牌。请保留 unsubscribes 表——删除它会导致外联再次联系已要求停止联系的人。
营销网站(website/,发布于
https://unempyd.github.io/revenueos/)是静态网站:没有分析脚本、Cookie、浏览器存储或第三方请求。GitHub Pages 负责提供该网站并保留自己的日志。
许可证
RevenueOS 采用 MIT 许可证(LICENSE)。其中包含采用宽松许可证的开源组件,其许可证已列于 NOTICE.md,并收录在 THIRD_PARTY_LICENSES/ 中。每个随附文件的来源信息(精确到上游提交)均记录在 VENDOR.json 中。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。