.
diff --git a/Packages/pkg.csv b/Packages/pkg.csv
new file mode 100644
index 0000000..2d2f9a9
--- /dev/null
+++ b/Packages/pkg.csv
@@ -0,0 +1,4 @@
+Name,Apt,Note
+Aircrack,aircrack-ng,Airgeddon is a menu driven 3rd party tools wrapper to audit wireless networks with many features
+Nmap,nmap,Nmap is a network mapping and security auditing tool
+Bettercap,bettercap,Bettercap is an interactive framework and toolset for wireless security research and attack
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..965f116
--- /dev/null
+++ b/README.md
@@ -0,0 +1,39 @@
+
+
+
+
+# Batlinux
+Ethical hacking utilities for testing Wi-Fi network security and monitoring.
+
+
+## Uasge
+
+- curl -LO https://github.com/emadadel4/Batlinux/releases/latest/download/Batlinux.sh
+- chmod 777 ./Batlinux.sh
+- ./Batlinux.sh
+
+## Add your Networks and Mac's
+
+Example Mac_List file:
+```
+Device,Mac,Note
+Glaxy Note,7E:27:3C:87:EF:CC,This simple note.
+```
+
+Example Networks_List file:
+```
+BSSID,ESSID,Channel,WPS,Note
+Batlinux,C0:E3:FB:BF:F0:9E,1,No,This simple note
+i have plan,98:DA:C4:C7:6A:D8,8,Yes,This Bssid WPS Enabled
+```
+
+## ⚠️ Disclaimer - إخلاء مسؤولية
+
+This tool is strictly for educational purposes and should only be used to test the security of networks **you own** or have explicit legal permission to test.
+**Do not use this tool to attack or compromise unauthorized networks.** Misuse of this tool can lead to serious legal consequences. Please use it responsibly.
+
+هذه الأداة مخصصة لأغراض تعليمية فقط ويجب استخدامها لاختبار أمان الشبكات **التي تمتلكها** أو التي لديك إذن قانوني صريح لاختبارها.
+**لا تستخدم هذه الأداة للهجوم على الشبكات غير المصرح بها أو اختراقها.** قد يؤدي سوء استخدام هذه الأداة إلى عواقب قانونية خطيرة. يرجى استخدامها بمسؤولية.
+
+---
+
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..f21e3e9
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,86 @@
+#!/bin/bash
+# Directories containing the scripts
+DIRECTORIES=("Initialize" "Functions" "Core")
+CSV_FILE="/mnt/hgfs/Batlinux/Packages/pkg.csv"
+OUTPUT_FILE="Batlinux.sh"
+
+function update_packages() {
+ local CSV_FILE="/mnt/hgfs/Batlinux/Packages/pkg.csv"
+ local TARGET_FILE="Batlinux.sh"
+
+ # Check if CSV file exists
+ if [[ ! -f "$CSV_FILE" ]]; then
+ echo -e "\e[31mError: File not found $CSV_FILE\e[0m"
+ return 1
+ fi
+
+ # Check if target script exists
+ if [[ ! -f "$TARGET_FILE" ]]; then
+ echo -e "\e[31mError: File not found $TARGET_FILE\e[0m"
+ return 1
+ fi
+
+ # Prepare array
+ local options="Packages=("
+
+ # Read data from CSV and convert to required format
+ while IFS=',' read -r name pkg description; do
+ # Skip header row
+ if [[ "$name" == "Name" ]]; then
+ continue
+ fi
+
+ # Remove extra spaces around text (if any)
+ name=$(echo "$name" | xargs)
+ pkg=$(echo "$pkg" | xargs)
+ description=$(echo "$description" | xargs)
+
+ # Check if columns contain data before adding
+ if [[ -n "$name" && -n "$pkg" && -n "$description" ]]; then
+ # Add data to array in required format
+ options="$options\n \"$name:$pkg:$description\""
+ fi
+ done < "$CSV_FILE"
+
+ # Close array
+ options="$options\n)"
+
+ # Replace # PACK with array
+ sed -i "s/# Packages/$options/" "$TARGET_FILE"
+
+ # Inform user of successful update
+ echo -e "\e[32mSuccessfully updated packages in: $TARGET_FILE\e[0m"
+ return 0
+}
+
+if [ -f "Batlinux.sh" ]; then
+ rm Batlinux.sh
+fi
+
+echo "#!/bin/bash" >> "$OUTPUT_FILE"
+
+# Loop through each directory and group files under one region
+for DIR in "${DIRECTORIES[@]}"; do
+ if [[ -d "$DIR" ]]; then
+ echo "#region $DIR" >> "$OUTPUT_FILE" # Add #region with directory name
+ for FILE in "$DIR"/*; do
+ if [[ -f "$FILE" ]]; then
+ # Append the content of each script file directly to the output
+ cat "$FILE" >> "$OUTPUT_FILE"
+ echo "" >> "$OUTPUT_FILE" # Add a newline after each file content
+ fi
+ done
+ echo "#endregion $DIR" >> "$OUTPUT_FILE" # Add #endregion with directory name
+ else
+ echo "Warning: Directory '$DIR' not found. Skipping."
+ fi
+done
+
+# update packages
+update_packages
+
+# Convert Windows line endings to Unix
+dos2unix "$OUTPUT_FILE" 2>/dev/null || true
+
+./Batlinux.sh
+echo "Build complete! Output written to '$OUTPUT_FILE'."
\ No newline at end of file