RevenueOS – 等待您批准的开源收入自动化系统
RevenueOS – open-source revenue automation that waits for your approval

原始链接: https://github.com/unempyd/revenueos

RevenueOS 是一个开源的“收入部门”,通过发现、批准和执行的循环为您的业务实现增长自动化。通过连接您的网站、广告账户、CRM 和电子邮件,RevenueOS 可以识别可执行的改进方案,例如修复 SEO 问题、暂停表现不佳的广告或草拟销售推广内容。 **工作原理:** 1. **发现:** 对您的数字资产进行审核,并生成一份建议执行清单。 2. **批准:** 在您审查并批准特定项目之前,系统不会执行任何操作。 3. **执行:** 一旦批准,系统将自动执行修复(例如更新网站代码、发送电子邮件或调整广告预算)。 4. **衡量:** 记录“执行前后”的结果,确保您仅为验证过的成果付费。 该平台对单项任务及在结果衡量与批准前的持续运行是免费的。在 14 天的宽限期后,持续的自动化运行需要订阅 Pro 会员(99 美元/月)。该平台高度重视安全性,所有操作在获得人工批准前均保持在“待处理”状态。您可以通过命令行(`pip install revenueos`)开始使用,或将其集成到现有工作流程中,以自主处理 SEO、广告、账单和潜在客户筛选等任务。

RevenueOS 是一款开源且可自托管的工具,旨在实现营收相关任务的自动化,同时优先保障人工控制权与数据完整性。用户只需运行一条命令(`revenueos demo [url]`),即可识别网站问题(如缺失架构标记或规范标签)并触发自动修复。 该项目遵循严格的“人在回路”(human-in-the-loop)理念:未经用户明确批准,不会执行任何更改、部署或外联工作。此外,该软件在其代码中强制执行“诚实规则”,以防止指标虚报,例如在没有有效联系信息的情况下拒绝判定潜在客户,并对 AI 生成的内容进行错误检查。 目前版本为 0.2.4,RevenueOS 旨在通过避免合成指标并保持所有流程的可审计性,为业务自动化带来透明度。用户可通过 `pip` 安装该工具并完全掌控其工作流。开发者仅在工具交付了可验证且经用户认可的结果后才会进行商业化。该项目采用 MIT 协议开源,可在 GitHub 上获取。
相关文章

原文

RevenueOS

Runtime proof · Architecture · Security & approval model · Integrations · Community vs Hosted · Capabilities

RevenueOS is a revenue department for one business.

  1. Connect once. Give it your website; it fills in the rest and labels every guess.
  2. Discover. It reads the site, your ads, your leads and your mailbox and turns what it finds into a short list of actions.
  3. Approve. Nothing changes until you approve an action.
  4. Execute. It deploys the site fix, pauses the wasting campaign, sends the email, books the call, raises the invoice.
  5. Measure. It re-checks the world and records before → after next to the action.
  6. Pay. Nothing is charged until it has measured a result you agreed with.
Connect once → Discover → Approve → Execute → Measure → (agree) → Pay

Try it on your site in one command

pip install revenueos
revenueos demo https://yoursite.com

No account, and nothing is kept: the demo builds a workspace in a temporary directory and deletes it before it exits. (If a model is configured, the pages it reads are sent to that provider; --no-llm keeps it entirely local.) It prints what is costing the site customers and which of those fixes RevenueOS deploys itself once connected. Run on the neutral example domain, exactly as printed:

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.

On a real business the same command also reads the homepage for tappable phone numbers, LocalBusiness schema, booking links and ad tags (Meta Pixel, Google Ads, GA4), and the Watch-it-work view streams each check as it runs.

Run the demo from GitHub, no install

Add one step to any workflow and read the job summary:

- 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

Connections are accounts you authorise once — Stripe, Google (Search Console, GA4, Calendar, Ads), Meta Ads, a git-hosted site, WordPress — read-only until you flip allow changes. Every change still waits for your approval on TODAY. Details and the runtime proofs: docs/integrations.md.

Pay when you agree with the result

Everything runs free: every worker, the panel, the executors. When RevenueOS has measured a result on an action you approved, it keeps running free for 14 more days, then continuous operation asks for Pro ($99/month). One-shot runs and the panel never lock. There is no trial clock that starts before you have seen a result.

RevenueOS TODAY: the opportunities found for the connected business, each with Approve / Execute / Ignore

RevenueOS RESULTS: what was executed and the measured outcome

Both screens come from a real run against a real business (see below); nothing in them is mocked.

On 2026-09-12 RevenueOS was connected to Plausible Analytics using only its public web presence (read-only; no email sent), then run end to end:

Stage What happened
Discover 12 pages crawled, competitor authority checked, Hacker News searched with a strict relevance gate, 6 content opportunities queued
Approve → Execute one opportunity approved; Claude executed the RevenueOS SEO content-brief skill in 1 m 23 s and produced a 14 KB deliverable
Measure the outcome deliverable_written 0 → 1 was recorded and shown in RESULTS

The full transcript, including what it did not find and why, is in docs/proof.md. RevenueOS reports opportunities found, actions executed, execution time and measured outcomes. It does not claim revenue it has not measured.

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 on http://127.0.0.1:8791

From source:

git clone https://github.com/unempyd/revenueos && cd revenueos
uv sync && (cd orchestrator && npm install)
uv run revenueos init

