Skip to main content

namehunt

Naming a company usually goes: generate names, check domains, find everything taken, start over. namehunt closes that loop in one CLI — an LLM proposes names from your brief, RDAP checks live availability on your TLDs, and the results plus your feedback steer the next round.

$ namehunt run --brief brief.md --tlds com,ai

 round 2 — 20 new candidates
┏━━━┳━━━━━━━━━┳━━━━━━┳━━━━━┓
┃ # ┃ name    ┃ .com ┃ .ai ┃
┡━━━╇━━━━━━━━━╇━━━━━━╇━━━━━┩
│ 1 │ vesper  │  ❌  │ ❌  │
│ 2 │ corvid  │  ❌  │ ❌  │
│ 3 │ prescry │  ✅  │ ✅  │
└───┴─────────┴──────┴─────┘
[a]nother round  [l]ike <numbers>  [d]islike <numbers>  [n]ote <text>  [q]uit & export

Works with an Anthropic or OpenAI API key — or with no key at all, using your existing Claude Code or Codex CLI login.

Quickstart

Needs uv. Write a few lines about your project, then run:

printf 'CLI that turns messy CSVs into typed parquet.\nFor data engineers. Vibe: short, unix-y.\n' > brief.md
uvx namehunt run --brief brief.md --provider claudecode --tlds com,ai

(No Claude Code? Use --provider claude with ANTHROPIC_API_KEY exported.)

Each round prints the table, then asks for feedback:

  • l 2 5 / d 3 — like / dislike rows, steers the next round
  • n shorter, more mythic — free-text steering note
  • a — another round, q — quit

Ctrl-C is always safe; state is saved after every round.

uvx namehunt resume --session default               # pick up where you left off
uvx namehunt export --session default --format md   # or csv, json

Useful flags: --batch 20 names per round, --rounds 3 to run unattended, --style "short, mythic", --session <name> for parallel hunts, --debug to print the outgoing LLM prompt. Permanent install: uv tool install namehunt.

Providers

--provider Needs Billing
claudecode Claude Code installed + signed in your Claude subscription
codexcli Codex CLI installed + signed in your ChatGPT subscription
claude (default) ANTHROPIC_API_KEY Anthropic API, per token
openai OPENAI_API_KEY, uv sync --extra openai OpenAI API, per token

The CLI providers run claude -p / codex exec (sandboxed read-only) as subprocesses and strip API keys from their environment, so they can never silently bill an API. Subscription login is for personal use — don't ship a product on it (Anthropic's policy).

NAMEHUNT_PROVIDER sets the default provider; NAMEHUNT_HOME moves the state dir (default ~/.namehunt). Keys are read from the environment and never written to disk.

How availability works

  • ✅ available — the registry's RDAP says the domain doesn't exist
  • ❌ taken — RDAP returned a registration
  • ❓ unknown — the check failed (timeout, rate limit, or a TLD without RDAP, like .io). Never treated as available.

RDAP "available" is a strong signal, not a guarantee: premium and reserved names can still be unregisterable. Re-check at your registrar and run a trademark search before you fall in love.

Development

git clone https://github.com/Tarabcak/namehunt && cd namehunt && uv sync
uv run pytest -q                     # all network mocked; suite blocks real sockets
uv run ruff check . && uv run mypy src

Built spec-first with strict TDD by Claude Code; the spec, workflow rules and hooks are in the repo (namehunt-SPEC.md, CLAUDE.md). Every RDAP failure path is tested to map to unknown, never available.

Metadata

Release files for namehunt 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for namehunt 0.1.2
File Size Uploaded
namehunt-0.1.2.tar.gz 90.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for namehunt 0.1.2
File Interpreter ABI Platform
namehunt-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 109.6 kB

Release files / namehunt-0.1.2.tar.gz

Download URL namehunt-0.1.2.tar.gz
Size 90.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e46d0ece3d3eb590691c2c21d83982fdcbe4b77614a4a9c6ecf4fc4380d31529
BLAKE2b-256 checksum
How to use checksums
f2242e33fb43ce79089bdcfb01c507519b32080f88f1fbc133e3d30d3fdd18a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / namehunt-0.1.2-py3-none-any.whl

Download URL namehunt-0.1.2-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81f93ab90f4e50d5e3d48cf94b1e925af3fe18fa6c5feaac69950855c45cd443
BLAKE2b-256 checksum
How to use checksums
3cfe4a0bfa7d884ddd8f6e7e4c445a463ef0544d61244a56b66527ce66bb9129
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page