BrandKit
BrandKit is a modern, interactive CLI tool designed to help entrepreneurs, developers, and creatives quickly check the availability of domains and social media usernames β all from the command line. It combines domain availability checks via the Namecheap API with username availability checks on popular social platforms, helping you secure your brand identity in one place.
Features
-
Domain Availability Check
Checks if a domain (e.g.example.com
) is available to register using the Namecheap API. If a domain is not provided with a TLD, it suggests popular extensions like.com
,.net
,.io
, etc., and shows their availability in a table. -
Social Username Availability Check
Interactively checks if your chosen username is available on multiple social media platforms including GitHub, Twitter, Instagram, TikTok, LinkedIn, and more. -
Interactive CLI Experience
Powered by TTY::Prompt for user-friendly menus, multi-selects, and prompts, plus colorful terminal output for better readability. -
Clean & Extensible Codebase
Modular design with dedicated classes for API communication (NamecheapClient
), domain checks (DomainChecker
), and social username checks (SocialUsernameChecker
). -
Dockerized for Easy Setup
Runs inside a container for hassle-free installation and dependency management.
Getting Started
Prerequisites
- Ruby 3.x installed locally or use Docker
- Namecheap API credentials (API user, API key, username, client IP)
- Internet connection to query domain and social media availability
Environment Variables
Before running, set these environment variables in your shell or .env
file:
export NAMECHEAP_API_USER=your_api_user
export NAMECHEAP_API_KEY=your_api_key
export NAMECHEAP_USERNAME=your_namecheap_username
export CLIENT_IP=your_client_ip
Installation
Clone the repo and install dependencies:
git clone https://github.com/yourusername/brandkit.git
cd brandkit
bundle install
Alternatively, use Docker:
docker-compose build
Usage
Run interactively
Launch the CLI with an interactive prompt experience, guiding you step-by-step:
docker-compose run cli
Or locally:
ruby bin/brandkit
Run with command-line arguments
Provide a domain upfront to skip prompts:
docker-compose run cli ruby bin/brandkit --domain=example.com
This will check the domain immediately and display availability, with an option to check social usernames.
Code Overview
BrandKit
The main CLI application class coordinating user input, output formatting, and flow control. Uses:
-
TTY::Prompt
for interactive prompts -
Artii
for ASCII banners -
Colorize
for colored terminal output
DomainChecker
Handles domain availability checking logic:
- Uses the
NamecheapClient
API wrapper to query domain status - Suggests popular TLDs if no extension is provided
- Displays results in a neat table format
ApiClients::NamecheapClient
API client encapsulating communication with the Namecheap XML API:
- Authenticates via environment variables
- Handles building query parameters and HTTP requests
- Parses XML responses and handles errors gracefully
SocialUsernameChecker
Checks username availability on popular social platforms by performing HTTP GET requests to profile URLs and interpreting the HTTP response status.
- Supports GitHub, Twitter, Instagram, Facebook, YouTube, TikTok, Pinterest, LinkedIn, Reddit, Threads
- Allows querying single or multiple platforms interactively
Demo
____ _ _ ___ _
| _ \ | | |/ (_) |
| |_) |_ __ __ _ _ __ __| | ' / _| |_
| _ <| '__/ _` | '_ \ / _` | < | | __|
| |_) | | | (_| | | | | (_| | . \| | |_
|____/|_| \__,_|_| |_|\__,_|_|\_\_|\__|
π Welcome to BrandKit
The fastest way to check domain and
social media username availability!
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Enter domain (e.g. example or example.com): examplex
Top Domain Extensions:
βββββββββββββββββββ¬ββββββββββββββββ
β Domain β Status β
βββββββββββββββββββΌββββββββββββββββ€
β examplex.com β β Available β
β examplex.net β β Available β
β examplex.org β β Available β
β examplex.io β β Available β
β examplex.dev β β Available β
β examplex.app β β Available β
β examplex.co β β Available β
β examplex.xyz β β Available β
β examplex.tech β β Available β
β examplex.site β β Available β
βββββββββββββββββββ΄ββββββββββββββββ
β¦ Domain Status
π Great news! Many domain extensions are available for βexamplexβ.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π± Check if the username is available on social platforms? Yes
β Select platforms to check (space to select): π All supported platforms
βββββββββββββββββββ¬ββββββββββββββββββ
β π‘ Platform β π Status β
βββββββββββββββββββΌββββββββββββββββββ€
β Github β β Available β
β Twitter β β Available β
β Instagram β β Available β
β Facebook β β Available β
β Youtube β β Available β
β Tiktok β β Available β
β Pinterest β β Available β
β Linkedin β β Available β
β Reddit β β Available β
β Threads β β Available β
βββββββββββββββββββ΄ββββββββββββββββββ
π
Thanks for using BrandKit!
Start building your brand today. β¨
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Contributing
Contributions are welcome! Please fork the repo and submit pull requests with descriptive commit messages. Make sure to follow the existing code style and add tests if applicable.
License
MIT License Β© Rajan Bhattarai