From zero to running the full DTC/ecommerce skill set. Mac guide. Takes about 15 minutes.
Press Cmd + Space, type Terminal, hit Enter. This opens your Mac's command line. Every command below gets pasted into this window and run by pressing Enter.
Homebrew is Mac's package manager. It lets you install developer tools. Paste this entire line and press Enter:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"copy + paste
It will ask for your Mac password (the one you use to log in). Type it — you won't see characters appear, that's normal — and press Enter.
Don't skip this: When Homebrew finishes, it prints two lines under "Next steps" that start with echo and eval. Copy and paste BOTH of those lines into Terminal and press Enter. This makes Homebrew available. If you skip this, nothing else will work.
Node.js is the runtime Claude Code needs:
brew install node
Wait for it to finish (1–2 minutes). Then verify it worked:
node --version
You should see something like v22.x.x. If you see "command not found", close Terminal completely (Cmd+Q) and reopen it, then try again.
npm install -g @anthropic-ai/claude-code
claude
It will open a browser window to sign in. Create a Claude account (or sign in with your existing one) and approve the connection. Claude Code bills through your Claude account — no separate API key needed.
Once connected, you should see the Claude Code prompt (a > waiting for input). Type /exit to quit for now — we need to install skills first.
Claude Code is installed. On to the good stuff.
Steven will give you a file called ecom-skills-pack.zip. Unzip it and copy the skills into place:
# Go to your Downloads folder
cd ~/Downloads
# Unzip the pack
unzip ecom-skills-pack.zip
# Create the skills directory if it doesn't exist
mkdir -p ~/.claude/skills
# Copy skills into place
cp -r ecom-skills-pack/skills/* ~/.claude/skills/copy + paste
Verify they installed:
ls ~/.claude/skills/
You should see folders like ecommerce, copywriting-engine, creative-diversity-matrix, etc.
| Skill | What It Does |
|---|---|
| ecommerce | Router — say "ads", "landing page", "email" and it dispatches to the right skill |
| copywriting-engine | Story Codex, PAS copy, pain ladder, ad copy formulas |
| creative-diversity-matrix | 22-format static ad gallery generator |
| creative-iteration-engine | Systematic ad variations (single-variable isolation) |
| performance-decoder | Meta ad performance analysis — classifies winners/losers |
| ads-health | 46-check Meta account audit with health score |
| meta-ads-launcher | End-to-end campaign launcher |
| meta-ads-account-review | Account config reference |
| hundred-million-offers | Grand Slam Offer framework (bonuses, guarantees, value equation) |
| influence-psychology | 7 principles of ethical persuasion |
| dtc-acquisition-system | Full-funnel DTC acquisition builder |
| dtc-landing-page-architecture | High-converting landing page design system |
| scorecard-marketing | Quiz/assessment funnel builder |
| ecommerce-email-engine | Email flows, campaigns, calendar (12 flow types, HTML output) |
| product-listing-images | 7-image product listing sets |
| gemini-image-generation | AI product images with Gemini |
Plugins are community-built extensions. Run each command in Terminal:
# Core workflow system (brainstorming, planning, code review)
claude plugins install superpowers@claude-plugins-official
# Browser automation and screenshots
claude plugins install playwright@claude-plugins-official
# UI/frontend design
claude plugins install frontend-design@claude-plugins-officialrun each line
By default, Claude Code asks "Allow?" before every single action — reading a file, running a command, editing code. This makes it unusable for real work. We're going to tell it to just do its job.
Paste this entire block into Terminal:
cat > ~/.claude/settings.json << 'EOF'
{
"permissions": {
"allow": [
"Bash",
"Read",
"Write",
"Edit",
"Glob",
"Grep",
"WebFetch",
"WebSearch",
"TodoWrite",
"NotebookEdit",
"mcp__plugin_playwright_playwright__browser_navigate",
"mcp__plugin_playwright_playwright__browser_click",
"mcp__plugin_playwright_playwright__browser_snapshot",
"mcp__plugin_playwright_playwright__browser_take_screenshot",
"mcp__plugin_playwright_playwright__browser_fill_form",
"mcp__plugin_playwright_playwright__browser_hover",
"mcp__plugin_playwright_playwright__browser_press_key",
"mcp__plugin_playwright_playwright__browser_type",
"mcp__plugin_playwright_playwright__browser_select_option",
"mcp__plugin_playwright_playwright__browser_evaluate",
"mcp__plugin_playwright_playwright__browser_resize",
"mcp__plugin_playwright_playwright__browser_navigate_back",
"mcp__plugin_playwright_playwright__browser_tabs",
"mcp__plugin_playwright_playwright__browser_close",
"mcp__plugin_playwright_playwright__browser_wait_for",
"mcp__plugin_playwright_playwright__browser_run_code",
"mcp__plugin_playwright_playwright__browser_console_messages",
"mcp__plugin_playwright_playwright__browser_network_requests",
"mcp__plugin_playwright_playwright__browser_file_upload",
"mcp__plugin_playwright_playwright__browser_handle_dialog",
"mcp__plugin_playwright_playwright__browser_drag",
"mcp__plugin_playwright_playwright__browser_drop"
]
},
"enabledPlugins": {
"superpowers@claude-plugins-official": true,
"playwright@claude-plugins-official": true,
"frontend-design@claude-plugins-official": true
}
}
EOF
echo "Settings saved."paste entire block
| Permission | What It Means |
|---|---|
| Bash | Run terminal commands (curl, npm, git, python, etc.) |
| Read | Read any file on your computer |
| Write | Create new files |
| Edit | Modify existing files |
| Glob / Grep | Search for files and text |
| WebFetch / WebSearch | Fetch web pages and search the internet |
| TodoWrite | Track tasks and progress |
| Playwright | Open a browser, click, type, screenshot, navigate |
Claude now runs without interruption. No more "Allow?" prompts.
CLAUDE.md is the file that tells Claude who you are and how to work with you. It loads automatically at the start of every conversation.
mkdir -p ~/.claude
touch ~/.claude/CLAUDE.md
open ~/.claude/CLAUDE.md
This opens the file in TextEdit. Paste the template below and customize the bracketed parts:
# Context
## Who I Am
[Your name] — [your role]. [One sentence about what you do.]
## How to Work With Me
Be direct. [Add your preferences — terse vs detailed,
ask before acting vs move fast, etc.]
## Skill Check (EVERY TASK)
Before responding to any task, scan the available skills list.
If any skill's trigger matches — invoke it.
### Skill Routing
**Ecommerce / DTC / Ads:** Invoke the `ecommerce` router skill.
It dispatches to the right sub-skill(s).
## My Brand
- Brand: [your brand name]
- Product: [what you sell]
- Website: [your URL]
- Ad account: [Meta ad account name and ID if applicable]
## Key Rules
- [e.g., "never pause Meta campaigns without asking me first"]
- [e.g., "Meta token at ~/.claude/meta-token.txt"]customize this
Save the file (Cmd+S) and close TextEdit.
# Navigate to your project folder first
cd ~/Documents/my-project
claude
Don't write code or give technical instructions. Just say what you need:
"Generate 10 ad variations for my immune drops product"
"Write a welcome email flow for new subscribers"
"Audit my Meta ad account"
"Build a landing page for the summer sale"
"Create a Story Codex for my brand"
"Analyze last month's ad performance — here's the CSV"
"Write copy for a 3-bottle bundle offer"
The ecommerce router automatically dispatches to the right skill.
| Command | What It Does |
|---|---|
| /help | Show all available commands |
| /skills | List installed skills |
| /model | Switch models (Opus = smartest, Sonnet = fast, Haiku = fastest) |
| /clear | Clear conversation and start fresh |
| /exit | Quit Claude Code |
| /cost | Show token usage and cost for current session |
| Ctrl+C | Cancel current operation |
| Up arrow | Recall previous message |
Claude can read and work with files on your computer:
"Read the file at ~/Downloads/ad-report.csv and analyze it"
"Open the landing page at ~/Documents/brand/index.html"
"Edit the copy in that email template"
Claude can open a browser, navigate pages, take screenshots, and interact:
"Open my website and screenshot the homepage at mobile size"
"Navigate to my Shopify store and check the product page"
"Take a full-page screenshot of the landing page"
Skills give Claude specialized knowledge for specific tasks. You don't need to call them manually — just describe what you need and the right skill activates.
The ecommerce skill is the main router. When you say anything related to ads, copy, landing pages, email, offers, or performance — it dispatches to the right sub-skill automatically.
You say: "I need ad creative for my supplement"
Claude: ecommerce trigger → creative-diversity-matrix
Result: 22-format ad gallery with your product
| You Say... | Skill That Fires |
|---|---|
| "ads", "creative", "ad gallery" | creative-diversity-matrix |
| "iterate", "variation", "test this angle" | creative-iteration-engine |
| "ad copy", "primary text", "headline" | copywriting-engine |
| "story codex", "brand positioning" | copywriting-engine |
| "landing page", "sales page", "funnel" | dtc-landing-page-architecture |
| "email flow", "email calendar" | ecommerce-email-engine |
| "offer", "pricing", "bonuses" | hundred-million-offers |
| "ad performance", "ROAS", "CPA" | performance-decoder |
| "account health", "audit" | ads-health |
| "launch ads", "campaign" | meta-ads-launcher |
| "quiz funnel", "assessment" | scorecard-marketing |
| "product images", "listing images" | product-listing-images |
| "generate image", "product photo" | gemini-image-generation |
| "persuasion", "social proof" | influence-psychology |
If Steven sets up memory for your brand, Claude remembers context across sessions:
~/.claude/projects/[project]/memory/
session-state.md # What was worked on, what's next
brand-states/brand.json # Current phase, campaigns, blockers
brand-states/proven-patterns.md # What the market validated
reflections.md # Operational learnings
MEMORY.md # Index of all memory files
Claude reads these at session start to pick up where you left off.
Claude can manage your Meta ads, Shopify store, and Klaviyo emails directly — but it needs API tokens to authenticate. Each one takes about 5 minutes to set up.
Required for: ad performance analysis, campaign launching, account audits, creative uploads.
Go to developers.facebook.com/tools/explorer. Select your app (or create one). Under "User or Page", select User Token. Click Generate Access Token. Grant it ads_management, ads_read, pages_read_engagement, and business_management permissions.
Copy the token and paste it into Terminal (replace YOUR_TOKEN):
echo "YOUR_TOKEN" > ~/.claude/meta-token.txt
chmod 600 ~/.claude/meta-token.txt
Open ~/.claude/CLAUDE.md and add:
## Meta Ads
- Ad account: act_XXXXXXXXX
- Page ID: XXXXXXXXX
- Token: ~/.claude/meta-token.txt
Tokens expire. Meta tokens from the Graph API Explorer last ~1 hour. For a long-lived token (60 days), exchange it: ask Claude "extend my Meta token to a long-lived token" and it will walk you through the API call.
Required for: theme edits, product updates, page creation, deployment.
This was already installed with Node. Verify:
npx shopify version
Run this command (replace your-store with your myshopify.com subdomain):
npx shopify auth login --store your-store.myshopify.com
It will open a browser window. Log in with your Shopify admin credentials and approve the access request.
List your themes to get the ID of your live theme:
npx shopify theme list --store your-store.myshopify.com
The one marked [live] is your active theme. Note the ID number.
## Shopify
- Store: your-store.myshopify.com
- Live theme ID: XXXXXXXXX
- Deploy command: npx shopify theme push --theme XXXXXXXXX
--allow-live --store your-store.myshopify.com
Theme dev server: To preview changes before going live, Claude can run npx shopify theme dev which opens a local preview at http://127.0.0.1:9292.
Required for: email flow creation, campaign sends, list management, subscriber data.
In Klaviyo, go to Settings > API Keys. Click Create Private API Key. Give it Full Access to all scopes (or at minimum: Campaigns, Flows, Lists, Profiles, Templates, Metrics).
echo "YOUR_KLAVIYO_PRIVATE_KEY" > ~/.claude/klaviyo-token.txt
chmod 600 ~/.claude/klaviyo-token.txt
## Klaviyo
- Token: ~/.claude/klaviyo-token.txt
- API docs: developers.klaviyo.com/en/reference
Klaviyo private keys don't expire — but you can revoke and regenerate them anytime from Settings > API Keys.
Required for: generating product images, lifestyle photos, ad backgrounds with AI.
Go to aistudio.google.com/apikey. Click Create API Key. Copy it.
echo "GOOGLE_API_KEY=your_key_here" > ~/.env.google
chmod 600 ~/.env.google
Node.js or npm isn't in your PATH. Try:
# Close Terminal completely (Cmd+Q) and reopen, then:
claude
# If still broken, run this to fix your PATH permanently:
echo 'export PATH="$PATH:/opt/homebrew/bin:$(npm bin -g)"' >> ~/.zshrc
source ~/.zshrc
claude
Type y to allow once, or re-run the permissions block from Part 4.
ls ~/.claude/skills/
Each skill should be a folder containing a SKILL.md file.
Re-authenticate:
claude auth login
Switch to a faster model by typing /model sonnet inside Claude Code. Opus is smartest but slower. Sonnet handles most tasks. Haiku is fastest for simple stuff.
Type /clear inside Claude Code. This wipes the conversation but keeps your skills and settings intact.
Claude Code runs in Terminal by default — one session at a time. Steven built an open-source desktop app called Claude Dashboard that lets you run multiple Claude Code sessions side-by-side in a tiled GUI.
| Feature | Why It Matters |
|---|---|
| Multiple sessions | Run one session for ads, another for email, another for your Shopify store — all visible at once. No switching tabs. |
| Drag-to-reorder tiles | Arrange sessions however you think. Put the active one big, the others small. |
| Visual permissions | See and approve/deny permission requests in a clean UI instead of raw Terminal prompts. |
| Model selector | Switch between Opus/Sonnet/Haiku per session with one click. |
| Slash command autocomplete | Type / and see all available commands and skills in a dropdown. |
# Clone the repo
cd ~/Documents
git clone https://github.com/entrepreneurshiphacks123/claude-dashboard.git
cd claude-dashboard
# Install dependencies and start
npm install
npm startcopy + paste
It opens as a desktop app. You can also build it as a standalone app with npm run build.
This is optional. Terminal works fine for most people. The dashboard is for power users running multiple sessions or who prefer a visual interface over raw Terminal.
npm install -g @anthropic-ai/claude-codeclaudecp -r skills/* ~/.claude/skills/claude plugins install superpowers@claude-plugins-official~/.claude/settings.json~/.claude/CLAUDE.md~/.claude/projects/*/memory//help/exit