$git clone https://github.com/nowork-studio/NotFairGoal-driven, loop-powered marketing agents that crush your business goals 24/7 — on your own machine.
| 1 | # NotFair |
| 2 | |
| 3 | [](https://discord.gg/gVJCRczpps) |
| 4 | |
| 5 | **Goal-driven, loop-powered marketing agents that crush your business goals 24/7 — on your own machine.** |
| 6 | |
| 7 | Stop babysitting dashboards. State an ambition in plain language: |
| 8 | |
| 9 | > *"Grow organic clicks 30% in 90 days."* · *"Cut CAC to $30."* · *"Keep wasted ad spend at $0."* |
| 10 | |
| 11 | NotFair gives each ambition a dedicated agent that turns it into a **server-verified metric with a measured baseline**, agrees a target with you in chat, and then runs a disciplined improvement loop against it — measure, score its past moves against what they predicted, make one new move, log the prediction, repeat on your cadence. Around the clock, whether you're watching or not. Goals are the only thing you name, see, and manage; the agents behind them are invisible plumbing. |
| 12 | |
| 13 | It runs entirely on your machine, on top of the [Claude Code](https://docs.claude.com/en/docs/agents-and-tools/claude-code/overview) or [Codex](https://github.com/openai/codex) login you already pay for — no new subscription, no hosted runtime, no API keys to manage. Your data lives in a local SQLite file. Open source, MIT. |
| 14 | |
| 15 | ```bash |
| 16 | npx notfair@latest |
| 17 | ``` |
| 18 | |
| 19 | ## See it work |
| 20 | |
| 21 |  |
| 22 | |
| 23 | This is a live **"Organic web clicks +30%"** goal — one screen holds the whole loop: |
| 24 | |
| 25 | - **The plan is measured before it's agreed** (center): the agent verified the metric in Search Console, the platform reproduced it server-side — baseline **59 clicks** over the latest 28 finalized days — and it backfilled 30 days of history so the chart starts with a trend, not a dot. Then the proposal, in numbers: target `77`, deadline `2026-10-11`, daily 9am checks, `$0` spend envelope. The user replies *"Confirmed — record it."* and the loop is on. |
| 26 | - **The number that matters** (right): clicks at **76** against the target of **77**, with the target line on a time-true chart, the cadence spelled out — next check in 12h, 17 checks so far — and **$0 of $0 spent**. |
| 27 | - **The receipts** (right rail, below the chart): every check is a diary entry. Checks 15–17 are honest no-ops: *"metric measured and recorded; the agent was not woken — 2 actions are still inside their observation window."* The loop doesn't fake activity; it waits for its own experiments to mature. Filter to "Action taken" to see only the checks that changed something. |
| 28 | - **The whole operation** (left): achieve goals ("Organic web clicks +30%", "X Ads CPA < $47") next to maintain watchdogs ("X impressions → steady") that hold a number forever. At the bottom: the harness it's riding — your existing Codex plan, with usage visible. |
| 29 | |
| 30 | No approval inbox, no task board, no thread management. You chat with a goal when you have something to say; otherwise the loop runs and the chart tells you how it's going. |
| 31 | |
| 32 | ## How a goal works |
| 33 | |
| 34 | 1. **State the ambition.** Type it in your own words and optionally tag a platform focus (SEO, Google Ads, Meta Ads). NotFair provisions an anonymous agent for the goal — agent = goal, 1:1 — and drops you into a chat where it is *already working*. |
| 35 | 2. **The agent makes it measurable.** It explores your connected data sources, authors a metric query that returns one number, and tests it. Then the platform **re-runs the exact query server-side** — only a reproducible number with a measured baseline goes on the books. The agent also backfills ~30 days of history so your chart has context from day one. |
| 36 | 3. **You confirm the plan — the loop starts on the spot.** The agent reports the baseline and proposes a target, cadence, and spend envelope. The moment you confirm in chat, the goal goes live and the first check runs immediately. Two modes: **achieve** (reach the number, then done) and **maintain** (hold it there forever — a watchdog). |
| 37 | 4. **The loop runs on your |