Skip to main content

A powerful CLI tool to check name availability across domains and platforms

Project description

Nmavail

PyPI version License: MIT

Nmavail is a powerful command-line tool designed to check the availability of names across multiple domains and platforms. Whether you are naming a startup, a new project, or an open-source library, Nmavail helps you secure your brand identity by verifying if a name is already taken.

Features

  • Domain Availability: Checks popular TLDs (e.g., .com, .io, .dev, .ai) via WHOIS and DNS lookups
  • Developer Platforms: Verifies username availability on GitHub and GitLab
  • Package Registries: Checks if a name is available on PyPI, NPM, Crates.io, and Go Modules
  • System Packages: Checks Homebrew, AUR, Debian/Ubuntu, and Alpine Linux
  • Asynchronous & Fast: Uses async I/O to perform checks in parallel (~13 seconds total)
  • Clean CLI Interface: Provides a beautiful, easy-to-read terminal output with smooth loading animations
  • No Configuration Required: Works out of the box, no tokens or setup needed

Installation

Option 1: Install via uv (Recommended)

The easiest and recommended way to install Nmavail is using uv:

# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install nmavail (uv will automatically manage Python environment)
uv tool install nmavail

# Verify installation
nmavail --version

Option 2: Install via pipx

Alternatively, you can use pipx:

# Install pipx (if not already installed)
pip install pipx

# Install nmavail (pipx will create an isolated environment)
pipx install nmavail

# Verify installation
nmavail --version

Option 3: Run without installation

Try Nmavail without installing:

uvx nmavail test

Option 4: Install from Source

For developers or those who want the latest unreleased features:

git clone https://github.com/nmavail/nmavail.git
cd nmavail
uv sync  # or: pip install -e .
uv run nmavail test

Usage

Check Name Availability

To check a name across all supported platforms:

nmavail my-awesome-name

Example Output:

Package Registries:                                         
    ✗   PyPI                : Taken
    ✗   NPM                 : Taken
    ✓   Crates.io           : Available
    ✓   Go Modules          : Available

System Packages:                                            
    ✓   Homebrew            : Available
    ✓   Arch (AUR)          : Available
    ✓   Debian/Ubuntu       : Available
    ✓   Alpine Linux        : Available

Developer Platforms:                                        
  - GitHub:
    ✗   User/Org            : Taken
    ✗   Total Repos         : 9702854
    ✗   Top Stars           : 25920 stars
  - GitLab (list first 100 results only):
    ✗   User/Group          : Taken
    ✗   Total Repos         : 100+
    ✗   Top Stars           : more than 0 stars

Domains:                                                    
    ✗   my-awesome-name.com : Taken
    ✓   my-awesome-name.io  : Available
    ✓   my-awesome-name.dev : Available

Command Line Options

Show Version:

nmavail --version
nmavail -V

Show Help:

nmavail --help
nmavail -H

Examples:

nmavail test
nmavail google
nmavail myproject

Supported Platforms

Category Platforms
Domains .com, .org, .net, .io, .co, .dev, .app, .xyz, .ai, .me, .cn, .tv, .ly, .it
Developer Platforms GitHub (User/Org & Repo Search), GitLab (User/Group & Repo Search)
Package Registries PyPI, NPM, Crates.io, Go Modules
System Packages Homebrew, Arch (AUR), Debian/Ubuntu, Alpine Linux

Performance

  • Total check time: ~13 seconds (varies based on network conditions)
  • Parallel execution: All checks run concurrently
  • Smart pagination: GitLab limited to 1 page (100 results) for speed
  • Optimized timeouts: 10 second timeout per request

Development

This project uses Ruff for linting and formatting.

# Format code
uv run ruff format .

# Lint code
uv run ruff check .

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nmavail-0.4.3.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nmavail-0.4.3-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file nmavail-0.4.3.tar.gz.

File metadata

  • Download URL: nmavail-0.4.3.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nmavail-0.4.3.tar.gz
Algorithm Hash digest
SHA256 6ec350da8516f4335cb2d43e4d4f108b4540730cc15596a5721b05e380708fa4
MD5 4271f41a882f568c7abe5215d0e49527
BLAKE2b-256 a380b33ae90cffe3e36c7d00462cdb69ebd05b47270f5ee1d0c7636639696260

See more details on using hashes here.

Provenance

The following attestation bundles were made for nmavail-0.4.3.tar.gz:

Publisher: publish.yml on nmavail/nmavail

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nmavail-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: nmavail-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nmavail-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e48db94ebb589086a42054e5eae5f7f7cf6ea8d4de3dcc22f0d9e6e6a026af35
MD5 fefeb4c6ebe2dc0ffb185bdba4c8011d
BLAKE2b-256 778284e5f761cfa4a71b3efb5a03ece119d504532c87f0575097672212396fa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for nmavail-0.4.3-py3-none-any.whl:

Publisher: publish.yml on nmavail/nmavail

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page