diff --git a/README.md b/README.md
index 97b59e0be62958324d3d879e70f0480520699d8b..031d2ad6ab7e3b2eeaed0915abff150e0a918bb8 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,7 @@ The devices below are fully feature supported by OpenRazer, which means all avai
 | Razer Blade Stealth (Early 2020)              |  1532:0252  |
 | Razer Blade 15 Advanced (2020)                |  1532:0253  |
 | Razer Blade 15 (Early 2020) Base              |  1532:0255  |
+| Razer Blade Stealth (Late 2020)               |  1532:0259  |
 | Razer Cynosa V2                               |  1532:025E  |
 
 ### Mice
diff --git a/daemon/openrazer_daemon/hardware/keyboards.py b/daemon/openrazer_daemon/hardware/keyboards.py
index 0de4b60403007d20ef3937d1a386137b49de3698..c9a88ea528b2f669c17af869bf85ce24a00cc3bf 100644
--- a/daemon/openrazer_daemon/hardware/keyboards.py
+++ b/daemon/openrazer_daemon/hardware/keyboards.py
@@ -1060,6 +1060,20 @@ class RazerBladeStealthEarly2020(_RippleKeyboard):
     DEVICE_IMAGE = "https://assets2.razerzone.com/images/blade-stealth-13/shop/sl25p-fhd-4.jpg"
 
 
