diff --git a/d6 b/d6
new file mode 100755
index 0000000..1280b72
--- /dev/null
+++ b/d6
@@ -0,0 +1,118 @@
+#!/bin/bash
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# For more information, please refer to
+
+VERSION="1.0"
+
+function print_usage() {
+ echo "USAGE: d6 [OPTIONS]"
+}
+
+function print_help() {
+ print_usage
+ echo "OPTIONS:
+ -v print program version
+ -h print this help information
+ -n number of words in generated password (default 3)
+ -f custom dictionary file (default
+ ~/.local/share/wordlist.txt)
+ -d delimiter used between words (default \"\", i.e. NONE)
+ -c the case used for the generated words, can be: upper,
+ lower, capital (default \"capital\")"
+}
+
+function test_case() {
+ if [ $1 != "lower" ] && [ $1 != "upper" ] && [ $1 != "capital" ]
+ then
+ return 1
+ else
+ return 0
+ fi
+}
+
+NUM_WORDS=3
+WORDLIST="$HOME/.local/share/wordlist.txt"
+DELIMITER=""
+CASE="capital"
+
+while getopts "vhn:f:d:c:" arg
+do
+ case $arg in
+ v)
+ echo "d6 v$VERSION"
+ exit 0;;
+ h)
+ print_help
+ exit 0;;
+ n)
+ NUM_WORDS=$OPTARG;;
+ f)
+ WORDLIST="$OPTARG";;
+ d)
+ DELIMITER="$OPTARG";;
+ c)
+ if test_case $OPTARG
+ then
+ CASE="$OPTARG"
+ else
+ echo "'$OPTARG' is an invalid case. Use 'capital', 'lower', or 'upper'."
+ exit 1
+ fi;;
+ ?)
+ print_usage
+ exit 2
+ esac
+done
+
+WORDS=""
+
+for i in $(seq 1 $NUM_WORDS)
+do
+ ROLLS=""
+ for j in {1..5}
+ do
+ ROLLS="$((1 + $RANDOM % 6))$ROLLS"
+ done
+
+ if [ $CASE == "upper" ]
+ then
+ WORD="$(awk "/$ROLLS/{ print toupper(\$2) }" $WORDLIST)"
+ elif [ $CASE == "lower" ]
+ then
+ WORD="$(awk "/$ROLLS/{ print tolower(\$2) }" $WORDLIST)"
+ else
+ WORD="$(awk "/$ROLLS/{ print \$2 }" $WORDLIST)"
+ WORD="${WORD^}"
+ fi
+
+ if [ $i -eq $NUM_WORDS ]
+ then
+ WORDS="${WORDS}${WORD}"
+ else
+ WORDS="${WORDS}${WORD}${DELIMITER}"
+ fi
+done
+
+echo "$WORDS"