Forty-five skills cover search, analytics, and paid media
NotFair Plugin packages 45 procedures as readable SKILL.md files. They cover site and page audits, keyword work, metadata, structured data, local and international SEO, GEO, paid-media planning, and live account analysis. Each skill declares when an agent should use it, what inputs it needs, which actions require approval, and what output to produce. That makes review easier than a single hidden system prompt, and the MIT license permits teams to adapt the instructions.
The measured checkout had 661 files, roughly 66,729 lines of source, and occupied 4.7 MB. That size reflects more than prose. The repository includes scripts, references, manifests for several agent hosts, unit tests, LLM-judge evaluations, and an optional local goal application. A buyer should sample the exact skills they plan to run because quality can vary by workflow even when registration and policy tests pass.
One hosted MCP connects six named account platforms
The current README routes Google Search Console, GA4, Google Ads, Meta Ads, X Ads, and LinkedIn Ads through one NotFair MCP connection. Claude Code, Codex, Cursor, and Gemini CLI each have a documented installation path. Browser OAuth selects a NotFair workspace, after which the agent discovers the capabilities available for connected platforms. Repository-only audits can work without that account connection, which is useful for evaluating the writing before granting access.
Our install consumed 72 MB for 56 Python packages, a restrained dependency footprint for the repository checks. That number excludes an agent host, browser OAuth state, the hosted service, and any optional local application dependencies. A passing local setup therefore proves that the skill library can be validated; it does not prove that your Google or advertising accounts are connected, correctly scoped, or returning complete periods.
What happened when we ran it
Our sandbox installed the Python environment in 34 seconds, built the project in 9 seconds, and completed pytest in 11 seconds. Pytest reported 273 passed, 0 failed, and 15 skipped of 273 at commit daf87d3. Pip-audit found 0 known vulnerabilities in the installed packages. Those are clean repository mechanics, with no failure hidden behind a partial test result.
The run used a fresh unprivileged Python 3.12 Bookworm container with 3 CPUs and 8 GB of RAM. It did not connect to an advertising account, authorize OAuth, crawl a production site, or ask a model to execute a marketing workflow. The project had three CI workflow files and a tests directory, with no Dockerfile. Marketing correctness still needs a trial against representative inputs and a human review of every proposed account change.
Readable instructions still depend on the agent following them
A skill can tell an agent to compare complete date ranges, separate a proposal from a mutation, and avoid promising an unavailable connector. Those are good rules. They remain instructions interpreted by a model, so a team should keep approval and verification outside the model's discretion. The README itself says changes must stay within user authorization and be checked against resulting account state. For paid spend, that boundary belongs in operating procedure as well as prompt text.
The 273 passing cases cover the checked-out repository's automated suite, while 15 were skipped in our 11-second run. Neither figure is an accuracy score for SEO recommendations or ad decisions. Before adoption, choose two recurring tasks, save the source data, run the same prompts more than once, and compare the resulting actions with a senior operator's judgment. Instruction files make that audit possible because reviewers can point to the exact rule that needs changing.
Windows line endings can stop a required preflight
Issue 102 reports that bin/notfair-update-check, a required Bash preflight, can receive CRLF endings in a Windows checkout and fail before it runs. Pull request 116 adds line-ending rules and a regression check, but it was still open on September 8, 2026. Native Windows and WSL users should inspect whether that fix has landed or configure Git to preserve LF before treating installation as finished.
The same repository passed our 34-second Linux install and 11-second pytest run, so the Windows report is platform-specific rather than evidence of a general failure. Another open issue, 112, describes goal-agent provisioning treating a returned registration failure as success, which can leave required goal tools unavailable. Teams using the optional recurring-goal app should test failed registration and recovery, not infer that the clean core suite covers live provisioning.
Version 0.27.5 is active without a GitHub release
The repository's VERSION file and changelog identify 0.27.5, dated September 5, 2026. GitHub showed a last push that day, 3,667 stars, and 14 open issues and pull requests. New pull request activity appeared on September 8. The latest-release API returned no release, so updates are tracked through repository manifests and the changelog rather than a GitHub release page. The combined open count should not be read as 14 defects.
NotFair Plugin earns a trial because 56 dependencies installed cleanly, 273 executed tests passed, and the actual instructions can be audited. Its hosted data path and write-capable workflows deserve the same care as any account integration. Start with read-only work, inspect the selected skill, confirm the workspace and account, and require a human decision before spend or campaign state changes. Agencies should also settle client isolation before putting proprietary playbooks beside the shared 45-skill catalog.

