Replica Brand
Jakeschincariol/replica-skill
Names and rebrands an app clone so it is the user's own: name candidates with the trademark, domain, store and handle checks to run, a new palette checked for contrast, a logo brief, a voice guide…
When you want to brainstorm and check available .com domains for a new project — brand naming, aftermarket pricing (HugeDomains / Afternic / Sedo / Dan), USPTO trademark screening, and social handle…
$ npx skills add coreyhaines31/makerskills --skill domain -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install coreyhaines31/makerskills domain --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/domain .claude/skills/domain && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "domain" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/domain into .claude/skills/domain/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domain", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/coreyhaines31/makerskills/tree/main/skills/domainType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add coreyhaines31/makerskills --skill domain -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install coreyhaines31/makerskills domain --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/domain .agents/skills/domain && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "domain" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/domain into .agents/skills/domain/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domain", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coreyhaines31/makerskills --skill domain -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install coreyhaines31/makerskills domain --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/domain .cursor/skills/domain && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "domain" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/domain into .cursor/skills/domain/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domain", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/coreyhaines31/makerskills.git --path skills/domain--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add coreyhaines31/makerskills --skill domain -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install coreyhaines31/makerskills domain --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/domain .gemini/skills/domain && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "domain" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/domain into .gemini/skills/domain/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domain", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install coreyhaines31/makerskills domainInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add coreyhaines31/makerskills --skill domain -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/domain .github/skills/domain && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "domain" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/domain into .github/skills/domain/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domain", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coreyhaines31/makerskills --skill domain -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install coreyhaines31/makerskills domain --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/makerskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/domain .opencode/skills/domain && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "domain" agent skill from https://github.com/coreyhaines31/makerskills/tree/main/skills/domain into .opencode/skills/domain/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domain", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
domainWhen you want to brainstorm and check available .com domains for a new project — brand naming, aftermarket pricing (HugeDomains / Afternic / Sedo / Dan), USPTO trademark screening, and social handle…
Domain is an agent skill from coreyhaines31/makerskills. When you want to brainstorm and check available .com domains for a new project — brand naming, aftermarket pricing (HugeDomains / Afternic / Sedo / Dan), USPTO trademark screening, and social handle availability. Built on Laura Roeder's "work backwards from availability" method. Combines Vercel CLI, whois, Domainr, Namecheap, and agent-browser, each for what it reliably does. Workflow: budget → brainstorm → availability check → whois cross-check → price → aftermarket sweep (plus liveness probe and drop-watch) →…
Its SKILL.md is about 5.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Legal & Compliance, covering Brainstorming, Intellectual property and Brand strategy and identity. It works with Vercel and X (Twitter). The repository describes itself as: AI agent skills for the personal operator's craft — decisions, research, second-brain, content rotation, scenario modeling, and meta-skills to author more. Works with Claude… The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cc31579. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
vercelcurlnpxjqnpmbrewFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.namecheap.comdata.iana.orgrdap.identitydigital.servicesrdap.nic.sordap.orgdomainr.p.rapidapi.comhugedomains.comafternic.comsedo.comdan.comtmsearch.uspto.govx.comlinkedin.comAlso links to:
lauraroeder.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DOMAINR_API_KEYNAMECHEAP_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Domain loads about 5.8k tokens when it runs. Until then it costs about 202 tokens; SKILL.md has 2,262 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from coreyhaines31/makerskills at commit cc31579, republished under its MIT licence (© coreyhaines31). 2,262 words, ~5,845 tokens.
.claude/skills/domain/SKILL.md (or your agent's skills folder).Multi-tool workflow to find a great, affordable, available .com for a new project. Built on Laura Roeder's rule: work backwards from what's actually available — don't fall in love with a name first (source).
Defaults to .com only. Only deviate (.dev, .co, .io, .ai) if the project is dev-tooling-only or the user explicitly asks.
Verify these before proceeding (surface install commands if missing, don't try to install silently):
| Tool | Check | Install if missing |
|---|---|---|
| Vercel CLI | vercel whoami | npm i -g vercel && vercel login |
| whois | which whois | brew install whois (macOS) |
| Domainr API key | [ -n "$DOMAINR_API_KEY" ] | Get free key at rapidapi.com/domainr/api/domainr, add to ~/.zshenv |
| Namecheap API | [ -n "$NAMECHEAP_API_KEY" ] && [ -n "$NAMECHEAP_API_USER" ] && [ -n "$NAMECHEAP_CLIENT_IP" ] | Enable API at ap.www.namecheap.com/settings/tools/apiaccess/, add 3 env vars, whitelist your IP |
Domainr + Namecheap are optional — the workflow degrades gracefully without them (skips the corresponding cross-check steps).
Ask: what would you pay for a great .com on this project? Anchor defaults:
| Budget | What it buys |
|---|---|
| $0 | Only unregistered domains (rare for anything good) |
| $250–$1k | Aftermarket sweet spot (HugeDomains is the standout — Laura found "a ton of great .com's available for less than $1k") |
| $1k–$2k | Laura's Paperbell.com range — plenty of brandable options |
| $2k+ | Premium |
Filter all candidates to under-budget BEFORE falling in love.
Ask what the product does + the feeling/category. Brainstorm 20–40 candidate domains using these preferences (in order):
try (TryGamma, TryRoam), use (UseMotion, UseChalk), with (WithCove, WithFrame), join (JoinHomebase, JoinHonor)get (GetMagic, GetResponse), go (GoCardless, GoFundMe), hey (HeyMarvin, HeyHenry), the (TheBrowserCompany, TheDyrt — editorial vibe)my (MyFitnessPal), meet (MeetEdgar)+ly (Calendly, Grammarly — battle-tested but reads "2015 startup"), +ify (Spotify, Shopify — rare, hard to land authentically), +labs (AI/research positioning), +hq / +app (mostly informal)UseSlack.com is a brand violation even if registrable); popular bare words often have try/use/get/join variants pre-grabbed by the same owner; longer URLs cost spelling-on-phone bandwidthtry/use/with/join/get/go/hey/the + word and word + ly/ify/labs/hq/app in one shot — ~15 variantsSurface a numbered candidate list before checking — don't burn cycles checking obvious losers.
Use vercel domains check for availability and vercel domains price for registrar quotes. Loop candidates:
for domain in candidate1.com candidate2.com candidate3.com; do
echo -n "$domain: "
vercel domains check "$domain" 2>&1 | grep -E "available|not available|Error" || echo "checking..."
doneFor pricing on the candidates that came back available:
vercel domains price candidate1.com candidate2.com candidate3.comFor a single deeper check on a taken domain (registrar status, expiration, nameservers if the domain is already Vercel-managed):
vercel domains inspect candidate.comTLD reliability: Vercel CLI is rock-solid for .com and most gTLDs, but returns errors for .ai, .dev, .io, .app (Vercel doesn't sell those registrar-side). Skip Step 3 for non-.com candidates and go straight to Step 4.
whoisGround truth for registration status. Query the right server per TLD — pinning -h whois.verisign-grs.com to a non-.com produces silent false negatives.
Classification order matters (stolen from unclaimed): check for REGISTERED signals first, then available signals. A parked domain's whois/lander can contain "this domain is available for sale" — grepping for "available" first turns a taken name into a false positive. And reserved ≠ available: "is reserved", "not available for registration", "blocked for registration" all mean taken, even though RDAP often 404s these names.
creation date, registrar:, registry expiry, registrant, name serveris reserved, reserved by, not available for registration, blocked for registrationno match, not found, no entries found, no object found, not registered, available for registration.com / .net — Verisign:
for domain in candidate1.com candidate2.com; do
result=$(whois -h whois.verisign-grs.com "$domain" 2>&1)
if echo "$result" | grep -qiE "registrar:|creation date"; then
expiry=$(echo "$result" | grep -i "registry expiry" | head -1 | sed 's/.*: //')
echo "$domain → TAKEN (expires $expiry)"
elif echo "$result" | grep -qiE "is reserved|reserved by|not available for registration|blocked for registration"; then
echo "$domain → RESERVED (not registrable)"
elif echo "$result" | grep -qi "no match"; then
echo "$domain → AVAILABLE"
else
echo "$domain → UNKNOWN (do not treat as available)"
fi
doneAny other TLD — don't hardcode servers; ask IANA for the authoritative whois host, then query it (whois.nic.<tld> is the fallback convention):
tld=ai
server=$(whois -h whois.iana.org "$tld" 2>/dev/null | grep -i "^whois:" | awk '{print $2}')
server=${server:-whois.nic.$tld}
whois -h "$server" candidate.$tldCaveat: some registries have no port-43 whois at all (Google's .dev/.app/.page — IANA lists nothing and whois.nic.dev doesn't resolve). For those, RDAP below IS the ground truth.
RDAP for .dev / .app / .io and other modern TLDs — JSON-native, cleaner than whois when the TLD supports it:
UA="domain-skill/0.1 (availability check)"
for domain in candidate.dev candidate.app; do
code=$(curl -sL -o /dev/null -w "%{http_code}" -A "$UA" "https://rdap.org/domain/$domain")
case "$code" in
404) echo "$domain → probably available (confirm via whois — see caveat)" ;;
200) echo "$domain → TAKEN" ;;
429) echo "$domain → rate-limited, sleep + retry" ;;
*) echo "$domain → UNKNOWN (do not treat as available)" ;;
esac
sleep 1 # rdap.org rate-limits aggressively
doneRDAP gotchas (all verified by the unclaimed project):
https://data.iana.org/rdap/dns.json). For a TLD outside it, an rdap.org 404 is meaningless — fall back to whois. Two useful direct endpoints not in the bootstrap: .io → https://rdap.identitydigital.services/rdap/domain/<domain>, .so → https://rdap.nic.so/domain/<domain>.events[] — the expiration eventDate feeds the drop-watch in Step 7b.Reading the results:
No match / no object found / RDAP 404 (whois-confirmed) = unregistered, availableRegistrar: <name> / RDAP 200 = taken, check the aftermarketBulk multi-TLD sweeps — if the hunt widens beyond a dozen candidates or beyond .com, don't hand-roll the loop; unclaimed does RDAP+whois with correct classification, resumable SQLite caching, and pricing (Node 24+):
npx unclaimed check orbit --tlds com,io,ai,dev
npx unclaimed sweep --words-file ./candidates.txt --tlds com
npx unclaimed available --sort commercial --limit 50Its three states map to ours: available / registered / unknown (it never reports a timeout as available either).
Domainr aggregates registrar + marketplace status across many TLDs. Skip if DOMAINR_API_KEY unset — otherwise:
for domain in candidate1.com candidate2.com; do
curl -s "https://domainr.p.rapidapi.com/v2/status?domain=$domain" \
-H "X-RapidAPI-Key: $DOMAINR_API_KEY" \
-H "X-RapidAPI-Host: domainr.p.rapidapi.com" \
| jq -r --arg d "$domain" '.status[] | "\($d): \(.status) — \(.summary)"'
doneStatus codes:
undelegated inactive → unregistered, freeactive → registered, in usemarketed, parked, priced → for sale on aftermarket (Domainr surfaces price hint when available)premium → registry premium (often $500+/yr)marketed or priced = high-signal flag to dig into HugeDomains/Afternic in Step 7.
Fallback registrar — sometimes cheaper than Vercel on year-1 promo pricing. Skip if NAMECHEAP_API_* unset — otherwise:
DOMAINS="candidate1.com,candidate2.com,candidate3.com"
curl -s "https://api.namecheap.com/xml.response?ApiUser=$NAMECHEAP_API_USER&ApiKey=$NAMECHEAP_API_KEY&UserName=$NAMECHEAP_API_USER&Command=namecheap.domains.check&ClientIp=$NAMECHEAP_CLIENT_IP&DomainList=$DOMAINS" \
| xmllint --xpath '//*[local-name()="DomainCheckResult"]' - 2>/dev/null \
| grep -oE 'Domain="[^"]+" Available="[^"]+"( IsPremiumName="[^"]+")?( PremiumRegistrationPrice="[^"]+")?'Available="true" = registrable at Namecheap registrar prices (typically $9–$15/yr for .com). IsPremiumName="true" = registry premium tier (skip unless under budget).
Reconcile Vercel + Domainr + Namecheap + whois. If they disagree (rare, happens during registrar transfers), trust whois for registration truth and the cheaper of Vercel/Namecheap for actual purchase.
Don't try to scrape marketplaces. All verified failing:
curl (even with realistic User-Agent) → HugeDomains 403, GoDaddy Akamai access-deniedWebFetch) → Cloudflare 403 across the boarddev-browser skill with real Chromium → Cloudflare fingerprints Playwright automation flags, serves challenge pages. Bypassing needs playwright-extra + stealth plugin (flaky) or pre-warmed browser profile with human-solved captcha (not worth it for a domain hunt)domainr.com public web → IP-rate-limitedrdap.org → registration status only, no aftermarket pricingWhat works: compose marketplace URLs and have the user click. ~30 seconds per domain, 100% reliable. For every "taken" candidate the user is still curious about, output:
namedyoulove.com — TAKEN (Registrar: GoDaddy)
Aftermarket pricing — click to verify:
HugeDomains: https://www.hugedomains.com/domain-profile.cfm?d=namedyoulove&e=com
Afternic: https://www.afternic.com/domain/namedyoulove.com
Sedo: https://sedo.com/search/searchresult.php4?keyword=namedyoulove.com
Dan/GoDaddy: https://dan.com/buy-domain/namedyoulove.comLaura's HugeDomains note: she got Paperbell.com from HugeDomains for $1,795 and recommends them as the best aftermarket starting point — "a ton of great .com's available for less than $1k." Always check HugeDomains first on taken candidates.
You can't scrape the marketplaces, but you CAN fetch the taken domain itself — and its lander usually tells you where it's for sale. A taken name with no real site is also the best negotiation/outreach lead: the owner isn't using it.
UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
for domain in taken1.com taken2.com; do
body=$(curl -sL --max-time 6 -A "$UA" "https://$domain/" 2>/dev/null | head -c 16384)
[ -z "$body" ] && body=$(curl -sL --max-time 6 -A "$UA" "http://$domain/" 2>/dev/null | head -c 16384)
final=$(curl -sIL --max-time 6 -A "$UA" -o /dev/null -w '%{url_effective}' "https://$domain/" 2>/dev/null)
hay="$final
$body"
if [ -z "$body" ]; then
echo "$domain → NONE (no DNS / dead server — best outreach lead)"
elif echo "$hay" | grep -qiE "sedoparking|bodis\.com|parkingcrew|afternic|dan\.com|hugedomains|buy this domain|domain (name )?is for sale|domain for sale|buy now for|parked free|this web page is parked|domain has expired"; then
marker=$(echo "$hay" | grep -oiE "sedoparking|afternic|dan\.com|hugedomains|for sale" | head -1)
echo "$domain → PARKED ($marker — for-sale lead, note which marketplace)"
else
echo "$domain → LIVE (real site, owner is using it — long shot)"
fi
done(The final-URL check matters: many parked domains redirect straight to their marketplace host — e.g. landing on hugedomains.com tells you where to buy even if the lander body is JS.)
Classify each taken candidate:
Only probe taken candidates the user still cares about — it's one live request per domain.
For taken candidates, Step 4 already surfaced the expiry date. gTLD post-expiry lifecycle: auto-renew grace (≤45d) → redemption (30d) → pending delete (5d), so a lapsed name drops back to the pool ~75–80 days after expiry. Most names just get renewed — but if a candidate is NONE/PARKED and expiry already passed, it may genuinely be dropping:
whois -h whois.verisign-grs.com candidate.com | grep -iE "expiry|domain status"redemptionPeriod or pendingDelete = the owner let it lapse. Estimate drop ≈ expiry + 80 days; put a backorder in at DropCatch/SnapNames (~$59–79, pay only on catch) rather than negotiating.Group into:
When a candidate is listed:
For top 3–5 candidates that survived availability + budget:
What does NOT work (verified — don't waste cycles):
curl against tmsearch.uspto.gov → AWS WAF challenge, JS shell only, no dataWebFetch) against tmsearch.uspto.gov → same WAF, empty SPA shellcurl or plain fetch (e.g. WebFetch) against Justia, Trademarkia, TrademarkElite → all 403What works: drive the real USPTO Trademark Search SPA with agent-browser. Angular + Material components, but the input + Enter-to-submit pattern is reliable.
# Open + search
agent-browser open "https://tmsearch.uspto.gov/" --session tm
sleep 4
agent-browser fill "#searchbar" "<phrase to check>" --session tm
agent-browser press Enter --session tm
sleep 6
# Capture results
agent-browser screenshot /tmp/tm-<slug>.png --session tm
agent-browser eval "(()=>{const m=document.body.innerText.match(/([0-9,]+)\s+results?\s+for/i); return m?m[0]:'no count';})()" --session tmReading the result:
snapshot -i | grep wordmark). USPTO orders by relevance — an exact-phrase match appears at the top. If top hits are fragmentary ("MY KNOW", "KNOW MY" as separate marks), you almost certainly don't have a blocking exact-phrase registration.This is screening, not legal advice — for any name you're seriously committing to, run past an IP lawyer or full clearance service (Cometrics/Corsearch).
agent-browser close --session tm# X / Twitter (404 = available)
for handle in candidate1 candidate2; do
code=$(curl -sL -o /dev/null -w "%{http_code}" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" "https://x.com/$handle" --max-time 10)
echo " @$handle → x.com $code"
done
# LinkedIn company page (404 = available)
for handle in candidate1 candidate2; do
code=$(curl -sL -o /dev/null -w "%{http_code}" -A "Mozilla/5.0" "https://www.linkedin.com/company/$handle" --max-time 10)
echo " $handle → linkedin $code"
doneInstagram is unreliable from script — IG returns 200 for any URL (SPA shell loads even for non-existent handles, "isn't available" message renders client-side). Give the user a click-through:
Instagram: https://instagram.com/<handle>30 seconds of manual click beats fighting the IG SPA detection.
When the user picks a winner that's directly available, buy at whichever registrar quoted the lowest price in Step 3 vs Step 6:
# Vercel
vercel domains buy <domain>.com
# Namecheap (via API — uses ~/.zshenv credentials)
curl -s "https://api.namecheap.com/xml.response?ApiUser=$NAMECHEAP_API_USER&ApiKey=$NAMECHEAP_API_KEY&UserName=$NAMECHEAP_API_USER&Command=namecheap.domains.create&ClientIp=$NAMECHEAP_CLIENT_IP&DomainName=<domain>.com&Years=1&..."Vercel is one-command and keeps DNS in the same dashboard as deploys — preferred unless Namecheap is meaningfully cheaper (often is on year-1 promo). Auto-renew on by default for both.
Confirm with the user before running — this charges real money.
For aftermarket purchases: buy through the marketplace directly (HugeDomains/Afternic/Sedo all handle escrow). Then transfer or point nameservers to Vercel after transfer completes.
toolify — wire up the Domainr and Namecheap API credentials if the user hasn't yetbusiness-brainstorm — pressure-test the underlying business idea BEFORE the domain hunt (a bad idea with a great .com is still a bad idea)decide — for the "which of the top 3 candidates" call if it's not obviousskillify — if the domain hunt surfaces a repeat workflow worth capturing (e.g., specific niche naming patterns), scaffold as its own sub-skillvercel domains buy until the user explicitly says "buy it." Real money. Availability + price checks (Step 3) use vercel domains check + vercel domains price which are safe.Laura Roeder's original post: https://lauraroeder.com/how-i-nabbed-the-com-for-my-bootstrapped-startup-without-spending-a-million-bucks-6dc35c4606e9
© coreyhaines31, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/domain of coreyhaines31/makerskills.
Open the folder on GitHubat commit cc31579
Domain next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Domain this skillcoreyhaines31/makerskills | 851 | — | ~5.8k | Automated safety check: Pass | MIT | |
| Replica BrandJakeschincariol/replica-skill | 1.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Patent Brainstorm Path Trackerillusionaireal/oh-my-patent | 104 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Innovationtravisjneuman/.claude | 100 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Brand Name Checkerluongnv89/skills | 131 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Viral Titlekangarooking/kangarooking-skills | 662 | — | ~1.7k | Automated safety check: Pass | None |
Jakeschincariol/replica-skill
Names and rebrands an app clone so it is the user's own: name candidates with the trademark, domain, store and handle checks to run, a new palette checked for contrast, a logo brief, a voice guide…
illusionaireal/oh-my-patent
Records, branches and visualizes the rounds of a patent brainstorming session, scoring each candidate and letting you restore an abandoned idea.
travisjneuman/.claude
Innovation management expertise for innovation frameworks (Design Thinking, Stage-Gate), ideation processes, innovation portfolio management, venture capital, open innovation, and IP strategy.
luongnv89/skills
Check product and brand names for conflicts across trademarks, domains, social handles, and package registries.
kangarooking/kangarooking-skills
Generate high-potential viral title candidates for content across WeChat public account articles, X/Twitter posts, YouTube videos, Bilibili videos, and similar content platforms.
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
coreyhaines31/makerskills
When you want to pressure-test a potential new business, product, or side project against the serial-founder filter.
coreyhaines31/makerskills
Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so an agent can answer on your team's behalf.
coreyhaines31/makerskills
Monthly CFO workflow for a company or agency — pull raw data from bank + payment processor + payroll + expense management, categorize and reconcile, compute end-of-month cash via transaction-sum…
coreyhaines31/makerskills
When you have a decision to make and want a structured workflow that picks the load-bearing questions, walks through them, reaches a call (or "wait"), and archives the rationale for future reference.
coreyhaines31/makerskills
When you paste raw human input — a call transcript (Grain, Zoom, Granola, Fathom), a text or email from a client/partner/friend, a voice-memo dump, or meeting notes — and want it converted into…
coreyhaines31/makerskills
When you want multiple expert perspectives on a founder/operator question — a simulated board of advisors (Jason Fried, Elon Musk, Jeff Bezos, Jensen Huang, Bob Iger, Paul Graham, Naval Ravikant…
Works with
When you want to brainstorm and check available .com domains for a new project — brand naming, aftermarket pricing (HugeDomains / Afternic / Sedo / Dan), USPTO trademark screening, and social handle…. Domain is an agent skill from coreyhaines31/makerskills.com domains for a new project — brand naming, aftermarket pricing (HugeDomains / Afternic / Sedo / Dan), USPTO trademark screening, and social handle availability.
Domain fits situations like: check domain availability; brainstorm a domain; what .com is available for X; name my project.
Run `npx skills add coreyhaines31/makerskills --skill domain -a claude-code`. Or copy the skill folder (skills/domain in coreyhaines31/makerskills) into .claude/skills/domain in your project. Claude Code loads it when a task matches its description.
Run `npx skills add coreyhaines31/makerskills --skill domain -a codex`. Or copy the skill folder (skills/domain in coreyhaines31/makerskills) into .agents/skills/domain in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add coreyhaines31/makerskills --skill domain -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/domain, .gemini/skills/domain, .github/skills/domain and .opencode/skills/domain in your project.
Going by SKILL.md and its folder, Domain needs the command-line tools its instructions call (vercel, curl, npx, jq, npm and brew) and credentials named DOMAINR_API_KEY and NAMECHEAP_API_KEY. Our summary lists: Node.js; A credential in DOMAINR_API_KEY; A credential in NAMECHEAP_API_KEY.
SKILL.md names 15 domains. In commands or code: api.namecheap.com, data.iana.org, rdap.identitydigital.services, rdap.nic.so, rdap.org, domainr.p.rapidapi.com, hugedomains.com, afternic.com, sedo.com, dan.com, tmsearch.uspto.gov, x.com and linkedin.com; the agent is likely to contact these when it follows the instructions. As links in the text: lauraroeder.com and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Domain is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.8k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Domain: Replica Brand (Jakeschincariol/replica-skill, 1.4k stars), Patent Brainstorm Path Tracker (illusionaireal/oh-my-patent, 104 stars), Innovation (travisjneuman/.claude, 100 stars) and Brand Name Checker (luongnv89/skills, 131 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
coreyhaines31 (a GitHub user) maintains it in coreyhaines31/makerskills, which has 851 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 2026.
Source: coreyhaines31/makerskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.