DICEWARE(1)
๐ DICEWARE โ bestie's guide to making passphrases ๐
okay so real talk, diceware is a User Commands legend and honestly it's giving main character energy. โจ
๐ธ NAME ๐ธ
diceware โ create passphrases ๐
โจ SYNOPSIS โจ
diceware [OPTION]... [FILE]
๐ฆ DESCRIPTION ๐ฆ
so basically diceware generates passphrases by concatenating words that get randomly picked from wordlists. no cap. it also supports real dice for passphrase generation, which is such a vibe honestly ๐ฒ
it's based on the proposals of Arnold G. Reinhold over at <http://diceware.com> . iconic behavior, we stan ๐
๐ OPTIONS ๐
๐ positional arguments:
FILEโ optional input wordlist. if you pass-it will read from stdin. should contain one word per line, bestie, one word, that's the whole deal ๐
๐ง optional arguments:
-h,--helpโ show help message and exit. the classic. ๐ซถ-n NUM,--num NUMโ number of words to concatenate. default is6.-c,--capsโ capitalize words. this is literally the default already. โจ--no-capsโ turn off capitalization. bye bye capital letters ๐-s NUM,--specials NUMโ insertNUMspecial chars into the generated word. sprinkle sprinkle ๐-d DELIMITER,--delimiter DELIMITERโ separate words byDELIMITER. empty string by default. so like, nothing between them unless you say so.-r SOURCE,--randomsource SOURCEโ get randomness from this source. possible values:realdice,system. default:system.-w [NAME [NAME ...]],--wordlist [NAME [NAME ...]]โ use words from this wordlist. possible values:ca,de,de_8k,en,en_8k,en_adjectives,en_eff,en_nouns,en_orig,en_securedrop.es,it,pt-br. default:en_eff. yes the list has a lil period typo in the middle and we are preserving it exactly, periodt ๐-v,--verboseโ be verbose. use several times for increased verbosity. stack it, bestie, go off ๐ข--versionโ output version information and exit.
๐ฒ arguments related to realdice randomsource:
--dice-sides Nโ number of sides of dice. default:6.
๐ ENVIRONMENT VARIABLES ๐
XDG_CONFIG_HOMEโ if set and not empty, this variable determines the directory to use for user-local configuration files. we then lookup${XDG_CONFIG_HOME}/diceware/diceware.iniand values set here override system-wide config files. it's giving "my rules now" ๐XDG_CONFIG_DIRSโ if set and not empty, this variable is interpreted as colon-separated list of directories, that might contain system-wide configuration files. we lookup<DIR>/diceware/diceware.inifor each directory set in$XDG_CONFIG_DIRS.XDG_DATA_HOMEโ if set and not empty, this variable determines a directory to search for additional wordlists. we then lookup${XDG_DATA_HOME}/dicewarefor any existing wordlist files. ๐XDG_DATA_DIRSโ if set and not empty, this variable is interpreted as colon-separated list of directories, that might contain additional wordlist files. see below. we lookup<DIR>/diceware/then for each directory set in the list.
๐ FILES ๐
depending on environment variables set (or not set) we lookup certain directories for configuration files called diceware.ini and for wordlist files. yes, it's a whole little scavenger hunt ๐ต๏ธโโ๏ธ
๐ CONFIGURATION FILES
configuration settings for diceware can be spread over several configuration files. we parse configuration values from the files given below, but values set in former files take precedence over values set in latter ones. so like, earlier = more powerful. hierarchy, we love to see it ๐
~/.diceware.iniโ your personaldicewareconfiguration file. values set here override values from any other configuration file. this one is the queen bee ๐$XDG_CONFIG_HOME/diceware/diceware.iniโ additional location for your personaldicewareconfiguration. values set here will override any system-wide valid values but can be overridden by~/.diceware.ini.$HOME/.config/diceware/diceware.iniโ alternative location fordicewareconfiguration, only used if${XDG_CONFIG_HOME}is empty or unset./etc/xdg/diceware/diceware.iniโ if$XDG_CONFIG_DIRSis not set or empty, we look here for a system-wide configuration file. values set here take least precedence. poor thing, last place ๐ญ
๐ธ WORDLIST FILES AND WORDLIST DIRECTORIES:
diceware comes with a set of wordlists but enables you to add new wordlists by putting them into certain directories. the paths where the lists are stored (including the built-in ones) is shown using --show-wordlist-dirs. go peek, it's right there โจ
wordlist files are expected to contain lines with one term on each line and they must have a certain filenames to be found. (yes, the original says "a certain filenames", we're keeping it, it's part of the lore ๐)
wordlist filenames have to follow the pattern: wordlist_<NAME>.txt where <NAME> can be any name consisting of letters, numbers, underscores and hyphens. for instance wordlist_en_eff.txt is the filename of the EFF (electronic frontier foundation) word list. en_eff is the name of this list. ๐ฆ
we support .txt and .asc as filename extensions for wordlists, where .txt files are expected to be plain wordlists and .asc files should provide a PGP-signature. ๐
if wordlists with the same name are found in different directories then the one in the directory with the highest precedence is taken only. the following locations are ordered by precedence (highest first). therefore built-in wordlists cannot be overridden by custom wordlists. you can, however, use custom wordlists with a different name. so don't try it bestie, the built-ins are protected ๐ก๏ธ
directories we look up that do not exist (in part or completely) are silently skipped when searching for wordlist files. no drama, no error, just vibes ๐
<INSTALL-DIR>/wordlists/โ the directory containing the built-in wordlists as part of the installation. these are the wordlists that are always available, regardless of configuration values and their exact location depends on the installation location of thedicewarepackage. โญ$XDG_DATA_HOME/diceware/โ if$XDG_DATA_HOMEis set and not empty, we look in this directory for wordlists.$HOME/.local/share/diceware/โ if$XDG_DATA_HOMEis unset or empty, we look into this directory for wordlists.<DIR>/dicewarefrom$XDG_DATA_DIRSโ if$XDG_DATA_DIRis set and not empty, it is interpreted as a colon-separated list of directories with/dicewareappended. so,/foo/bar:/bazwill make us look into/foo/bar/diceware/and/baz/diceware/in that order./usr/local/share/diceware/,/usr/share/dicewareโ if$XDG_DATA_DIRSis unset or empty, we look into these two directories for wordlists.
๐ฅ EXAMPLES ๐ฅ
dicewarecreate a passphrase using defaults. outputs something like"WheelDyeHonkCanvasWitsPuck"๐diceware -d "-" -n 3create a passphrase with three words, separated by dash ("-"). results in something like"Wheel-Dye-Honk"๐ซdiceware --no-capscreate a passphrase without capital words. creates something like"wheel-dye-honk".diceware -r realdiceuse real dice to create a passphrase. the program will tell you what to do (roll dice and tell what numbers appear) and in the end present a passphrase. it's interactive bestie, get your dice out ๐ฒ๐ฒdiceware -r realdice --dice-sides 20use real dice, as shown above, but this time use dice with 20 faces, instead of standard, 6-sided dice. fancy dice arc ๐ฎdiceware mywordlist.txtcreate a passphrase with words from file"mywordlist.txt". the file should contain one word on each line. ๐diceware -w en_securedrop -s 2create a passphrase with two special chars spread over the generated passphrase and containing words from wordlist"en_securedrop". this is one of the wordlists that come included withdiceware. creates something like:"PlayaBrigVer{SeesNe-tsGets". the chaos is the point ๐diceware -w en_adjectives en_nouns -n 2create two syntactically meaningful phrases, each one consisting of an adjective and a noun. results in something like:"CruelAttendeesCleanCoffee". grammar? in MY passphrase? it's more likely than you think โจ
๐ COPYRIGHT ๐
Copyright (C) 2015-2024 Uli Fouquet and contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see < <http://www.gnu.org/licenses/> >.
diceware is a concept invented by Arnold G. Reinhold, Cambridge, Massachusetts USA.
The Securedrop wordlist (file wordlists/wordlist_en_securedrop.asc) by Heartsucker is licensed under the MIT license (see <http://mit-license.org/> ).
The EFF wordlist (file wordlsts/wordlist_en_eff.txt) is licensed by the Electronic Frontier Foundation under the Creative Commons CC-BY 3.0 US license (see <https://creativecommons.org/licenses/by/3.0/us/> ).
The copyright for the the Diceware SecureDrop list is owned by @heartsucker. Copyright for the EFF large list by Joseph Bonneau and EFF. Copyright for the brazilian portuguese list by @drebs. Copyright for the english adjective and noun lists by NaturalLanguagePasswords.
"Diceware" is a trademark of Arnold G Reinhold, used with permission.
๐ซถ AUTHOR ๐ซถ
Written by Uli Fouquet and contributors
and that's the whole page bestie, every flag, every path, every XDG variable, nothing skipped, no cap ๐ฏ
this was diceware version 1.0.1, dated December 2024 โ sending you love from the User Commands girlies, now go make a passphrase that slays ๐โจ๐
๐ฆ where this page comes from
- debian trixie: diceware 1.0.1-1 ยท GPL-3.0-or-later
- fedora 43: diceware 1.0.1-4.fc43 ยท GPL-3.0-or-later and MIT and CC-BY-3.0 and CC0-1.0 and CC-BY-4.0
- ubuntu questing: diceware 1.0.1-1
- ubuntu resolute: diceware 1.0.1-1.1 ยท GPL-3.0-or-later
- ubuntu stonking: diceware 1.0.1-1.1 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms