Setup Guide
Hyde & Hare
29 August 2026
0 of 11 done
Prepared for Piers

Build Your Own
Marketing Data Assistant

Right now, to know how the business is doing you log into five different websites. Shopify for orders. Meta for ad spend. Google for search. Klaviyo for email. Triple Whale to try to tie it together. Then you copy numbers into a spreadsheet and hope the maths is right.

We are going to replace all of that with one thing you can just talk to.

You will have an app on your laptop. You type a question in normal English, like "how did last week compare to the same week last year, and where did the growth actually come from?" It goes and gets the real numbers from the platforms itself, does the analysis, and answers you. No spreadsheet, no logging in, no copy and paste. Everything below is just the plumbing to make that possible.

You have already done the first bit. Homebrew is installed, which is the part most people give up on. What you are missing is Node, which is why npm says "command not found". That is step 1, and it is one command.

Two things to know first

It runs on your laptop

Not in the cloud. Your data never sits on anyone else's server. The keys that unlock your accounts live in one protected file on your machine. That is deliberate, and it is the safest version of this.

Day one is read-only

Every key you create is locked to look, don't touch. It can read orders, ad spend and email performance. It cannot spend money, change a product, pause a campaign or send an email. We unlock things later, one at a time, once you know how it behaves.

Start here

Homebrew is already done, so the first two steps are the last Terminal work there is. After that it is all conversation. Tap any step to open it.

One thing has a waiting list

The Google Ads developer token in step 6 is approved by a human at Google and can take a few days. If you have ten spare minutes today, open step 6 and submit that application first, then come straight back here. Everything else works while you wait.

1
Install Node~5 min
This is the one you are missing. Homebrew is the shop, Node is the thing you came in to buy.

Node is the engine everything else runs on. It is also what gives you the npm command, which is why npm currently says "command not found" on your machine. Nothing is broken, Node simply is not there yet.

In Terminal, paste this and press Enter. It takes a few minutes and prints a lot of text as it goes, which is normal.

brew install node git

Then check it worked. This should print three version numbers, something like v22.11.0, 10.9.0 and git version 2.47.0:

node -v && npm -v && git --version
If brew itself says "command not found"

Then Homebrew installed but your Mac cannot see it, which means the shell line got skipped. Paste the command below, quit Terminal completely with Cmd+Q, reopen it, and try again. The change only applies to new windows.

echo >> ~/.zprofile && echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile && eval "$(/opt/homebrew/bin/brew shellenv)"

That line assumes an Apple Silicon Mac (M1 or newer). On an older Intel Mac, Homebrew lives at /usr/local instead and the line above will appear to do nothing. Check under Apple menu > About This Mac, and if it says Intel, tell Casey and he will send you the one-word change.

2
Install Claude Code~2 min
The version of Claude that lives in the Terminal and can actually build things. This is what does all the connecting from here on.

The desktop app is for chatting. This one can read files, run commands and wire up connections on your machine, which is what the rest of this guide needs. Install it with:

npm install -g @anthropic-ai/claude-code

Check it:

claude --version

Then start it by typing claude and pressing Enter. It will ask you to sign in the first time. Use the same account as the desktop app.

You are now talking to it in plain English. To leave, type /exit. To come back later, open Terminal and type claude again.

If this one says "command not found"

Run node -v. If that fails too, go back to step 1, because npm arrives with Node and only with Node. If Node is fine and claude still is not found, quit Terminal with Cmd+Q, reopen, and try claude --version once more before flagging it to Casey.

Also grab the desktop app

If you have not already, download Claude Desktop from claude.ai/download and sign in. Same account, nicer window for reading long answers. The Terminal one does the work, the desktop one is comfortable to read in.

3
Set up a password vault~5 min
Do this before you generate a single key, so you have somewhere to put them as they appear.

From the next step onward you will be creating API keys. These are effectively passwords to your business data, so they need somewhere proper to live. Not in Notes, not in an email to yourself. Most are shown once and then hidden forever, so have the vault open before you generate anything.

  1. If you do not have 1Password, sign up at 1password.com
  2. Create a new vault called Hyde & Hare API
  3. Leave it empty. You will fill it in the last step.

If your team already uses Bitwarden, Dashlane or similar, use that instead. The point is a real vault with a master password, not a file.

