Expansions Install Guide
Optional tools your skills may ask for. Install only what you need, when you need it.
What This Guide Is
The root system ships with skills that can do a lot. Some of those skills lean on small command-line tools that are not part of Claude Code itself. They are expansions: extra capabilities you switch on when you need them.
Do not install anything here yet. Nothing in this guide is required to start. You can build your entire root system, run your morning protocol, and use most skills without installing a single thing here. This guide exists so that when a skill or a module tells you it needs a tool you do not have, you know exactly what it is, why it exists, and how to install it in two minutes. Come back then, not before.
🧭 The Principle: Install on Demand
Do not install everything at once. When you run a skill and it says "this needs X", come back here, find X, install it, and continue. You will end up with only the tools you actually use, and less to maintain.
What is in this guide
Grouped by when you are likely to need them. A Part 1 beginner needs almost none of these on day one.
The toolchain (install first if a tool needs it)
- Homebrew and Node.js, how most of the other tools get installed
The basics (occasionally early)
- Python 3, used by date verification, several skills, and Playwright
- jq, used by skills that read JSON from APIs
- The scripts/ folder, already in your system folder, what is in it and how to edit
For making content and visuals
- ffmpeg, used by video and audio skills
- Playwright, used by deck export skills (pitch-deck, flow-deck)
- Puppeteer + pdf-lib, used by carousel rendering skills (ig-post, linkedin-carousel)
For research
- Web Access (Firecrawl), lets Claude read web pages
For Part 2, when you connect your business
- Supabase CLI & Stripe CLI, used when you connect Supabase or Stripe (Module 5)
- Wrangler, used to upload images to Cloudflare R2 for social posts (Module 8)
📌 Prerequisite
You should have finished the Claude Code Install Guide first, so Claude Code itself is running. Most tools here install through Homebrew or Node.js. If a tool needs one and you do not have it yet, the next lesson, Set Up Your Toolchain, gets both going.
Set Up Your Toolchain: Homebrew and Node.js
Most tools on this page install through Homebrew (a package manager for Mac) or npm (which comes with Node.js). You do not need either to start. Set them up here the first time a tool below asks for one.
Homebrew (Mac)
Homebrew is an app store for developer tools that you drive from the terminal. The commands on this page are for Mac. On Windows: Node.js has its own installer below, and for the other tools ask Claude for the Windows equivalent (winget or a direct installer), it knows them all. Open your terminal and paste:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
It asks for your Mac password, the one you log in with. You will not see the characters as you type, that is normal. Follow any lines it prints at the end. On Apple Silicon Macs (M1 to M4) it may give you two extra lines to add Homebrew to your path, paste those exactly.
Check it worked: brew --version should show a version number.
Node.js
Some tools (Puppeteer for carousels, Wrangler for image hosting) install through npm, which comes with Node.js. The one-command Claude Code installer does not include Node.js, so add it here when a tool needs it.
Mac (with Homebrew):
brew install node
Windows: go to nodejs.org, click the green LTS button, run the installer with the defaults, then close and reopen your terminal.
Check it worked: node --version should show a version number like v22.x.x.
Python 3
What it is
Python 3 is a programming language that comes with a friendly command-line tool called python3. macOS ships with an old version. Homebrew installs a current one. You will not write Python yourself. Claude uses tiny one-line Python commands to handle a few specific jobs.
Why you might need it
- Date verification, every time Claude schedules content, it runs
python3 -c "from datetime import date; print(date(YYYY,M,D).strftime('%A'))"to check what day of the week a date actually is. This single line prevents posts from being scheduled on the wrong day. - Trend research, the
/trend-scoutskill can use Google Trends data through a Python library calledpytrends. - Deck export, the script that turns HTML decks into PDFs runs on Python.
- Tiny helpers, several skills shell out to Python for one-line date math, JSON parsing, or string handling.
🐍 Bottom line
If you plan to use Claude for ANY content scheduling, install this. It is the most-used optional tool in the system.
How to install
brew install python3
Verify
python3 --version
You should see Python 3.x.x.
jq (JSON parser)
What it is
A small command-line tool that reads and transforms JSON. JSON is the format that almost every API on the internet speaks. jq lets Claude pull specific fields out of API responses without writing custom code each time.
Why you might need it
- Skills that read from your CRM, dashboard, or any API pipe responses through
jqto extract just the fields they need. - Useful any time you
curlsomething and want to read the result like a human instead of a wall of text. - Used by morning and evening protocols when they query your dashboard data.
🔧 Bottom line
Tiny tool, huge quality of life. Install it once, never think about it again.
How to install
brew install jq
Verify
jq --version
You should see jq-1.x.
ffmpeg (video)
What it is
The Swiss-army knife of audio and video. Convert formats, trim clips, extract frames, resize for Instagram, pull audio out of a video, generate thumbnails. It is one tool that does roughly fifty different video jobs.
Why you might need it
- Resize a recorded video into 9:16 for Instagram Reels or 1:1 for a feed post.
- Pull a still frame out of a video to use as a thumbnail.
- Convert a long recording into a short clip.
- Strip the audio out of a video for transcription.
- Used by the
/videoskill and any content workflow that handles uploaded video.
📹 Skip if
You do not plan to work with video at all. You can always come back here later when you do.
How to install
brew install ffmpeg
This is a larger install than jq or python (about 1-2 minutes). Be patient.
Verify
ffmpeg -version
You should see a long version block. That is normal. It works.
Playwright (PDF export)
What it is
Playwright is a tool that runs a real web browser in the background, with no window. It can open an HTML page, render it pixel-perfect, and save it as a PDF. We use it for one specific job: turning HTML slide decks into 1920x1080 PDFs.
Why you might need it
- The
/pitch-deckskill builds beautiful HTML slide decks. Playwright turns them into PDFs you can email, share, or upload to LinkedIn. - The
/flow-deckskill (interactive scroll-snap presentations) can also export to PDF the same way. - The script lives at
scripts/export_deck_pdf.pyin your system folder.
🖼️ Skip if
You do not plan to export decks to PDF. You can present them in the browser instead, no install needed.
How to install
This needs Python 3 first (the Python 3 lesson). Then run two commands:
# Install the Python library python3 -m pip install --user playwright # Download the actual headless browser python3 -m playwright install chromium
The second command downloads about 150MB. It only runs once. If the first command complains about an "externally-managed-environment", paste the error to Claude and it will fix it in one step.
Verify
python3 -c "from playwright.sync_api import sync_playwright; print('ok')"You should see ok. If you see an error about pip3 not being found, install Python 3 first.
Puppeteer + pdf-lib (carousels)
What it is
Puppeteer is the Node.js cousin of Playwright. It also runs a headless browser. We use it for a different job: rendering HTML carousel slides into individual PNG images that can be uploaded to Instagram or LinkedIn. pdf-lib is a small helper that stitches multiple slides together when you need them as a single PDF.
Why you might need it
- The
/ig-postskill builds Instagram carousels in HTML, then renders each slide as a 1080x1080 PNG. - The
/linkedin-carouselskill builds LinkedIn-style document carousels and exports them as a single PDF. - The
/branded-postand/product-carouselskills also use this pipeline.
🎨 Bottom line
If you want to publish carousels to Instagram or LinkedIn directly from Claude, install this. If you only do text posts, skip it.
How to install
These install through npm, which needs Node.js. If you have not set up Node.js yet, do the Set Up Your Toolchain lesson first. The carousel skills install these on demand the first time you run them, so you usually do not need to do this manually. But if you want to install them ahead of time:
# Inside your system folder cd ~/my-business # Install both libraries (only used when needed, not committed) npm install puppeteer pdf-lib --no-save
The first time Puppeteer runs, it will also download a Chromium browser (about 200MB). One-time download.
Verify
node -e "require('puppeteer'); console.log('ok')"You should see ok.
Wrangler (image hosting)
What it is
Wrangler is the command-line tool for Cloudflare. We use it for one specific job: uploading rendered carousel images to Cloudflare R2 (a cheap, fast image hosting bucket) so that social media schedulers can pull them in. It is the bridge between "Claude rendered an image on your laptop" and "Instagram can fetch it".
Why you might need it
- If you schedule posts through a social tool that needs a public image URL (most of them do).
- The
/ig-postpipeline uses it to upload PNGs to your R2 bucket and then passes the URL to your scheduler. - Without it, you would have to manually upload images to Instagram, which defeats the point of automation.
☁️ Skip if
You post manually, or you use a different image host (S3, Bunny, an S3-compatible service, your own server). You can swap the upload step in the skill for whatever you use.
How to install
Wrangler installs through npm, so set up Node.js in the Set Up Your Toolchain lesson first if you have not.
npm install -g wrangler
Then sign in to your Cloudflare account:
wrangler login
This opens your browser, you log in, and Wrangler stores the token. You only do this once.
You also need an R2 bucket
Sign up at cloudflare.com (free), turn on R2 in the dashboard, create a public bucket, and copy the public URL. The free tier is generous and most solopreneurs never pay anything.
Verify
wrangler --version
Supabase & Stripe CLIs
What they are
Two completely optional command-line tools you only need if you connect your root system to a database (Supabase) or to a payment processor (Stripe).
Supabase CLI
Supabase is a free hosted database. If you want your CRM, dashboards, sequences, or content logs to live in a real database instead of local files, you connect a Supabase project. The CLI lets Claude deploy edge functions, manage secrets, and run migrations from your terminal.
Skip if you are running everything from local files (most beginners do this for the first few months).
brew install supabase/tap/supabase
supabase --version
Stripe CLI
Stripe processes payments. If you sell products through Stripe and want Claude to help you test webhooks (the events Stripe sends when someone pays you), the CLI is the easiest way.
Skip if you do not take payments through Stripe.
brew install stripe/stripe-cli/stripe
stripe --version
💳 Honest take
Most beginners skip both of these for the first month or two. You can run the entire root system from local files. Add database and payment integrations once you have rhythm and need them, not before.
Web Access (Firecrawl)
What it is
Claude Code works with the files on your computer. Firecrawl gives it the web too: it fetches pages and turns them into clean text Claude can read. Think of it as handing Claude a web browser.
This walkthrough shows the whole setup in under 5 minutes.
Why you might need it
Once it is connected, you can paste a URL and say "read this and summarize it", ask Claude to research a topic across several sources, check what a competitor's site says, or have it read a tool's documentation and explain it back to you. Claude Code does have basic built-in web tools, but they often stumble on modern sites with heavy JavaScript or complex layouts. Firecrawl renders those properly and strips out the noise.
🌐 Skip if
You do not need Claude to read web pages yet. You can always come back and set it up later.
Get your API key
Firecrawl has a free tier that gives you 500 credits per month, which is plenty for most people. You only need a paid plan if you are doing heavy research every day.
fc- followed by a long string of characters. Keep it handy for the next step.🔑 Keep your API key private
Do not share your API key or post it anywhere public. It is linked to your account. If you accidentally share it, you can always generate a new one from your Firecrawl dashboard.
Connect it to Claude Code
You do this once and it works from then on.
cd ~/my-business).claude and pressing Enter.Set up Firecrawl as an MCP server. My API key is fc-YOUR-KEY-HERE. Claude writes the configuration for you. For reference, it creates or updates a small config file in your home folder (~/.claude.json) with Firecrawl's connection details. You do not need to touch that file yourself.exit, then claude again.Verify
Ask Claude to do something that needs a live web page:
Read this page and summarize it: https://firecrawl.dev
If Claude comes back with a summary of the page, it is working. If nothing happens, the usual cause is not restarting Claude Code after setup. Still stuck? Ask Claude "Check if Firecrawl is configured correctly" and it will diagnose it.
The scripts/ Folder
What it is
Already in your system folder. You did not have to install it. It is a folder with small helper scripts that some skills shell out to. Two come with the template:
scripts/deploy.sh, a template script for uploading your website to your host (Netlify, Vercel, Hostinger, Cloudflare Pages, GitHub Pages, S3, R2, anything). It ships configured for rsync over SSH but the comment block at the top tells you exactly how to swap it for whatever you use.scripts/export_deck_pdf.py, the Playwright-based PDF exporter for slide decks. You only need this if you installed Playwright.
Why it exists
Anything that is too long or repetitive to put inside a skill file lives here. Skills point to scripts, scripts do the heavy lifting. This keeps your skill files readable and your repetitive operations in one place.
Configuring deploy.sh
Open scripts/deploy.sh in any editor. The top of the file has a config block with placeholder values like your-ssh-user. Replace them with your actual host details. The script will refuse to run until you do this, so you cannot accidentally deploy with wrong settings.
Adding your own scripts
Drop any script you write into this folder, give it a clear name, add a comment block at the top explaining what it does, and reference it from your skill files. Keep them small and readable.
📂 You are done
That is everything in the expansions guide. You now know what every optional tool in your root system does, why it exists, and how to install it. Come back any time a skill mentions a tool you have not installed yet.