Skip to content

v0.3.0 — generate-names

Choose a tag to compare

@ralyodio ralyodio released this 19 Aug 14:03
· 38 commits to master since this release
171cd2f

Completes the naming pipeline: describe a product in a sentence, get a thousand candidates, keep only the ones you can register.

generate-names "a registry that checks whether Lean proofs actually compile" | domainfree

New in 0.3.0

generate-names

Turns a sentence into candidate names, ready to pipe into domainfree.

generate-names "a tool that finds dead states in agent graphs" -n 1000 --tld dev
generate-names "an open directory of independent blogs" --words 1

It asks the model for vocabulary, not for a thousand names. One cheap call returns ~40 head words and ~40 modifiers; the cross product is expanded locally and shuffled. Asking a model for 1,000 names directly repeats itself within a few hundred, drifts off the brief, and costs far more for a worse list — this way the call count is identical whether you want 10 names or 10,000.

Uses whichever of OPENAI_API_KEY / ANTHROPIC_API_KEY is set, OpenAI first when both are. Cheap tier by default on each side (gpt-4.1-mini / claude-haiku-4-5), overridable with --model. Called over plain fetch — this repo still has zero runtime dependencies.

Defaults to two English words and .com; --tld, --words, --count and --seed change that.

/domain:names

The generator as a moshcode command, alongside /domain:free and /domain:lookup.

moshcode plugin marketplace add profullstack/cli-tools
moshcode plugin install domain@cli-tools

Fixed

domainfree --help used generate-names as a placeholder for "whatever produces your list", which read as a command that existed and got command not found. It exists now, and the help says so honestly.

Verified against the live API

1,000 names generated (all unique, all .com); the documented pipeline end to end returned 9 registerable domains from 40 candidates; suite 137/137; typecheck clean.

Installation note

~/.local/bin/* may still point at ~/scripts/bin for the older commands — install-links.mjs never clobbers a link it does not own. Use --force to switch them over.