dexid: Fun Memorable Identifiers with Pokémon names

R
package
Author

David Schoch

Published

July 28, 2025

The dexid package provides a playful way to generate readable identifiers by combining adjectives with Pokémon names. This can be useful for naming test fixtures, docker containers, or any other situation where you need memorable IDs.

You can install the development version from GitHub:

pak::pak("schochastics/dexid")

Basic Usage

The main function dexid() generates snake_case IDs by default:

library(dexid)

dexid(5)
[1] "powerful_milcery"  "putrid_hoopa"      "lone_starly"      
[4] "shadowy_phione"    "trifling_stantler"

Using the case argument, you can change the style of the generated IDs. The function supports the following cases.

c(dexid(1, case = "kebab"),
  dexid(1, case = "camel"),
  dexid(1, case = "caps"),
  dexid(1, case = "sentence"),
  dexid(1, case = "custom", delimiter = "|")
)
[1] "murky-snorunt"          "recklessZacian"         "SOPHISTICATED HAKAMO-O"
[4] "Decent skorupi"         "surprised|carnivine"   

For more uniqueness, you can either increase the number of added ajectives or add random digits to the end of the identifiers. This is useful when you need to ensure that the generated IDs are unique across different runs or contexts.

dexid(5, n_adj = 2)
[1] "forsaken_unhealthy_boltund" "untried_weak_mantine"      
[3] "pleasing_sweaty_drizzile"   "sore_bite-sized_greedent"  
[5] "cold_single_omastar"       
dexid(5, add_digits = TRUE)
[1] "tremendous_salamence_9839" "runny_mime_jr_3233"       
[3] "quixotic_horsea_0686"      "adored_shuppet_2128"      
[5] "frugal_blastoise_9304"    

The package includes 1347 adjectives and 1025 Pokémon names, allowing for 1,380,675 unique combinations with one adjective and 1,859,769,225 unique combinations with two adjectives.

If you want to generate identifiers based on specific Pokémon generations, you can specify the gen argument. For example, to generate IDs from only Generation 1 Pokémon:

dexid(5, gen = 1)
[1] "multicolored_pikachu" "pesky_magikarp"       "clear_mr_mime"       
[4] "wiry_raichu"          "alert_golem"         

Fun Pokémon Sentences

The package also includes a sentence generator that combines Pokémon with moves:

dex_sentence(5, gen = 1)
[1] "Superb slowbro uses dig joyfully"        
[2] "Authentic sandshrew uses tackle tomorrow"
[3] "Cooperative squirtle uses recover less"  
[4] "Robust nidoking uses horn drill upright" 
[5] "Fixed slowpoke uses barrage eventually"  

The sentence structure is always adjective + Pokémon name + “uses” + move + adverb.

Reuse

Citation

BibTeX citation:
@online{schoch2025,
  author = {Schoch, David},
  title = {Dexid: {Fun} {Memorable} {Identifiers} with {Pokémon} Names},
  date = {2025-07-28},
  url = {http://blog.schochastics.net/posts/2025-07-28_dexid-fun-identfiers-with-pokemon/},
  langid = {en}
}
For attribution, please cite this work as:
Schoch, David. 2025. “Dexid: Fun Memorable Identifiers with Pokémon Names.” July 28, 2025. http://blog.schochastics.net/posts/2025-07-28_dexid-fun-identfiers-with-pokemon/.