https://github.com/ysm-dev/domaingrep
Bulk domain availability checker CLI
https://github.com/ysm-dev/domaingrep
Last synced: 9 days ago
JSON representation
Bulk domain availability checker CLI
- Host: GitHub
- URL: https://github.com/ysm-dev/domaingrep
- Owner: ysm-dev
- Created: 2026-03-28T11:53:35.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-06-04T03:09:48.000Z (19 days ago)
- Last Synced: 2026-06-04T05:26:18.175Z (19 days ago)
- Language: Rust
- Size: 176 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# domaingrep
Super fast bulk domain availability search across every TLD.
```
$ domaingrep bunsh
bun.sh
bunsh.com
bunsh.net
bunsh.org
bunsh.xyz
bunsh.co
bunsh.io
bunsh.dev
...
```
One keyword. Every TLD. Results in under a second.
## Install
Run instantly without installing:
```sh
npx domaingrep abc
bunx domaingrep abc
```
Or install globally:
```sh
curl -fsSL https://domaingrep.dev/install.sh | sh # Shell (macOS / Linux)
brew install ysm-dev/tap/domaingrep # Homebrew
cargo install domaingrep # Cargo
npm install -g domaingrep # npm
bun install -g domaingrep # Bun
```
## Usage
**Search all TLDs:**
```
$ domaingrep abc
abc.com
abc.net
abc.sh
abc.xyz
...
```
**Domain hack detection** -- automatically finds creative splits where
the TLD is part of the word:
```
$ domaingrep bunsh
bun.sh
bunsh.com
bunsh.io
bunsh.dev
...
$ domaingrep openai
open.ai
openai.com
openai.dev
...
```
**Filter by TLD prefix:**
```
$ domaingrep abc.c
abc.com
abc.co
abc.cc
abc.club
...
```
**Filter by TLD length:**
```
$ domaingrep abc --tld-len 2
abc.ai
abc.co
abc.io
abc.me
abc.sh
abc.so
abc.to
...
```
**Show all results** including taken domains:
```
$ domaingrep abc --all
abc.sh
x abc.com
x abc.net
abc.xyz
abc.co
...
```
**JSON output** for scripting:
```
$ domaingrep bunsh --json --all
{"domain":"bun.sh","available":true,"kind":"hack","method":"cache"}
{"domain":"bunsh.com","available":false,"kind":"regular","method":"dns"}
{"domain":"bunsh.io","available":true,"kind":"regular","method":"dns"}
```
Pipe-friendly: when stdout is not a TTY, the default limit is removed
and colors are disabled.
```sh
domaingrep abc --json | jq -r 'select(.available) | .domain'
```
## Options
```
domaingrep [OPTIONS]
```
| Flag | Short | Default | Description |
|------|-------|---------|-------------|
| `--all` | `-a` | | Show unavailable domains too |
| `--json` | `-j` | | Output as NDJSON |
| `--tld-len ` | `-t` | | Filter TLDs by length: `2`, `2..5`, `..3`, `4..` |
| `--limit ` | `-l` | `25` | Max results (`0` for unlimited, unlimited when piped) |
| `--color ` | | `auto` | `auto`, `always`, `never` |
### Exit codes
| Code | Meaning |
|------|---------|
| `0` | At least one available domain found |
| `1` | No available domains found |
| `2` | Invalid input or error |
Environment variables
All configuration is via environment variables. Defaults work out of the box.
| Variable | Default | Description |
|----------|---------|-------------|
| `DOMAINGREP_RESOLVERS` | Public DNS | Custom DNS resolvers (comma or space separated) |
| `DOMAINGREP_RESOLVE_CONCURRENCY` | `1000` | Max in-flight DNS queries |
| `DOMAINGREP_RESOLVE_TIMEOUT_MS` | `500` | Per-attempt timeout in ms |
| `DOMAINGREP_RESOLVE_ATTEMPTS` | `4` | Max retry attempts per domain |
| `DOMAINGREP_CACHE_DIR` | Platform cache dir | Override cache directory |
| `DOMAINGREP_DISABLE_UPDATE` | `false` | Disable background version check |
## License
MIT