• Brandutchmen 2 days ago

    I’m always building small tools for myself that end up buried in private repos. I figured it was time to start sharing a few that others might find useful.

    Just published tldx, a CLI tool I use to quickly check if a domain name is available across a bunch of TLDs and variations.

    Hopefully, some of you CLI enthusiasts can find it useful!

    • cranberryturkey 2 days ago

      need --suggest "..." --max 100

      • Brandutchmen 2 days ago

        I'm wanting to add something like this.

        Besides length, what would you think would be a good way to sort suggestions here?

        • cranberryturkey 2 days ago

          just alphabetically easier to read imo

          • Brandutchmen 2 days ago

            good suggestion

            Currently, it just streams out whichever whois servers respond first. Sorting is a good improvement!

            • cranberryturkey 2 days ago

              Agreed. I’d provide two lists both sorted. First a list of taken then a list of available.

              • Brandutchmen 2 days ago

                I wonder if it'll be good to go from a line-by-line print to an actual TUI. That'd make sorting + dynamically inserting new domains make sense

                • dayjah a day ago

                  Great tool! Prior me is sad this didn’t exist!

                  I’d be fine with a live summary status updating showing # available and # taken. Hitting ctrl+c resulting in printing the lists as above.

                  Also perhaps a —timeout flag, or similar as I may only want to wait 5 minutes / length of time it takes to steep tea for answers.

                  • cranberryturkey 21 hours ago

                    i'd rather be able to pipe the results to a domains.txt file to be honest.

      • noperator a day ago

        You can also use https://github.com/noperator/raink to brainstorm TLDs that are relevant to some topic you care about. For example:

            curl -s https://data.iana.org/TLD/tlds-alpha-by-domain.txt |
                raink -f /dev/stdin -p 'which of these TLDs is most related to the concept of "hacking"?' |
                jq -r 'map(.value)[:10]'
            
            [
              "BLACK",
              "COMSEC",
              "TOOLS",
              "SECURITY",
              "ZERO",
              "EXPOSED",
              "FORUM",
              "SHELL",
              "BOT",
              "SOFTWARE"
            ]
        
        Those are all in the IANA list but not all can be registered—just showing as PoC. See https://bishopfox.com/blog/raink-llms-document-ranking for more background.
        • noitpmeder 16 hours ago

          Are you the creator of that project?

        • cb321 a day ago

          Since identifier bike shedding is more broad than only top-level domain names, readers interested in a tool like this might also be interested in https://github.com/c-blake/thes - a command-line thesaurus utility written in Nim and organized around the Moby Thesaurus format. An example usage might be:

              $ thes -n5 lofty
              airy    gaudy   high   showy  brand  sound
              big     grand   lurid  steep  clear  valid
              erect   grave   noble  tall   lucid  logo
              fancy   great   proud  tony   regal
          
          Observant readers might notice 3 banks of alphabetic sorting for the 3 kinds of synonyms - reciprocal/reflected (airy..tony), defined but irreciprocal (brand..valid), and wilder made-up names/phrases someone got into Moby (just logo in this example). These can be configured to show up in 3 distinct terminal colors.

          Besides the prefix/suffix ideas of `tldx` in TFA, "synonymity" could also be incorporated, but you might need a higher quality source of such than Moby which has kind of a "big tent" aspect to its synonym lists.

          • a_dabbler a day ago

            You should consider adding DNS checks prior to WHOIS. Whois is unreliable and you can be quickly blocked, doing a quick SOA DNS request can help reduce your WHOIS queries when the domain definitely exists (no SOA is not enough to confirm domain is unregistered but existing SOA is enough to confirm a domain is registered)

            • Arubis a day ago

              WHOIS is actually scheduled for sunset by IANA: https://www.icann.org/en/announcements/details/icann-update-...

              • Brandutchmen a day ago

                This is good to know! I'll migrate this over to RDAP

              • indigodaddy a day ago

                So only do a whois when no SOA exists. That's clever.

                • Brandutchmen a day ago

                  Yeah! Excited to have a short circuit.

                • Brandutchmen a day ago

                  Good advice!

                  DNS check -> RDAP seems to be the right way to take this.

                • dedicate 2 days ago

                  The core problem: The good old days of easy domain hunting are long gone...

                  • amelius a day ago

                    My version of the tool:

                        #!/bin/sh
                    
                        echo "Don't bother, all the good names have been taken"
                    • akoculu a day ago

                      I just got some good domains like mitte.ai and told.so a few months ago

                      • Brandutchmen a day ago

                        I agree. That's why I love using a permutation tool like this. It has had some surprising finds so far.

                        Though it's still a cope for the real problem of domain squatting.

                      • akoculu a day ago

                        installation fails for me

                        λ brew tap brandonyoungdev/tldx λ brew install tldx

                        ==> Fetching brandonyoungdev/tldx/tldx ==> Downloading https://github.com/brandonyoungdev/tldx/releases/download/ curl: (56) The requested URL returned error: 404

                        Error: tldx: Failed to download resource "tldx" Download failed: https://github.com/brandonyoungdev/tldx/releases/download/v1...

                      • croes 2 days ago
                        • phinnaeus 2 days ago

                          Surely just a typo in the readme

                          • Brandutchmen a day ago

                            Yep! There's supposed to be two examples there... Fixed now :)

                          • Brandutchmen a day ago

                            Good eye.

                            Fixed now :)