Home / Course / Operator quickstart

Operator

Operator quickstart · install + first dry run

5 min read · gets you from zero to "watched the agent decide what it would do".

Prerequisites

  • Python 3.11+ — check with python3 --version.
  • uv (fast Python package manager) — install once: curl -LsSf https://astral.sh/uv/install.sh | sh on macOS/Linux, or powershell -c "irm https://astral.sh/uv/install.ps1 | iex" on Windows.
  • An Anthropic API key — sign up at console.anthropic.com, $5 in credit lasts you weeks of testing.
  • That's it for the dry run. You'll need Facebook + Clickbank/Digistore24 credentials only when you go live.

Step 1 · Download & install

  1. Drop your email on the home page to unlock the download (tar.gz for Linux/macOS, zip for Windows).
  2. Unpack to a folder you'll remember. Example: ~/projects/affiliate-operator.
  3. Open a terminal in that folder.
cd ~/projects/affiliate-operator
uv sync                              # installs all dependencies into ./.venv
playwright install chromium          # one-time browser binary download

If uv sync fails on a dependency, the error message will tell you which package; usually a missing system library. On Ubuntu: sudo apt install python3-dev build-essential. On macOS: nothing extra needed.

Step 2 · Configure secrets

cp secrets.env.example secrets.env
$EDITOR secrets.env

For the dry run, only one variable is required:

ANTHROPIC_API_KEY=sk-ant-your-key-here

Leave every other variable blank or commented out. The operator will skip tools that need missing credentials and ask you what to do.

Step 3 · Build the RAG index

The operator's knowledge of the playbook lives in a local vector database built from the course transcripts and module SOPs. One-time build:

python -m orchestrator.rag build

Takes ~3 minutes on a normal laptop. Embeds with bge-small-en-v1.5 (downloaded automatically the first time). Output lives in ./agent_system/knowledge/chromadb/.

Step 4 · First dry run

python -m runners.full_pipeline \
    --niche "blood sugar" \
    --network clickbank \
    --budget 30 \
    --dry-run

The agent will narrate its plan, call each tool with the dry-run flag, and print what it would have done. No money spent. No Facebook calls made.

You'll see output like:

[step 0] Planning: blood-sugar offer on Clickbank, $30/day...
[tool] clickbank_top_offers(niche='blood sugar', min_gravity=20, limit=10)
  → would_call: clickbank marketplace scrape...

[step 1] Spying on competitors for top 3 angles...
[tool] spy_fb_ad_library(query='blood sugar', country='US', max_results=25)
  → would_open: facebook.com/ads/library?q=blood+sugar...

[step 2] Building pre-lander from winning angle...
[tool] lander_build(out_path='/tmp/lander.html', headline='Find Your Blood Sugar Type', ...)
  → would_write: /tmp/lander.html (≈6KB quiz template)

...etc.

Step 5 · Going live (only after you've smoke-tested)

Open secrets.env again and fill in:

  • FB_EMAIL, FB_PASSWORD, FB_BUSINESS_MANAGER_ID, FB_AD_ACCOUNT_ID, FB_PIXEL_ID
  • CLICKBANK_NICKNAME (or DIGISTORE24_API_KEY)

Then drop the --dry-run flag and add --live:

python -m runners.full_pipeline \
    --niche "blood sugar" \
    --network clickbank \
    --budget 30 \
    --live

You'll be prompted y/N at every irreversible step. Read each prompt carefully — you're authorizing real spend. Once you trust the agent for a routine step, you can pass --auto-approve to skip prompts for low/high-risk actions (irreversible still always prompts).

What "live" actually does: opens a real Chrome window, logs into your real Facebook, scrapes the real Ad Library, generates a real lander file, etc. You'll see Chrome moving on your screen. Don't move your mouse during operations — let the human-motion layer drive.

Other runners

# daily SEO + YT content drafts (Module 12 + 13)
python -m runners.content_machine --niche "blood sugar" --dry-run

# ban-recovery automation (Module 10)
python -m runners.ban_recovery

Where to look when something goes wrong

  • Console output — the agent narrates everything it does.
  • ./logs/ — per-run JSONL logs of every tool call + result.
  • Browser screenshots — every navigation also captures a .png in ./screenshots/ with a timestamp. Critical for debugging "why did the click fail".
  • Anthropic dashboard — token usage and per-call costs at console.anthropic.com/usage.

Next

Read how the operator works under the hood if you want to modify the tools or add your own. Otherwise, jump back to the course and start at Module 01.