Six questions answered. Full architecture defined. Robert-first launch, then beta clients, then scale. Read before building anything.
Scout is a monitoring and research agent. Right now it runs on a fixed schedule pulling from sources you configured. For Jeeves clients, Scout needs to be personalized per client — meaning it needs to know what industry they're in, who their competitors are, what keywords matter to them, and who they want to track.
What space are they in? What are the relevant trade publications, subreddits, LinkedIn hashtags, and news sources for their world?
2–5 competitors Scout monitors. Tracks new content, pricing changes, job postings (signals of growth/pivot), and social activity.
Terms that matter to their business. Scout surfaces anything mentioning these across news, X, Reddit, and Google Alerts equivalent.
Names Scout should track — key clients, prospects, referral partners. If they post or get mentioned, Jeeves flags it.
During onboarding intake (the brand intake form), these fields are captured. They get written into the client's Scout config file — a structured JSON stored in their Hermes profile on your Mac Studio. Scout reads this file every morning before running. No client ever touches a config file — they fill out a form, you (or the automation) writes the config.
Scout's findings flow into the morning briefing. The client doesn't get a raw data dump — Jeeves filters Scout's output through the persona layer and surfaces only what's relevant: "Kate, two competitors posted about a new service offering this week. One is directly relevant to your top client. I've prepared a one-paragraph brief."
Scout is a premium add-on signal for the skills pack. Demo it as: "Jeeves watches your industry while you sleep." That's the hook. Don't explain the mechanics.
This is the question that determines how much Jeeves actually works vs. how much the client has to do. There are three levels of connection — pick based on what the client is comfortable with at signup.
| Level | What it means | What the client does | Tech required |
|---|---|---|---|
| Level 1 Manual paste | Client copies and pastes emails into Telegram. Jeeves triages and responds. | Paste when they want help | Nothing — works day one |
| Level 2 Gmail read access | Jeeves reads their Gmail via OAuth. Morning briefing includes email summary automatically. | One-time Google OAuth login | Google OAuth token stored in their profile .env on Mac Studio |
| Level 3 Full Gmail integration | Jeeves reads AND drafts. Surfaces flagged emails, prepares draft replies, sends on approval. | Review + approve drafts in Telegram | Gmail OAuth with send scope + approval workflow in n8n |
Critical: You already have Gmail OAuth working for yourself (token at ~/.hermes/secrets/google_oauth_token.json). Each beta client needs their OWN OAuth token stored in their OWN profile directory. Tokens are never shared. One token per client profile.
For beta launch: start every client at Level 1 (manual paste). Upgrade to Level 2 if they ask. This keeps the install simple and avoids OAuth debugging at 11pm.
Clients never touch config files, SOUL.md files, or any technical settings. All customization flows through two channels:
Collected once at signup. Covers persona choice, tone preferences, key relationships, calendar source, what's off-limits, how formal/casual they want Jeeves to be, and Scout configuration. This data gets written into their SOUL.md and Scout config by you (or automation) before launch.
After launch, clients customize by talking to Jeeves. Examples:
In practice, Jeeves captures these preferences and flags them to you via your Telegram as a config change request. You review and apply. This keeps you in control of every client's configuration — no client can accidentally break their own setup by typing the wrong thing.
Longer term, the Control Center dashboard lets clients manage their own settings visually — permission toggles, persona switch, Scout keywords, briefing time. That's not for beta. For beta: everything goes through Telegram → Robert → config update.
Yes. Every Jeeves interaction burns tokens. This is the economics you need to understand before pricing.
| Activity | Tokens per run | Model | Est. cost |
|---|---|---|---|
| Morning briefing | ~15–25K input + 2K output | Sonnet 4.6 | ~$0.08–0.15/day |
| Single Telegram message response | ~3–8K input + 500 output | Sonnet 4.6 | ~$0.01–0.03 |
| Email triage (10 emails) | ~20K input + 3K output | Sonnet 4.6 | ~$0.10–0.15 |
| Scout daily run | ~30–50K input + 5K output | Sonnet 4.6 | ~$0.20–0.35 |
| Meeting brief | ~5K input + 1K output | Sonnet 4.6 | ~$0.02–0.04 |
An active Jeeves client using morning briefing + 10 Telegram messages/day + Scout + occasional triage: approximately $8–18/month in API costs at current Sonnet 4.6 pricing. At $500/mo per client, your margin is excellent.
At scale with 20 clients: ~$200–360/mo in API costs against $10,000/mo revenue. 96–98% gross margin on the API layer. The cost is negligible. The risk is runaway loops, not normal usage.
This is the most important architectural question. The answer is: yes, you keep using Hermes. Jeeves is a separate profile that runs on the same Hermes engine.
This is what you're using right now. It knows your business, your clients, your agents, your vault. It runs 14 V4 agents, manages cron jobs, handles your personal operations. You talk to it via Telegram at @crabtreehermes_bot. It never talks to your customers.
Each beta client gets their own Hermes profile running with a Jeeves persona SOUL.md. Their profile has its own Telegram bot, its own config, its own memory. When a client texts their Jeeves bot, the request goes to that profile's gateway — which runs on your Mac Studio, through your Anthropic account, and routes to your V4 agents if they have the add-on module. The client never sees Hermes. They see Jeeves (or Kate, Winston, Leora, Ben).
Your daily life: You → @crabtreehermes_bot → Hermes default profile → V4 agents / your ops
Client's daily life: Client → their Jeeves bot → their Hermes profile → (if add-on active) → V4 agents → result back through Jeeves persona
Where you manage them: You → Hermes default → "update Dylan's Jeeves config" → Hermes writes to Dylan's profile files → Dylan's experience changes
Security: Each client's profile is isolated. Dylan's OAuth tokens, memory, and config cannot be accessed by Kara's profile. They run in separate directories with separate gateway processes on separate ports. You control all of it from Mac Studio.
Mac Studio (your server — always on, always running)
└── Hermes default profile (your orchestrator — port 8642)
└── Hermes jeeves-robert profile (your own Jeeves — test instance, port 8643)
└── Hermes jeeves-dylan profile (Dylan's Jeeves — port 8644)
└── Hermes jeeves-kara profile (Kara's Jeeves — port 8645)
└── [each new client adds a profile + port]
Cloudflare Tunnel (crabtree-command-center)
└── command.crabtreemarketing.com → port 3000 (your workspace UI)
└── hermes-api.crabtreemarketing.com → port 8642 (your orchestrator API)
└── [client APIs stay internal — clients connect via Telegram only, never direct API]
Telegram
└── @crabtreehermes_bot → your default profile (your operations)
└── @jeeves_robert_bot → jeeves-robert profile (your test instance)
└── @dylan_jeeves_bot → jeeves-dylan profile (Dylan's instance)
└── @kara_jeeves_bot → jeeves-kara profile (Kara's instance)
Supabase (ixfaxcfqunpgrlmdlava)
└── jeeves_clients table — client registry, feature flags, onboarding status
└── friday_leads table — event lead capture
└── All client memory and session data (optional — can stay local per profile)
The jeeves_clients Supabase table has a features_enabled JSONB column. Every time a client's Jeeves receives a request, the SOUL.md instructs it to check this flag before routing to V4 agents. Base tier clients get chief-of-staff only. Add-on clients get marketing/content/design agents.
{"morning_briefing": true, "scout": false, "inbox_triage": true, "content_pipeline": false, "ads_agent": false, "seo_agent": false}
You flip a switch in Supabase → client's next Jeeves interaction reflects the new capability. No code deploy. No restart. Instant.
You cannot demo or sell something you haven't lived with. Stand this up for yourself first. Target: running by tomorrow morning.
Open Telegram → @BotFather → /newbot → name it "Jeeves" → username like @robert_jeeves_bot. Save the token.
On Mac Studio: hermes profile create jeeves-robert. This creates ~/.hermes/profiles/jeeves-robert/ with its own config, .env, and memory directories.
Edit ~/.hermes/profiles/jeeves-robert/.env — add the bot token. Set TELEGRAM_BOT_TOKEN, TELEGRAM_HOME_CHANNEL (your Telegram user ID: 6722461724). Copy your existing Gmail OAuth token into this profile's secrets directory.
Choose your persona (which one? Jeeves, Kate, Winston, Leora, or Ben — you need to pick). Write the SOUL with your real context: your schedule, your key people, your calendar source, your off-limits topics, how you want your morning briefing structured.
hermes --profile jeeves-robert gateway run as a background process. Wire it to a LaunchAgent so it restarts on reboot. Assign it a port (8643 — one above your default).
Text your new bot. Say "Good morning." Jeeves should respond in your chosen persona. Then say "What's on my calendar today?" — Jeeves should read your Google Calendar and respond. That's the baseline working.
Create a cron job on the jeeves-robert profile: runs 7AM daily, pulls calendar + email + Scout output, delivers via the jeeves-robert Telegram bot. This is what you wake up to every morning before Friday.
Before Friday you need: 2–3 days of living with Jeeves. When someone asks "what's it like?" you need a real answer from real experience, not a demo script.
Attendee scans QR code → fills out friday-lead-capture form → gets Skills Pack instantly → you get Telegram ping → row created in friday_leads table. If they checked beta interest, they're in the queue.
Within 24 hours: send them to 16fold-beta-agreement.pages.dev. They sign. Signature captured in Supabase. You get a Telegram ping. They are now an official beta tester.
You or a team member hops on a 30-minute Zoom. Walk through the intake form together. Capture: persona choice, key people, calendar/email sources, Scout keywords, competitors, what they want Jeeves to handle, what's off-limits, tone preferences. Log everything to their jeeves_clients Supabase row.
New bot, named after their persona (e.g. "Jeeves for Dylan"). Save the token.
hermes profile create jeeves-[clientname]. Wire their bot token. Set their Telegram chat ID.
Merge their intake form answers into the SOUL template. Their persona, their key people, their preferences, their feature flags. This is the client's entire "brain" for Jeeves.
Launch their profile gateway on Mac Studio. Wire LaunchAgent for auto-restart. Assign a unique port.
One Telegram link: t.me/[their_bot_username]. That is the only thing they need. No app. No login. No install. They tap the link, text Jeeves, it works.
Jeeves sends them an automatic welcome message the moment they text the bot for the first time. "Good morning. I'm Jeeves — your chief of staff. I've already reviewed your onboarding notes and I know what matters to you. Ask me anything, or say 'morning briefing' to see what your day looks like." That's the buyer's remorse killer.
One week in, you (Robert) personally texts them: "How's Jeeves working for you? Anything you want adjusted?" This is the retention moment. It's also where you learn what the next version needs.
Not a prompt sheet. A demonstration of what Jeeves does for them — in Jeeves's voice, with real examples of output. The reader experiences what it feels like to have a chief of staff, even before they sign up.
Show a sample morning briefing output. Real format. Real voice. "Here's what Jeeves delivered to one client at 7:02AM." Ends with: "This runs automatically every morning. You wake up knowing exactly what the day requires."
Show a sample Scout report — industry news, competitor move, key contact posted something. "Jeeves watched your industry overnight. Here's what he found." Ends with: "Scout runs every night. You never have to search for what matters."
Show a sample 60-second meeting prep. Client name, their situation, what they want, one risk to watch for. "Jeeves drops this 10 minutes before every call." Ends with: "Never walk into a meeting unprepared again."
Show a sample follow-up alert. "You told Mike you'd send the proposal by Friday. It's Thursday 4PM." Ends with: "Jeeves watches every commitment you make. Nothing falls through."
Each skill card shows real example output — not a description of what it does. The format is: what Jeeves actually said to a client, with their name and situation redacted. Attendees read it and feel the gap in their own life immediately.
Every skill card ends with a gray box: "This is one of four capabilities included in Jeeves base. When you add the 16Fold Marketing Module, Jeeves also manages your content pipeline, runs your ads, and handles your SEO — all reported through your morning briefing."
The Skills Pack is NOT a lead magnet for DIYers. It's a proof-of-concept for buyers. Design it like a premium product leave-behind, not a free download. It should feel like something that costs money.
There is no installation. That's the product.
Every competitor in this space requires the client to install software, configure APIs, manage API keys, update apps, or maintain infrastructure. Jeeves requires none of that. The client taps one Telegram link. That's it.
Everything else — the AI, the memory, the calendar integration, the Scout monitoring, the morning briefing — runs on your Mac Studio in your office. They don't host it. They don't maintain it. They don't update it. They text it.
This is your moat. If they stop paying, you suspend their gateway. Jeeves goes silent. The SOUL.md, the memory, the configured Scout keywords, the trained preferences — none of it transfers. They can't download "their Jeeves" and run it somewhere else because Jeeves isn't an app. It's a service running on your hardware. Stop paying = stop service. This is exactly how Salesforce, HubSpot, and every other SaaS product works.
Their data — emails, calendar events, documents — those were always theirs. Their Telegram message history. Nothing proprietary. You're not holding their data hostage — you're holding your infrastructure and your trained AI configuration. That's the product. That's yours.
Stripe (or manual) billing fails. Automation flags it in jeeves_clients Supabase table: payment_status = 'overdue'.
Jeeves automatically tells the client: "I noticed your account has a billing issue. I'll continue working for the next 72 hours while you sort it out. [billing link]"
After grace period: hermes --profile jeeves-[client] gateway stop. Their bot goes silent. You get a Telegram confirmation. Their data stays on your Mac Studio but they cannot access Jeeves.
Payment received → flip payment_status back to 'active' → hermes --profile jeeves-[client] gateway run → Jeeves comes back with full memory intact. They don't lose anything except the time Jeeves was offline.
| When | What | Who does it |
|---|---|---|
| Tonight | Robert picks his Jeeves persona. Hermes writes his SOUL.md draft. | Robert + Hermes |
| Tomorrow AM | jeeves-robert profile created, gateway running, Robert texts his own Jeeves for the first time. | Hermes builds it |
| Wed–Thu | Robert lives with Jeeves. Morning briefing. Tests inbox triage. Refines SOUL.md based on real experience. | Robert (testing) |
| Thursday | Friday lead capture page live. Skills Pack deployed. QR code generated. Presentation finalized. | Hermes builds it |
| Friday event | Present 16Fold. Demo live Jeeves. Collect leads via QR code. Beta interest captured in Supabase. | Robert presents |
| Friday PM | Telegram ping for every lead captured. Review beta interest signups. | Automated |
| Weekend | Intake calls with Dylan + Kara (existing beta testers). Build their profiles. Go live. | Robert + Hermes |
| Next week | Friday event leads get follow-up email. Beta interest → intake call booked. New beta clients onboarded. | Robert + automation |
Everything above can be built. But nothing moves until you answer one question:
Which persona do you want for your own Jeeves instance?
Jeeves (formal British chief of staff) / Kate (sharp and decisive) / Winston (witty chaos-handler) / Leora (quiet pattern recognizer) / Ben (loyal and encouraging). Pick one. Hermes builds your SOUL.md tonight. You wake up to a working Jeeves tomorrow.