4
Connect Triple WhaleYour first win
First because nothing stands in its way, and because it already blends Shopify, Meta, Google and Klaviyo behind a single key.

This one key gets you revenue, orders, AOV, blended ROAS, new-customer cost per acquisition and your Meta versus Google spend split. The later connections add depth. This one gets you answers today.

  1. Create the key. In Triple Whale go to Settings > API Keys and create one named "Reporting". It must have the Summary Page: Read scope or the calls get refused. Save it straight into 1Password.
  2. Get the starter folder. Casey will send you a folder called starter-server. Put it somewhere sensible, like Documents.
  3. Open Claude Code inside it. In Terminal type cd (with a space), drag the folder onto the Terminal window, press Enter, then type claude.
  4. Ask it to set itself up. Say: "install the dependencies here, help me put my Triple Whale key into the .env file, then register this MCP server in my Claude settings". It does the wiring and tells you what it is doing.

Then ask it "check the connection". If that comes back OK you are live. Asking for last week's performance returns something shaped like this:

{ "period": { "start": "2026-08-13", "end": "2026-08-19" }, "revenue": 00000.00, "orders": 000, "aov": 000.00, "adSpend": 0000.00, "blendedRoas": 0.00, "newCustomers": { "cpa": 00.00, "roas": 0.00 }, "spendByChannel": { "meta": 0000.00, "google": 0000.00 } }

Real figures, not zeros. The zeros above are only there to show you which fields come back.

Worth asking once it is live:

  • How did last week compare to the same week last year?
  • What is my new-customer cost per acquisition trending like over the last 90 days?
  • Am I spending more on Meta or Google, and which one is returning better?
  • Show me the last six months of revenue by month.
Sanity check it once

The first thing to ask is something you already know the answer to, like last month's revenue. Confirm it matches Shopify before you start trusting it on the questions you cannot check by hand.

One requirement

You need permission to create API keys in your own Triple Whale account. If the API Keys menu is not there, that is a permissions or plan-tier issue rather than anything you have done wrong. Flag it to Casey and we will start with Shopify instead, which reaches the same place with one extra step.

5
Connect Klaviyo~10 min
Next easiest. One key, no approval, no sign-in round trip. Adds the email and SMS detail Triple Whale only summarises.
  1. In Klaviyo go to Settings > API Keys > Create Private API Key and name it "Reporting"
  2. Choose Custom Scopes rather than full access
  3. Set every single scope to Read. Leave nothing on Write.
  4. Save it to 1Password. It is shown once and then hidden forever.

Then open claude in your starter-server folder and say: "add Klaviyo to this MCP server, read-only, and help me put the key in the .env file". Ask it for last month's email revenue to confirm it works.

6
Connect Google AdsStart the application today
Third because of the approval queue, not the difficulty. Submit the token application now and do the rest whenever it lands.

Part one: apply for the developer token. Google approves these by hand, so this is the piece worth starting today even if you do nothing else this week.

  1. You need a Manager account (also called an MCC) to apply. If you do not have one, create it at ads.google.com/home/tools/manager-accounts
  2. Inside the Manager account go to Tools > Setup > API Center
  3. Fill in the application. When it asks what you are building, say: "Internal reporting tool to read our own campaign performance data. Read-only. Single company, no external users."
  4. Submit
Expect this

You get a token immediately, but it starts on "Test Account" access, which does not work on real data. The approval upgrades it to Basic Access. Let Casey know the moment that email lands.

Part two: the two smaller pieces. You can do these while the application sits in the queue.

  1. At console.cloud.google.com create a project called "HH Reporting"
  2. Search for and enable the Google Ads API
  3. Go to APIs & Services > Credentials > Create Credentials > OAuth client ID
  4. Application type: Desktop app
  5. Save the Client ID and Client Secret to 1Password

Also note your Google Ads Customer ID, the 10-digit number at the top right of the account, formatted like 123-456-7890.

Do this last part with Casey

Google needs one more piece called a refresh token, which comes from a sign-in round trip on your machine. It is two minutes with Casey on a call and it is fiddly alone. Once that exists, ask Claude to add Google Ads to the server.

7
Connect Meta~20 min
Last of the four, because it needs Business Manager admin rights and the fiddliest setup. Adds ad set and creative level detail.

