Playbook
Tools Running a script
Tools · Playbook

Running a script

Your time
~3 min
Needs
Terminal
Sections
2
Updated
Today
Stuck? Copy this into a chat
You're helping a Haeeum client manager run one of our scripts.

What a script is: a text file of instructions that Python reads and carries out. Ours all follow the same pattern — you type one line in Terminal naming the script and a website, it does its checks, prints a plain-English report, and stops. Nothing installs. Nothing runs in the background. They only read; none of them can change anything on a website, however many times you run them.

The scripts:
- intake.py — checks a client's domain before onboarding. Reports where their DNS is managed, whether blog.theirdomain is free, which version of their site (www or not) it lands on, and what their email runs on. Replaces a day of back-and-forth asking the client.
- brand-extract.py — reads a client's website and reports the colours its CSS actually uses (split into brand colours and neutrals), logo files, and fonts. Feeds the blog build prompt.
- canonical-check.py — checks whether one or more sites serve on both www and the bare domain with no redirect. Internal audit tool, not part of a client process.

Every script needs Python 3, which every Mac already has. Every one accepts --json at the end for raw output.

I want to understand what our scripts are and how to use them. Start by explaining what a script is in one paragraph, then list the three we have and what each is for. Then ask what I'm trying to do.
Ask me what I'm trying to do or what I'm seeing, then explain it in plain terms. Assume I've never used Terminal before.
Progress saves on this device — .
Section 1 of 2

Which script

The scripts
ScriptWhat it's forCommand
intake.pyCheck a client's domain before onboarding — DNS, whether blog. is free, www or not, emailpython3 intake.py royaltyfree.music
brand-extract.pyPull colours, logo and fonts from a client's site for the blog buildpython3 brand-extract.py https://royaltyfree.music
canonical-check.pyCheck whether sites serve on both www and the bare domain with no redirectpython3 canonical-check.py site1.com site2.com
Stuck? Copy this into a chat
You're helping a Haeeum client manager run one of our scripts.

What a script is: a text file of instructions that Python reads and carries out. Ours all follow the same pattern — you type one line in Terminal naming the script and a website, it does its checks, prints a plain-English report, and stops. Nothing installs. Nothing runs in the background. They only read; none of them can change anything on a website, however many times you run them.

The scripts:
- intake.py — checks a client's domain before onboarding. Reports where their DNS is managed, whether blog.theirdomain is free, which version of their site (www or not) it lands on, and what their email runs on. Replaces a day of back-and-forth asking the client.
- brand-extract.py — reads a client's website and reports the colours its CSS actually uses (split into brand colours and neutrals), logo files, and fonts. Feeds the blog build prompt.
- canonical-check.py — checks whether one or more sites serve on both www and the bare domain with no redirect. Internal audit tool, not part of a client process.

Every script needs Python 3, which every Mac already has. Every one accepts --json at the end for raw output.

I'm working out which script I need. The table on the page lists intake.py, brand-extract.py and canonical-check.py with what each is for and the command to run it.

If I describe what I'm trying to find out, tell me which script does it and the exact command to type, with the client's real domain substituted in.
Ask me what I'm trying to do or what I'm seeing, then explain it in plain terms. Assume I've never used Terminal before.
Section 2 of 2

Run it

Stuck? Copy this into a chat
You're helping a Haeeum client manager run one of our scripts.

What a script is: a text file of instructions that Python reads and carries out. Ours all follow the same pattern — you type one line in Terminal naming the script and a website, it does its checks, prints a plain-English report, and stops. Nothing installs. Nothing runs in the background. They only read; none of them can change anything on a website, however many times you run them.

The scripts:
- intake.py — checks a client's domain before onboarding. Reports where their DNS is managed, whether blog.theirdomain is free, which version of their site (www or not) it lands on, and what their email runs on. Replaces a day of back-and-forth asking the client.
- brand-extract.py — reads a client's website and reports the colours its CSS actually uses (split into brand colours and neutrals), logo files, and fonts. Feeds the blog build prompt.
- canonical-check.py — checks whether one or more sites serve on both www and the bare domain with no redirect. Internal audit tool, not part of a client process.

Every script needs Python 3, which every Mac already has. Every one accepts --json at the end for raw output.

I'm running a script in Terminal:
- Open Terminal (Cmd+Space, type terminal, Enter)
- Type 'cd ' then drag the scripts folder in, then Enter
- Type 'ls' to confirm the script names appear
- Type the command with the real domain, Enter
- Read the report

Context:
- 'cd' means 'change directory' — it moves Terminal into the folder so it can find the script. Dragging a folder into Terminal pastes its path, which saves typing it.
- 'ls' lists what's in the current folder. If the script names don't appear, you're in the wrong folder.
- python3 is the program that reads the script. It's already on every Mac.
- The report takes five to fifteen seconds because it's looking things up on the internet. Nothing is wrong if it pauses.
- Nothing you type here can change a client's website. The scripts only read.
Ask me what I'm trying to do or what I'm seeing, then explain it in plain terms. Assume I've never used Terminal before.
Reference

When something goes wrong

command not found: python3

Python isn't installed, which is rare on a Mac. Type xcode-select --install, press Enter, and follow the prompt. Takes a few minutes. Then try again.

No such file or directory

Terminal isn't in the folder with the script. Redo the cd step — type cd with the space, drag the folder in, Enter. Then ls to confirm.

lookup failed or UNREACHABLE in the report

Usually the network. Check you're online and run it again. If it persists, the domain may be typed wrong or the site may be down.

It just sits there

It's looking things up online and can take up to fifteen seconds. If nothing after a minute, press Ctrl C to stop it and try again.

The report says Unknown for the DNS provider

The script recognises the common providers by their nameservers. An unfamiliar one shows as Unknown but the nameservers are still listed underneath — paste them into a chat and ask who runs them.

I want to check several sites at once

canonical-check.py takes as many domains as you like on one line, or --file domains.txt with one per line. The others take one site at a time.

Report in hand

Return to Playbook