Requirements: Python 3.12+, Node 20+ (scheduler and connector CLIs). An LLM is used if present — ANTHROPIC_API_KEY, otherwise a signed-in Claude Code CLI. Without either, the deterministic half of the product still runs: the site crawl and its findings, the ad-export waste, pacing and concentration checks, search-term waste, lead qualification, inbox replies and bounces, templated outreach drafts, content matching, and all measurement. What does need a model, and says so rather than pretending: executing any action whose executor is run_skill (the SEO, content and ads deliverables), the 414-control ads audit, monitor's relevance gate, and the specialist roles. Site deploys, campaign pauses, invoices, bookings and email sends need no model.

Worker Discovers Executes (after approval) Measures
seo crawl defects, authority gap, indexing surface the matching SEO skill re-crawl: fixed or not
ads-audit wasted spend, over-pacing, concentration in ad exports; search terms that spend, convert nothing and are not excluded (drop Google's keyword and search-term downloads beside the export); then the full control audit: 97 Google / 72 Meta controls (414 across 12 platforms) evaluated under the upstream runtime contract, pass/fail only with evidence the matching ads skill next export delta; the next search-term read; a failing control re-checked by the next audit
ads-live the same on connected Google Ads / Meta accounts, with keywords, quality scores, search terms and negative-keyword lists read from Google Ads; wasting campaigns become pause / budget actions ads_pause, ads_budget next spend read
analytics Search Console queries losing clicks, GA4 channel results the title/description skill next Search Console read
billing Stripe revenue, MRR, customers, open invoices send_invoice Stripe paid status
discover prospects from lead lists or an external prospecting service, through the qualification gate (business email + website + real company; reported as found · contactable · qualified) via outreach
outreach first-touch drafts from your canon sends (daily cap, suppression list, unsubscribe footer) replies, booked, pipeline value
inbox replies, bounces and STOP requests on your mailbox feeds outreach outcomes
content content work matched to your channels Claude produces the deliverable; publishes it to WordPress after a second approval published 0 → 1 on the live URL
monitor Hacker News threads that pass a strict relevance gate
measure records every outcome above

revenueos orchestrator runs the workers on a schedule (data/automations.json); revenueos serve is the control panel with password sessions, onboarding, the brief and results.

It keeps working between sessions

RevenueOS holds an objective for the business (revenueos objective add "…", the last onboarding question, or a MANDATE.md at the workspace root that the heartbeat reads and the orchestrator reports on /health) and a heartbeat worker, scheduled every 30 minutes, that reads the state of that objective: what is pending, what was approved and not yet run, what was measured, what failed and why, what is blocked and what would unblock it. It writes one dated event per run, sets the next action, and leaves a message for you only when a human is needed (revenueos messages, or the "Inbox from RevenueOS" block on TODAY). Nothing in it sends, publishes or spends.

Specialised roles (revenueos agent run research|marketing|sales|measurement "<task>") answer one question each with cited evidence, may spawn sub-tasks two levels deep, and can only propose actions, which land on TODAY like every other one. Every measured outcome becomes a dated lesson (revenueos learn, learning-loop/LESSONS.md) that is injected into the next prompts; role specs are refined by small evidence-backed edits with snapshots and rollback (revenueos refine <role> …). Any of this works without a model, except the roles, which then say so instead of answering.

RevenueOS Community (free, MIT): everything — every worker, continuous operation, the control panel, connections and executors, the capability packs (13 packs, 790 skills, 104 agents, 64 connector CLIs), the MCP server and the Claude Code plugin — free until RevenueOS has measured a result you approved, then 14 more days.

RevenueOS Pro ($99/month) keeps continuous operation on after that. A signed licence key, emailed after payment, unlocks it. That is the whole difference in the software today: the licence check gates one thing, revenueos orchestrator running continuously. Business and Agency ($299 / $999 per month) are the arrangement under which we run and support RevenueOS for you; the multi-brand, multi-user and fleet features named on the pricing page are not built yet and nothing in this repository gates them. Ask before paying for those. Details: docs/community-vs-hosted.md.

Workers never send, publish or spend — they only write actions. Only an approved Execute acts, and it is bounded by a daily send cap, a suppression list, List-Unsubscribe and reply-STOP handling. Provider keys and mailbox passwords come from the environment and are never written to the workspace. The one exception is a connection you authorise: its tokens (a Stripe key, Google/Meta OAuth tokens, a WordPress application password) are stored in data/connections.json at mode 600, and are encrypted at rest only when you set REVENUEOS_TOKEN_KEY — without it they are readable by anything that can read the file. The panel refuses to bind a public address without a password. See docs/security-and-approval.md and SECURITY.md.

Website crawl, Hacker News, ad-platform exports (CSV), lead-list CSVs, SMTP/IMAP mailboxes, 64 connector CLIs (analytics, CRM, email, SEO, ads, enrichment) keyed by environment variables, and an optional external prospecting service. See docs/integrations.md.

Dockerfile, docker-compose.yml (orchestrator, panel, optional TLS proxy) and deploy/ (runbook, Fly.io, Railway, smoke test). See deploy/README.md.

RevenueOS is MIT-licensed. It includes permissively licensed open-source components, listed with their licences in NOTICE.md and reproduced in THIRD_PARTY_LICENSES/. Provenance of every included file is recorded in VENDOR.json.

uv sync --extra dev --extra mcp && uv run pytest -q
(cd orchestrator && npm test && npm run typecheck)
uv run ruff check src tests

See CONTRIBUTING.md.

联系我们 contact @ memedata.com