Skip to main content

namehunt

Name your company with a closed feedback loop — and run it on your Claude subscription, no API key needed. We built namehunt to rename our own startup: 8 rounds, 210 live-checked names, one winner. Every "AI name generator" hands you names that turn out to be taken; namehunt checks real availability via RDAP inside the loop, so every round learns from what's actually free.

A local CLI that runs a closed feedback loop for naming a company:

  1. An LLM (Claude by default, OpenAI optional) generates candidate name stems from your brief.
  2. Real domain availability is checked for each stem across your TLDs via RDAP (free, keyless, authoritative).
  3. Results — plus your likes/dislikes/notes — feed straight back into the next generation round.
  4. Repeat until you have a shortlist of names whose domains are actually available.

Install

The fifteen-second way (requires uv):

uvx namehunt run --brief brief.md --provider claudecode

Or install it properly: uv tool install namehunt (also: pipx install namehunt).

From source (Python 3.11+):

git clone https://github.com/Tarabcak/namehunt && cd namehunt && uv sync

Optional OpenAI support:

uv sync --extra openai

Providers & environment variables

Provider Auth Notes
claude (default) ANTHROPIC_API_KEY Anthropic API, billed per token
claudecode your existing Claude Code login runs claude -p headless on your Pro/Max subscription — no API credits. Requires Claude Code installed & signed in. Personal use only: Anthropic does not allow shipping products on claude.ai login, and any ANTHROPIC_API_KEY in the env is withheld from the subprocess so it can never bill the API
openai OPENAI_API_KEY needs uv sync --extra openai

Other variables: NAMEHUNT_PROVIDER picks the default provider when --provider is omitted; NAMEHUNT_HOME overrides the state directory (default ~/.namehunt — sessions + RDAP bootstrap cache). Keys are read from the environment only and are never written to disk.

# subscription-powered, no API key needed:
uv run namehunt run --brief examples/brief.md --provider claudecode

60-second quickstart

export ANTHROPIC_API_KEY=sk-ant-...
uv run namehunt run --brief examples/brief.md --tlds com,ai --session myco

Each round prints a table — ✅ available, ❌ taken, ❓ unknown — then prompts:

[a]nother round  [l]ike <numbers>  [d]islike <numbers>  [n]ote <text>  [q]uit & export
  • l 2 5 / d 3 — like/dislike rows from the table (steers the next round)
  • n shorter, more mythic — free-text steering note
  • a — next round; q — quit
  • --rounds 3 runs three rounds autonomously (no prompts); --debug prints the full LLM prompt

Ctrl-C is safe at any point — the session is saved, then:

uv run namehunt resume --session myco
uv run namehunt export --session myco --format md   # also: csv, json

The RDAP caveat

⚠️ RDAP 'available' is a strong signal, not a guarantee — premium/reserved names can still be unregisterable. Re-check at your registrar before buying, and run a trademark search.

unknown (❓) means the check failed (timeout, rate limit, TLD without RDAP…) — namehunt never reports a domain as available unless RDAP itself said so.

Development

uv run pytest -q            # all network mocked; suite blocks real sockets
uv run ruff check .
uv run mypy src

How it was built

Spec-first, strict TDD, by Claude Code: the full product spec, the workflow rules, and the hooks that enforced red→green live in this repo as artifacts — see namehunt-SPEC.md and CLAUDE.md. The test suite hard-blocks real network access, and every RDAP failure path is proven to map to unknown, never available.

Metadata

Release files for namehunt 0.1.0

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.0
File Size Uploaded
namehunt-0.1.0.tar.gz 89.3 kB Details

Built distribution (wheel)

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

Total release size: 108.0 kB

Release files / namehunt-0.1.0.tar.gz

Download URL namehunt-0.1.0.tar.gz
Size 89.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6ee21faaa2de1f3c2bc4dcd4a036c3a314d2e4ca3ca97b6df0453e5d611bebb9
BLAKE2b-256 checksum
How to use checksums
578cf0f95acc58c58458573f01ec6e78623a4f74067cfa0c7f5919bfe11b6ba5
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.0-py3-none-any.whl

Download URL namehunt-0.1.0-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b16a09aaf71ff05826d6456e1304e76f6d7b87720214d85f3fe5787509184bef
BLAKE2b-256 checksum
How to use checksums
a4139a6e83a43e0fea41d2ec481d79fe4a8c04cfeaca5c8a0b2c24c05c96c105
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

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

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