
Product
Introducing Reports: An Extensible Reporting Framework for Socket Data
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.
petname
Advanced tools
petname − an RFC1178 implementation to generate pronounceable, sometimes even memorable, "pet names", consisting of a random combination of adverbs, an adjective, and an animal name
usage: petname [-w|--words INT] [-l|--letters INT] [-s|--separator STR] [-d|--dir STR] [-c|--complexity INT] [-u|--ubuntu]
usage: petname [-h] [-w WORDS] [-l LETTERS] [-s SEPARATOR]
-w|--words number of words in the name, default is 2,-l|--letters maximum number of letters in each word, default is unlimited,-s|--separator string used to separate name words, default is '-',-d|--dir directory containing adverbs.txt, adjectives.txt, names.txt, default is /usr/share/petname/,-c|--complexity [0, 1, 2]; 0 = easy words, 1 = standard words, 2 = complex words, default=1,-u|--ubuntu generate ubuntu-style names, alliteration of first character of each word.This utility will generate "pet names", consisting of a random combination of an adverb, adjective, and an animal name. These are useful for unique hostnames or container names, for instance.
As such, PetName tries to follow the tenets of Zooko’s triangle. Names are:
Besides this shell utility, there are also native libraries: python-petname, python3-petname, and golang-petname. Here are some programmatic examples in code:
$ petname
wiggly-yellowtail
$ petname --words 1
robin
$ petname --words 3
primly-lasting-toucan
$ petname --words 4
angrily-impatiently-sage-longhorn
$ petname --separator ":"
cool:gobbler
$ petname --separator "" --words 3
comparablyheartylionfish
$ petname --ubuntu
amazed-asp
$ petname --complexity 0
massive-colt
Besides this shell utility, there are also native libraries: python-petname, python3-petname, and golang-petname. Here are some programmatic examples in code:
Install it with apt:
$ sudo apt-get install golang-petname
Or here's an example in golang code:
package main
import (
"flag"
"fmt"
"math/rand"
"time"
"github.com/dustinkirkland/golang-petname"
)
var (
words = flag.Int("words", 2, "The number of words in the pet name")
separator = flag.String("separator", "-", "The separator between words in the pet name")
)
func init() {
rand.Seed(time.Now().UTC().UnixNano())
}
func main() {
flag.Parse()
rand.Seed(time.Now().UnixNano())
fmt.Println(petname.Generate(*words, *separator))
}
See: on pypi.
Install it with pip:
$ [sudo] pip install petname
#!/usr/bin/python
import argparse
import petname
import sys
parser = argparse.ArgumentParser(description='Generate human readable random names')
parser.add_argument('-w', '--words', help='Number of words in name, default=2', default=2)
parser.add_argument('-l', '--letters', help='Maximum number of letters per word, default=6', default=6)
parser.add_argument('-s', '--separator', help='Separator between words, default="-"', default="-")
parser.options = parser.parse_args()
sys.stdout.write(petname.Generate(int(parser.options.words), parser.options.separator, int(parser.options.letters)) + "\n")
This manpage and the utility were written by Dustin Kirkland <dustin.kirkland@gmail.com> for Ubuntu systems (but may be used by others). Permission is granted to copy, distribute and/or modify this document and the utility under the terms of the Apache2 License.
The complete text of the Apache2 License can be found in /usr/share/common-licenses/Apache-2.0 on Debian/Ubuntu systems.
FAQs
Generate human-readable, random object names
We found that petname demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.