Fast domain availability checker.
Asks authoritative TLD nameservers directly instead of WHOIS.
# Rust / CLI
brew install alltuner/tap/vacant
cargo install vacant
# Python
uv add vacant
# JavaScript / TypeScript
npm install @alltuner/vacantThe CLI also runs straight from any package runner — no install, no global state:
uvx vacant example.com # PyPI wheel via uv
pipx run vacant example.com # PyPI wheel via pipx
npx -y @alltuner/vacant example.com # npm package via npx
bunx @alltuner/vacant example.com # npm package via bun
pnpm dlx @alltuner/vacant example.com # npm package via pnpmAll variants share the same Rust engine, so results and flags are identical. The native binary (brew / cargo) is fastest to start; the runner variants are perfect for one-shots and CI.
Prefer a browser? vacant.alltuner.com is a hosted web UI built on these packages — a separate app for checking one name or hundreds at once, no install. (The packages here are the engine, CLI, and libraries; that site is just one example of something built with them.)
There's a ready-made agent skill at alltuner/skills so coding agents (Claude Code, etc.) can use vacant directly when checking domain availability:
npx skills add alltuner/skills --skill vacantThe skill wraps the CLI with usage hints, common patterns, exit-code semantics, and registry gotchas — see skills/vacant/SKILL.md.
Every package also ships a vacant mcp subcommand — a Model Context Protocol server over stdio exposing one read-only tool, check_domains(domains, verify=false). Run it from whichever channel you've installed:
vacant mcp # native binary (brew / cargo)
npx -y @alltuner/vacant mcp # npm package
uvx --from 'vacant[mcp]' vacant mcp # PyPI wheel (needs the mcp extra)This repo is a monorepo. The same engine ships in three forms:
| Package | Path | Registry |
|---|---|---|
vacant (Rust library + CLI) |
crates/vacant |
crates.io |
vacant (Python wheel) |
python |
PyPI |
@alltuner/vacant (npm package) |
js |
npm |
See each package's README for usage. The Python wheel embeds the Rust engine via PyO3, the npm package embeds it via napi-rs, and all three share the on-disk SQLite cache with the CLI.
The PSL + RDAP-derived rules every package consumes live at rules/rules.toml — see the rules/ README for the source-of-truth and mirror policy.
just # menu of all dev tasks
just build # build the rust binary
just test # run rust workspace tests
just py-develop # build the python extension into a local venv
just py-check # ruff + pytest
just js-develop # build the napi-rs binding into js/
just js-check # tsc + node:test smokevacant is an open source project built by David Poblador i Garcia through All Tuner Labs.
If this project was useful to you, consider supporting its development.
Built by David Poblador i Garcia with the support of All Tuner Labs.
Made with ❤️ in Poblenou, Barcelona.