+class RazerBladeStealthLate2020(_RippleKeyboard):
+    """
+    Class for the Razer Blade Stealth (Late 2020)
+    """
+    EVENT_FILE_REGEX = re.compile(r'.*Razer_Blade_Stealth(-if01)?-event-kbd')
+
+    USB_VID = 0x1532
+    USB_PID = 0x0259
+    METHODS = ['get_device_type_keyboard', 'set_static_effect', 'set_spectrum_effect',
+               'set_none_effect', 'set_breath_random_effect', 'set_breath_single_effect']
+
+    DEVICE_IMAGE = "https://assets2.razerzone.com/images/blade-stealth-13/shop/sl25p-fhd-4.jpg"
+
+
 class RazerBlade2019Adv(_RippleKeyboard):
     """
     Class for the Razer Blade 15 (2019) Advanced
diff --git a/driver/razerkbd_driver.c b/driver/razerkbd_driver.c
index ca50c46cd192867735005c0713c4dc64d658e61e..0e1929f553254245a4aa19f61168bfdc2cdf756f 100644
--- a/driver/razerkbd_driver.c
+++ b/driver/razerkbd_driver.c
@@ -133,6 +133,7 @@ static bool is_blade_laptop(struct usb_device *usb_dev)
     case USB_DEVICE_ID_RAZER_BLADE_PRO_2019:
     case USB_DEVICE_ID_RAZER_BLADE_PRO_LATE_2019:
     case USB_DEVICE_ID_RAZER_BLADE_STEALTH_EARLY_2020:
+    case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020:
     case USB_DEVICE_ID_RAZER_BLADE_15_ADV_2020:
     case USB_DEVICE_ID_RAZER_BLADE_EARLY_2020_BASE:
         return true;
@@ -381,6 +382,10 @@ static ssize_t razer_attr_read_device_type(struct device *dev, struct device_att
         device_type = "Razer Blade Stealth (Early 2020)\n";
         break;
 
+    case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020:
+        device_type = "Razer Blade Stealth (Late 2020)\n";
+        break;
+
     case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2016:
         device_type = "Razer Blade Stealth (Late 2016)\n";
         break;
@@ -1111,6 +1116,7 @@ static ssize_t razer_attr_write_mode_static(struct device *dev, struct device_at
     case USB_DEVICE_ID_RAZER_BLADE_STEALTH_2019:
     case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2019:
     case USB_DEVICE_ID_RAZER_BLADE_STEALTH_EARLY_2020:
+    case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020:
     case USB_DEVICE_ID_RAZER_BLADE_QHD:
     case USB_DEVICE_ID_RAZER_BLADE_PRO_LATE_2016:
     case USB_DEVICE_ID_RAZER_BLADE_2018:
@@ -2318,6 +2324,7 @@ static int razer_kbd_probe(struct hid_device *hdev, const struct hid_device_id *
         case USB_DEVICE_ID_RAZER_BLADE_STEALTH_2019:
         case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2019:
         case USB_DEVICE_ID_RAZER_BLADE_STEALTH_EARLY_2020:
+        case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020:
         case USB_DEVICE_ID_RAZER_BLADE_2019_BASE:
         case USB_DEVICE_ID_RAZER_BLADE_EARLY_2020_BASE:
             CREATE_DEVICE_FILE(&hdev->dev, &dev_attr_matrix_effect_none);            // No effect
@@ -2636,6 +2643,7 @@ static void razer_kbd_disconnect(struct hid_device *hdev)
         case USB_DEVICE_ID_RAZER_BLADE_STEALTH_2019:
         case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2019:
         case USB_DEVICE_ID_RAZER_BLADE_STEALTH_EARLY_2020:
+        case USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020:
         case USB_DEVICE_ID_RAZER_BLADE_2019_BASE:
         case USB_DEVICE_ID_RAZER_BLADE_EARLY_2020_BASE:
             device_remove_file(&hdev->dev, &dev_attr_matrix_effect_none);            // No effect
@@ -2879,6 +2887,7 @@ static const struct hid_device_id razer_devices[] = {
     { HID_USB_DEVICE(USB_VENDOR_ID_RAZER,USB_DEVICE_ID_RAZER_BLADE_STEALTH_2019) },
     { HID_USB_DEVICE(USB_VENDOR_ID_RAZER,USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2019) },
     { HID_USB_DEVICE(USB_VENDOR_ID_RAZER,USB_DEVICE_ID_RAZER_BLADE_STEALTH_EARLY_2020) },
+    { HID_USB_DEVICE(USB_VENDOR_ID_RAZER,USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020) },
     { HID_USB_DEVICE(USB_VENDOR_ID_RAZER,USB_DEVICE_ID_RAZER_BLADE_EARLY_2020_BASE) },
     { 0 }
 };
diff --git a/driver/razerkbd_driver.h b/driver/razerkbd_driver.h
index 3e92a4007f8eb7fdb658e4b47f8d4518cccb862e..335abdb9e4b84fde8f6f3f0ee122e82209fd18d6 100644
--- a/driver/razerkbd_driver.h
+++ b/driver/razerkbd_driver.h
@@ -69,6 +69,7 @@
 #define USB_DEVICE_ID_RAZER_BLADE_STEALTH_EARLY_2020 0x0252
 #define USB_DEVICE_ID_RAZER_BLADE_15_ADV_2020 0x0253
 #define USB_DEVICE_ID_RAZER_BLADE_EARLY_2020_BASE 0x0255
+#define USB_DEVICE_ID_RAZER_BLADE_STEALTH_LATE_2020 0x0259
 #define USB_DEVICE_ID_RAZER_CYNOSA_V2 0x025E
 
 /* Each keyboard report has 90 bytes*/
diff --git a/install_files/appstream/io.github.openrazer.openrazer.metainfo.xml b/install_files/appstream/io.github.openrazer.openrazer.metainfo.xml
index 425f3c7b0201e5aea570944175c15f82e699f2f3..9eff7549052f258ef96894e29064094f111394f0 100644
--- a/install_files/appstream/io.github.openrazer.openrazer.metainfo.xml
+++ b/install_files/appstream/io.github.openrazer.openrazer.metainfo.xml
@@ -122,6 +122,7 @@
     <modalias>usb:v1532p0252d*</modalias>
     <modalias>usb:v1532p0253d*</modalias>
     <modalias>usb:v1532p0255d*</modalias>
+    <modalias>usb:v1532p0259d*</modalias>
     <modalias>usb:v1532p025Ed*</modalias>
     <modalias>usb:v1532p0501d*</modalias>
     <modalias>usb:v1532p0504d*</modalias>
diff --git a/install_files/udev/99-razer.rules b/install_files/udev/99-razer.rules
index fa50b9d91c6252044f42e5f7b0322ccc0b508f6c..eb8e44fb03c7fb13f26ad6cf4329345287d41166 100644
--- a/install_files/udev/99-razer.rules
+++ b/install_files/udev/99-razer.rules
@@ -10,7 +10,7 @@ ATTRS{idProduct}=="0013|0016|0020|0024|0025|002e|002f|0032|0034|0036|0037|0038|0
     ENV{ID_RAZER_CHROMA}="1", ENV{RAZER_DRIVER}="razermouse"
 
 # Keyboards
-ATTRS{idProduct}=="010d|010e|010f|0111|0113|011a|011b|0201|0202|0203|0204|0205|0207|0208|0209|020f|0210|0211|0214|0216|0217|021a|021e|021f|0220|0221|0224|0225|0226|0227|0228|022a|022b|022d|022f|0232|0233|0234|0235|0237|0239|023a|023b|023f|0240|0241|0243|0245|0246|024a|024c|024d|0252|0253|0255|025e", \
+ATTRS{idProduct}=="010d|010e|010f|0111|0113|011a|011b|0201|0202|0203|0204|0205|0207|0208|0209|020f|0210|0211|0214|0216|0217|021a|021e|021f|0220|0221|0224|0225|0226|0227|0228|022a|022b|022d|022f|0232|0233|0234|0235|0237|0239|023a|023b|023f|0240|0241|0243|0245|0246|024a|024c|024d|0252|0253|0255|0259|025e", \
     ATTRS{idVendor}=="1532", \
     ENV{ID_RAZER_CHROMA}="1", ENV{RAZER_DRIVER}="razerkbd"
 
diff --git a/pylib/openrazer/_fake_driver/razerbladestealthlate2020.cfg b/pylib/openrazer/_fake_driver/razerbladestealthlate2020.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..99ec68d101d88467a5a6b3b680b40e227799e87e
--- /dev/null
+++ b/pylib/openrazer/_fake_driver/razerbladestealthlate2020.cfg
@@ -0,0 +1,14 @@
+[device]
+dir_name = 0003:1532:0259.0001
+name = Razer Blade Stealth (Late 2020)
+files = r,device_serial,XX0000000259
+        r,device_type,%(name)s
+        r,firmware_version,v1.0
+        r,kbd_layout,01
+        rw,matrix_brightness,0
+        w,matrix_effect_breath
+        w,matrix_effect_none
+        w,matrix_effect_reactive
+        w,matrix_effect_spectrum
+        w,matrix_effect_static
+        r,version,1.0.0