You need to be an admin of the Hyde & Hare Business Manager for this one.

  1. At developers.facebook.com click My Apps > Create App. Use case Other, type Business. Link it to your Business Manager.
  2. Go to business.facebook.com/settings, then Users > System Users > Add
  3. Name it "Reporting", role Employee (not Admin)
  4. Click Assign Assets, add your ad account, and give it View Performance only
  5. Click Generate New Token, pick the app you just made, and tick only:
ads_readread_insights

Copy the token into 1Password immediately. It is shown once, and it does not expire, which is exactly why we keep it view-only.

Then ask Claude to add Meta to the server, the same way you did with Klaviyo.

8
Back it up to a private GitHub repository~10 min
You do not have one of these yet. Do it once something is working, so a dead laptop does not mean starting over.

Everything so far lives in one folder on your Mac. This is the copy that survives a lost laptop. You do not need to know how to use GitHub, and Claude does the awkward part.

  1. Sign up at github.com if you do not have an account
  2. Click New repository
  3. Name it hyde-and-hare-data
  4. Set it to Private. This matters more than anything else on this page.
  5. Tick "Add a README file", create it, and send Casey the link

Then open claude in your starter-server folder and say: "connect this folder to my private GitHub repo, and make absolutely sure the .env file is in .gitignore before anything is pushed".

The one rule

The keys never go to GitHub. Only the code does. Ask Claude to confirm .env is ignored before the first push, and then ask it to show you what it is about to upload. Once a key has been pushed to GitHub it has to be treated as burned and regenerated, even in a private repo.

9
Connect Shopify directlyWith Casey
Optional, and last on purpose. Triple Whale is already reporting your Shopify numbers, so this is for the raw detail underneath them.

Connect this when you want order and customer data that Triple Whale does not expose, such as per-product margin or proper cohort work. Shopify changed this flow in January 2026, so ignore any older guide that says to use "Develop apps" inside the admin.

  1. Go to dev.shopify.com and sign in with your Shopify account
  2. Create a new app called "Hyde & Hare Reporting"
  3. App URL: http://localhost:3000
  4. Embedded in Shopify admin: OFF
  5. Allowed redirection URL: http://localhost:3000/callback
  6. Preferences URL: leave blank
  7. Tick exactly these scopes and nothing else:
read_ordersread_all_ordersread_productsread_customersread_inventory

Save the Client ID and Client Secret to 1Password.

Why read_all_orders matters

Without it you only get the last 60 days of orders, which kills any year-on-year comparison. Turning the ID and Secret into a working token needs a sign-in round trip on your machine, so book two minutes with Casey rather than fighting it alone.

The two bits you need Casey for

Everything above you can do alone. These two need a sign-in round trip on your machine, which is fiddly to do solo and about two minutes together.

The Google Ads refresh token. The last piece of step 6, once your developer token is approved.
Turning the Shopify Client ID and Secret into a working token. The last piece of step 9, if and when you want Shopify directly.
Ask before you get stuck

If a step fights you for more than about fifteen minutes, stop and screenshot it. Getting Triple Whale and Klaviyo done is already most of the value. The rest can wait for a call.

The security rules

Short list. These are the ones that actually matter.

01
Every key is read-only

You are not one typo away from spending money or deleting a product. If a key can only read, the worst case of a mistake is a wrong number on a screen.

02
Keys live in exactly two places

1Password, and one protected file on your laptop. We will set that file so only your user account can open it. Nowhere else. Not in an email, not in Slack, not in a document.

03
Never paste a key into a chat window

Including into Claude itself. It does not need you to, it reads them from the file automatically. If you find yourself about to paste something starting with shpat_, sk_ or EAA, stop.

04
The key file never goes to GitHub

We configure this on the call so it is blocked by the tooling rather than by you remembering.

05
If a laptop is lost, rotate

Every key here can be deleted and regenerated in about two minutes from the platform that issued it. Deleting instantly kills access. Worth knowing the emergency button exists and is easy to press.

06
Review every six months

Delete anything you are not using. Ten minutes, and it is the highest-value security habit there is.

Final checklist

Tick these off as you go. Your progress saves automatically in this browser.

If something goes wrong

Do not fight it. Screenshot the error and send it over, and we will do that one together. Getting four of the five done is a completely fine outcome for tomorrow.