diff --git a/home-manager/common/software/cli/fish/functions.nix b/home-manager/common/software/cli/fish/functions.nix
index e69de29b..13ae6346 100644
--- a/home-manager/common/software/cli/fish/functions.nix
+++ b/home-manager/common/software/cli/fish/functions.nix
@@ -0,0 +1,195 @@
+{ ... }: {
+  programs.fish.functions = {
+    # GPG related functions 
+    encrypt = ''
+      set output $argv-$(ddate).enc
+      gpg --encrypt --armor --output $output -r $PGP_KEY_ID "$argv" && echo "Encrypted: $argv -> $output"
+    '';
+    decrypt = ''
+      set output $(echo $argv | rev | cut -c16- | rev)
+      gpg --decrypt -r $PGP_KEY_ID --output $output $argv && echo "Decrypted:  $argv -> $output"
+    '';
+
+    update_secrets = ''
+      pushd /etc/nixos/git 
+      nix develop -c \
+      find secrets -name "*.yaml" -exec sops updatekeys {} \;
+    '';
+    restart-docker = ''
+      if [ (hostname) = "nuc-server" ]
+        pushd /Storage/Data/docker-compose/ifargle.com/
+      else
+        pushd /Storage/Data/docker-compose/sysctl.io/
+      end
+      docker stop $argv
+      docker rm $argv
+      git pull
+      docker compose up -d $argv
+      popd
+    '';
+    # Deploy-RS script
+    deploy-rs = ''
+      pushd /etc/nixos/git/ 
+      echo -en "Restarting DERP Relays.... "
+      echo -en "Osaka"
+      ssh -qA osaka-linode-01     "sudo systemctl restart podman-derp"
+      echo -en ", Frankfurt"
+      ssh -qA frankfurt-linode-01 "sudo systemctl restart podman-derp"
+      echo -en ", Milan"
+      ssh -qA milan-linode-01     "sudo systemctl restart podman-derp"
+      echo -e "... Done"
+      deploy -s
+      popd
+    '';
+    # Build ISOs/SD Card Images
+    nixos-build-all-images = ''
+      echo "Building Linode image..."
+      nixos-build-linode-img $argv
+      echo "Building Raspberry Pi image..."
+      nixos-build-pi-img $argv
+      echo "Building ISO Console image..."
+      nixos-build-console $argv
+      echo "Building ISO Desktop image..."
+      nixos-build-desktop $argv
+      ls -lah ~/ | grep nixos
+    '';
+    nixos-build-pi-img = ''
+      pushd /etc/nixos/git 
+      git pull 
+      nix build .#imageConfigurations.nixos-rpi4-img $argv
+      cp result/sd-image/nixos-sd-image* ~/.
+      rm -f result
+      popd
+    '';
+    nixos-build-linode-img = ''
+      pushd /etc/nixos/git 
+      git pull 
+      nix build .#imageConfigurations.nixos-linode-img $argv
+      cp result/nixos.img.gz ~/nixos-linode-$(ddate)-$(git rev-parse HEAD | cut -b 32-).img.gz
+      rm -f result
+      popd
+    '';
+    nixos-build-console = ''
+      pushd /etc/nixos/git
+      git pull 
+      nix build .#imageConfigurations.nixos-iso-console $argv
+      cp result/iso/nixos.iso ~/nixos-console-$(ddate)-$(git rev-parse HEAD | cut -b 32-).iso
+      rm -f result
+      popd
+    '';
+    nixos-build-desktop = ''
+      pushd /etc/nixos/git
+      git pull 
+      nix build .#imageConfigurations.nixos-iso-desktop $argv
+      cp result/iso/nixos.iso ~/nixos-desktop-$(ddate)-$(git rev-parse HEAD | cut -b 32-).iso
+      rm -f result
+      popd
+    '';
+
+    # NixOS Related
+    nix-clean-all = ''
+      echo -ne "Cleaning up home manager...      "
+      systemctl --user start clean-home-manager.service 2> /dev/null 
+      echo " done"
+      echo -ne "Optimizing the nix store...      "
+      sudo nix-store --optimize 2> /dev/null 
+      echo " done"
+      echo -ne "nix-store:  Collecting Garbage..."
+      sudo nix-store --gc 2> /dev/null 
+      echo " done"
+      echo -ne "Collecting garbage...            "
+      sudo nix-collect-garbage -d 2> /dev/null
+      echo " done"
+    '';
+
+    # BTRFS Related 
+    clean-boot-snapshots = ''
+      echo -en "Deleting boot snapshots...."
+      for i in $(sudo snapper -c root list | grep boot | awk {'print $1'} | head -n -4); 
+        echo -en " $i,"
+        sudo snapper -c root delete $i; 
+      end
+      echo "Remaining snapshots:"
+      sudo snapper -c root list 
+      echo -e " done."
+    '';
+
+    clean-all-snapshots = ''
+      set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
+      set types "timeline" "boot" "btrfs-backup"
+      set num_timeline "14"
+      set num_boot "5"
+      set num_btrfs_backup "5"
+
+      for volume in $subvolumes; 
+        echo "Found Volume:  $volume";
+        for type in $types;
+          set safe_type (string replace -a "-" "_" $type)
+          set type_num (eval "echo \$num_$safe_type")    
+          echo "  Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
+          
+          echo -en "    Deleting snapshots.... "
+          set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
+          for snapshot in $snapshots
+            echo -en " $snapshot,"
+            sudo snapper -c $volume delete $snapshot
+          end
+          echo -e " done."
+        end;
+
+        echo "  Remaining Snapshots in subvolume $volume"
+        sudo snapper -c $volume list 
+      end
+    '';
+    clean-timeline-snapshots = ''
+      set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
+      set types "timeline" 
+      set num_timeline "14"
+
+      for volume in $subvolumes; 
+        echo "Found Volume:  $volume";
+        for type in $types;
+          set safe_type (string replace -a "-" "_" $type)
+          set type_num (eval "echo \$num_$safe_type")    
+          echo "  Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
+          
+          echo -en "    Deleting snapshots.... "
+          set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
+          for snapshot in $snapshots
+            echo -en " $snapshot,"
+            sudo snapper -c $volume delete $snapshot
+          end
+          echo -e " done."
+        end;
+
+        echo "  Remaining Snapshots in subvolume $volume"
+        sudo snapper -c $volume list 
+      end
+    '';
+    clean-btrfs-backup-snapshots = ''
+      set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
+      set types "btrfs-backup"
+      set num_btrfs_backup "5"
+
+      for volume in $subvolumes; 
+        echo "Found Volume:  $volume";
+        for type in $types;
+          set safe_type (string replace -a "-" "_" $type)
+          set type_num (eval "echo \$num_$safe_type")    
+          echo "  Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
+          
+          echo -en "    Deleting snapshots.... "
+          set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
+          for snapshot in $snapshots
+            echo -en " $snapshot,"
+            sudo snapper -c $volume delete $snapshot
+          end
+          echo -e " done."
+        end;
+
+        echo "  Remaining Snapshots in subvolume $volume"
+        sudo snapper -c $volume list 
+      end
+    '';
+  };
+}