00 / Cold outbound engine
Skyler finds local businesses, reads their websites, writes cold email that references something real, and works the replies toward a booked conversation. It runs on your machine on a loop. There is no model API bill: it uses the Claude or ChatGPT plan you already pay for.
What follows is every step, including the ones people underestimate. Read the timeline before you start. Most of it is waiting, not configuring.
01 / Before you start
Setup is a few hours of actual work spread across two to four weeks. The long pole is domain warmup, and there is no way to shorten it. Cold email from a cold domain bounces, and the bounces burn the domain you just bought. Start the clock on day one, then do everything else while it warms.
| When | What | Your time |
|---|---|---|
| Day 1 | Buy the sending domain and start warming it | 30 minutes, then it runs in the background |
| Day 1 | Install Skyler and run it against the free data source | 30 minutes |
| Day 1 to 3 | Write down your offer and who it is for | 1 to 2 hours. This is the part that decides everything. |
| Day 2 to 14 | Read drafts in the outbox and reject the bad ones | 10 minutes a day, no sending yet |
| Week 2 to 4 | Domain warmup finishes | Waiting. Nothing you can do to speed this up. |
| Launch day | Connect the mailbox and start the loop | 20 minutes |
| Week 1 live | Approve every email by hand at 20 a day | 15 minutes a day |
02 / The build
Never send cold email from the domain your real business runs on. One spam complaint against your main domain and your normal mail starts landing in spam too. Buy a separate one, close to your brand, and treat it as disposable.
Everything else takes an afternoon. This takes two to four weeks of calendar time. Start it before you install anything, so the waiting happens while you do the rest.
You need Python 3.11 or newer. macOS ships 3.9, which cannot run it, so install a current Python
first if that is what python3 --version reports. You also need an active Claude Pro or Max
subscription with the CLI logged in, or a ChatGPT plan with the Codex CLI.
git clone https://github.com/camby-ai/skyler.git cd skyler python3.13 -m venv .venv && source .venv/bin/activate pip install -e . skyler --help
If skyler comes back as command not found, the virtual environment is not active. Run
source .venv/bin/activate from inside the folder again.
This is the step that decides whether the email is any good, and it is the one everybody rushes. Skyler reads a URL and writes itself a product-knowledge file from it. Thin input produces thin email. Point it at your best page, not your homepage.
skyler train https://your-offer-page.com
skills/product_knowledge.md. Your own words beat anything generated from a landing page.Signals are the observable facts Skyler looks for: no online booking, unanswered reviews, a stale copyright, calls going to voicemail. Twenty-one of them are free. Two cost money and stay off unless you turn them on.
skyler signals --confirm free skyler discover --estimate # shows projected spend, spends nothing skyler discover # free OpenStreetMap source skyler profile # reads every site found, no model calls
The free source covers dentists, roofers, plumbers, HVAC, electricians, lawyers, contractors and landscapers. Medspas, gyms and salons need a paid key, so it returns nothing there rather than junk.
Open the dashboard and work the outbox while the domain is still warming. Nothing can send yet, which is exactly why this is the right time to tune the copy.
skyler dashboard # http://localhost:5555
skills/email_frameworks.md do.Do this only once the domain has warmed. You need a Google Cloud project with the Gmail API enabled and a Desktop-app OAuth client. Budget twenty minutes, or an hour if you have never done it.
skyler gmail auth # sign in as the NEW mailbox, not your personal gmail
Start the loop. It wakes every fifteen minutes, decides what the pipeline needs, and does that one thing. Approve every email by hand for the first week.
skyler run # the 15 minute heartbeat skyler status # counts, reply rate by signal skyler usage # how much of your plan it used skyler sending pause # kill switch, stops everything instantly
03 / Guardrails
These are enforced in the configuration, not left to good intentions. They ship on by default.
04 / If you would rather not
Almost nobody stalls on the install. They stall on the three things this guide cannot do for you: getting the domain authentication right so the mail lands, writing down an offer specific enough to be worth reading, and holding the line on rejecting generic drafts for two weeks before a single email goes out.
That is the work I do. The tool is free and stays free. If you want it standing up and sending inside two weeks, with the offer and the targeting sorted properly, that is the part worth paying for.
Tell me what you sell and who buys it. I will tell you whether this is the right machine for it before anyone talks about money.