diff --git a/.librewolf/generate.sh b/.librewolf/generate.sh
new file mode 100755
index 00000000..82a8a5bc
--- /dev/null
+++ b/.librewolf/generate.sh
@@ -0,0 +1,2 @@
+cat installs.template | envsubst > installs.ini
+cat profiles.template | envsubst > installs.ini
diff --git a/.librewolf/installs.template b/.librewolf/installs.template
new file mode 100644
index 00000000..af226456
--- /dev/null
+++ b/.librewolf/installs.template
@@ -0,0 +1,4 @@
+[6C4726F70D182CF7]
+Default=$XDG_DATA_HOME/librewolf
+Locked=1
+
diff --git a/.librewolf/profiles.template b/.librewolf/profiles.template
new file mode 100644
index 00000000..d5996a0c
--- /dev/null
+++ b/.librewolf/profiles.template
@@ -0,0 +1,13 @@
+[Install6C4726F70D182CF7]
+Default=$XDG_DATA_HOME/librewolf
+Locked=1
+
+[Profile0]
+Name=librewolf
+IsRelative=0
+Path=$XDG_DATA_HOME/librewolf
+Default=1
+
+[General]
+StartWithLastProfile=1
+Version=2
diff --git a/.local/bin/dotsync b/.local/bin/dotsync
index be041773..4f79e227 100755
--- a/.local/bin/dotsync
+++ b/.local/bin/dotsync
@@ -4,8 +4,14 @@ GREEN='\033[1;32m'
 BLUE='\033[1;34m'
 RED='\033[1;30m'
 NC='\033[0m'
+dotfiles="${1:-$HOME/.dotfiles}"
 
-cd "$HOME/.dotfiles" || exit
+echo "${BLUE}Using $dotfiles as dotfiles directory!${NC}"
+if ! cd "$dotfiles"; then
+    echo "${RED}Could not CD into $dotfiles${NC}"
+    exit
+fi
+echo
 
 echo "${BLUE}Stashing existing changes...${NC}"
 stash_result=$(git stash push -m "sync-dotfiles: Before syncing dotfiles")
@@ -13,17 +19,17 @@ needs_pop=1
 if [ "$stash_result" = "No local changes to save" ]; then
     needs_pop=0
 fi
+echo
 
 echo "${BLUE}Pulling updates from dotfiles repo...${NC}"
-echo
 git pull origin main
 echo
 
 if [ $needs_pop -eq 1 ]; then
     echo "${BLUE}Popping stashed changes...${NC}"
-    echo
     git stash pop
 fi
+echo
 
 unmerged_files=$(git diff --name-only --diff-filter=U)
 if [ -n "$unmerged_files" ]; then
@@ -34,3 +40,13 @@ else
     stow -t "$HOME" .
 fi
 
+echo "${BLUE}Generating librewolf profiles...${NC}"
+if ! cd "$dotfiles/.librewolf"; then
+    "${RED}Could not CD into $HOME/.librewolf${NC}"
+    exit
+fi
+envsubst < installs.template > $HOME/.librewolf/installs.ini
+envsubst < profiles.template > $HOME/.librewolf/profiles.ini
+echo
+
+echo "${GREEN}Dotfiles Synced Successfully!${NC}"
diff --git a/.stow-local-ignore b/.stow-local-ignore
index b57338da..4679c70b 100644
--- a/.stow-local-ignore
+++ b/.stow-local-ignore
@@ -3,6 +3,7 @@ TODO
 \.gitignore
 \.gitmodules
 \.cache
+\.librewolf
 \.local/share/virtualenv
 \.config/X11/xsession\.d/40display-setup
 \.config/X11/xsession\.d/99extra-setup