Skip to content

v0.2.0 — domainfree

Choose a tag to compare

@ralyodio ralyodio released this 19 Aug 11:48
· 42 commits to master since this release
ebb1436

First tagged release of @profullstack/cli-tools.

The package is private: true and not on npm, so this is a tag and a set of notes rather than a publish. Install by cloning and running pnpm install && pnpm link:bin.

New in 0.2.0

domainfree — find the domains you can actually register

domainfree sorrycheck.com sinkstate.com
domainfree --file candidates.txt
generate-names | domainfree --jobs 24

Only registerable names go to stdout, one per line, so it pipes into anything. Roughly 8,500 names in 45 seconds at the default concurrency.

Availability is read from RDAP, never inferred from DNS, because DNS cannot tell registration apart from configuration: a parked domain resolves and is taken, and a domain registered with no nameservers returns NXDOMAIN exactly like a name nobody owns.

Over 8,513 generated candidates, the DNS shortcut (dig NAME | grep "ANSWER: 0") reported 20 registered domains as free and missed none that were genuinely free. oubliette.com is the case to remember: registered in 1996, paid through 2034, three nameservers, no A record.

An indeterminate response — 429, 5xx, timeout — is retried once and then reported as ERR:<code>, never as available, and the exit status is 2. A name wrongly reported free is the only failure here that costs real time.

domain plugin

Registered in the marketplace alongside blog:

moshcode plugin marketplace add profullstack/cli-tools
moshcode plugin install domain@cli-tools
  • /domain:free — filter a list of candidates down to registerable names
  • /domain:lookup — everything about one name (RDAP record, dates, nameservers, DNS, reverse PTR) as JSON, wrapping the existing domainjson, which previously had no plugin

Also in this repo as of 0.2.0

Command Does
blog-post Publish to the plain-HTML blog: next post number, valid template, index entry, feed rebuild, and a lint that catches what silently breaks RSS
domainjson Whois-style, JSON-first lookup of a single name
domainfree Bulk availability across thousands of names
gh-prs Open pull requests across orgs and users, as an aligned table
gh-prs-merge Squash-merge every PR that qualifies; dry run by default
gh-prs-fix-all Repair PRs that need it
tcfeed Read a subreddit, scan the repos its posts link, shortlist what is worth reading

Installation note

install-links.mjs will report every command as "points elsewhere" if ~/.local/bin/* still points at ~/scripts/bin, which is the current state on the dev box. That is deliberate — the script never clobbers a link it does not own. Use --force to switch them over to this repo.