[Honor 5X ROMs, Kernels, Recoveries, & Other Develo] yelupic:
There is no TWRP recovery I'm aware of, which can do this (with an 100 % adopted SD card).

Options:

You can apply the downloaded <update>.zip manually via copy from /storage/emulated/0/cmupdater/ to (e. g.) /data/media/0/cmupdater/ followed by TWRP > Install > /data/media/0/cmupdater/<update>.zip > Swipe ...

___

With a TWRP recovery capable to access the adopted SD card it is easier (after an OTA download):

TWRP > Install > /sdcard/cmupdater/<update>.zip > Swipe ...
​

___

Special case:

With an adopted SD card in *mixed* mode (sm partition <disk-id> mixed <nn percent portable>, that would be an external SD card divided in an internal/adopted part and another part used as portable storage) the CM Updater would also fail with both TWRP recoveries from above.

Here you can either apply the <update>.zip manually via copy from /storage/emulated/0/cmupdater/ to (e. g.) /data/media/0/cmupdater/ followed by TWRP > Install > /data/media/0/cmupdater/<update>.zip > ... or use a shell script (e. g. with Terminal Emulator App as root) from Android which does all the steps for you.

Unfortunately I'm not allowed to attach files in this thread ATM, so I give you a plain text

Example for a working shell script (please read the documentation carefully & make a backup before using it):

#!/system/bin/sh

###
### you are on your very own using this script - so, think twice before acting
### you and only you are responsible for any negative outcome using it
###
### ___
###
### solution for not working cm updater otas with adopted sd card
### (in mixed mode *and* data migrated to sd card - portable storage sdcard1)
###
### this script is only for phones with twrp recovery installed
### this script is only for phones running a cm 13 rom
### this script is only for phones using an adopted sd card in *mixed* mode
### this script is only for phones having the data migrated to the adopted part of the sdcard
###
### this script is capable of flashing a certain supersu in systemless mode
### per default, this function is deactivated (variable "supersu_flashable_zip" set to "")
### if activated, the script needs one of the following supersu flashable zips
###
### BETA-SuperSU-v2.74-2-20160519174328.zip (to prefer)
### UPDATE-SuperSU-v2.76-20160630161323.zip (doesn't work on a few devices)
### (others maybe possible, but have not been tested)
###
### on the internal sd card (/data/media/0/)
### (location can be changed, see code: supersu_flashable_zip="..."
###
### this script needs root and is to be executed as follows
###
### open a shell (terminal emulator, cm-terminal, adb shell) and type
###
### su
### . /<path_to_script>/<name_of_this_script>
###
### ___
###
### this script
###
### 1. creates an open recovery script (ors) file
### automatically executed by twrp recovery if present
### (/cache/recovery/openrecoveryscript)
### 2. reboots into twrp recovery
### 3. the created open recovery script will then be called and
### 3.1. performs a full twrp backup of boot, data, system
### 3.2. adds a backup of the adopted sd card's key files as .tar.gz to the twrp backup folder
### 3.3. installs the newest cm nightly zip downloaded via cm updater
### 3.4. optionally (re-)installs a supersu flashable zip (systemless), if a file name is set
### 3.5. reboots into android
###
### the ors file /cache/recovery/openrecoveryscript will be deleted
### before the reboot to avoid identical automatic executions
###

### only root is allowed to run this script
if [ ! "0" -eq "$(id -u)" ] ; then

echo ""
echo "CANCELED:"
echo "only root is allowed to run this script"
echo "to become root enter this command: su"
echo "then repeat running the script"
echo ""

return
fi

### handle different sd card locations of files involved
sdc_always_visible_twrp_and_android="data/media/0"

sdc_int="storage/emulated/0"
sdc_twrp_int="sdcard"

sdc_ext_uuid=$(blkid | grep mmcblk1p1 | cut -d'"' -f 2)
sdc_ext="storage/$sdc_ext_uuid"
sdc_twrp_ext="external_sd"

sdc_twrp_otg="usb_otg"

### location of twrp backups folder - can be "$sdc_twrp_int" or "$sdc_twrp_ext" or "$sdc_twrp_otg"
#sdc_twrp="$sdc_twrp_int" # twrp backups in /data/media/0/ or twrp > /sdcard/
#sdc_twrp="$sdc_twrp_ext" # twrp backups in twrp > /external_sd/, visible on portable part of adopted sdcard
#sdc_twrp="$sdc_twrp_otg" # only if supported by twrp and the device! - check it first ...
sdc_twrp="$sdc_twrp_ext" # twrp backups in twrp > /external_sd/, visible on portable part of adopted sdcard

### install this supersu flashable zip (if left empty no supersu will be installed)
### the supersu flashable zip file has to be already downloaded by you onto your device
#supersu_flashable_zip="" # no installation of supersu
#supersu_flashable_zip="/$sdc_int/UPDATE-SuperSU-v2.76-20160630161323.zip"
#supersu_flashable_zip="/$sdc_ext/BETA-SuperSU-v2.74-2-20160519174328.zip"
#supersu_flashable_zip="/data/media/0/BETA-SuperSU-v2.62-3-20151211162651.zip"
supersu_flashable_zip="" # no installation of supersu

### check what is to be done in case of supersu and prepare the mod accordingly

### don't install supersu
if [ -z "$supersu_flashable_zip" ] ; then

flash_this_supersu=""
else

### defined supersu flashable zip could not be found - cancel execution
if [ ! -e "$supersu_flashable_zip" ] ; then

echo ""
echo "CANCELED:"
echo "supersu twrp flashable zip not found:"
echo "$supersu_flashable_zip"
echo ""

exit
else

### supersu flashable zip file exists - prepare installation with a copy of the file
supersu_tmp="supersu-kill-me-after-installation.zip"
cp "$supersu_flashable_zip" "/$sdc_always_visible_twrp_and_android/$supersu_tmp"
flash_this_supersu="/$sdc_always_visible_twrp_and_android/$supersu_tmp"
fi
fi

### find out latest downloaded nightly to be installed

### no downloaded nightly found in regular cm updater folder
if [ ! -d "/$sdc_int/cmupdater" ] ; then

echo ""
echo "CANCELED:"
echo "no nightly found - cmupdater folder does not exist"
echo ""

exit
fi

if [ -z "$(ls /$sdc_int/cmupdater/cm*.zip)" ] ; then

echo ""
echo "CANCELED:"
echo "no nightly found - cmupdater folder is empty"
echo ""

exit
fi

last_nightly_zip="$(basename $(ls /$sdc_int/cmupdater/cm*.zip | tail -n 1) )"
flash_this_nightly=/$sdc_twrp_ext/cmupdater/$last_nightly_zip

### newest nightly is older than current (installed) - cancel execution ...
current_nightly_date=$(getprop ro.cm.version | cut -d'-' -f 2)
last_nightly_zip_date=$(echo "$last_nightly_zip" | cut -d'-' -f 3)

if [ $current_nightly_date -eq $last_nightly_zip_date ] || [ $current_nightly_date -gt $last_nightly_zip_date ] ; then

echo ""
echo "CANCELED:"
echo "current installed nightly is the same or newer than the newest downloaded one"
echo "date of installed nightly: $current_nightly_date"
echo "date of newest downloaded nightly: $last_nightly_zip_date"
echo ""

exit
fi

### copy dowloaded newest nightly to twrp visible folder
mkdir -p /$sdc_ext/cmupdater/
echo "__________"
echo "copying /$sdc_int/cmupdater/$last_nightly_zip to /$sdc_ext/cmupdater/$last_nightly_zip ..."
cp /$sdc_int/cmupdater/$last_nightly_zip /$sdc_ext/cmupdater/$last_nightly_zip
echo ""

### create a (system date and nightly version dependent) backup folder name
current_date=$(date +%Y-%m-%d_%H.%M)
current_nightly=$(getprop ro.cm.version)
backup_folder="$current_date-cm-$current_nightly-adop"

### backup adopted key files
### restore in a terminal with
### su
### tar -xzvf adopted-key.tar.gz -C /
serial_no=$(getprop ro.boot.serialno)
backup_adopted_key="/$sdc_twrp/TWRP/BACKUPS/$serial_no/$backup_folder/adopted-key.tar.gz"

### create an open recovery script (ors) file
ors="/cache/recovery/openrecoveryscript"

### write the commands to perform into the ors file

verify_sign_zip_twrp="set tw_signed_zip_verify 0"
backups_twrp="set tw_zip_location /$sdc_twrp"
storage_twrp="set tw_storage_path /$sdc_twrp"

echo "" > $ors
echo "$verify_sign_zip_twrp" >> $ors
echo "$backups_twrp" >> $ors
echo "$storage_twrp" >> $ors
echo "backup BSDO $backup_folder" >> $ors
echo "cmd tar -czvf $backup_adopted_key data/misc/vold data/system/storage.xml -C /" >> $ors
echo "install $flash_this_nightly" >> $ors
echo "cmd rm $flash_this_nightly" >> $ors
### only install supersu if desired
if [ ! -z "$supersu_flashable_zip" ] ; then
echo 'cmd echo "SYSTEMLESS=true" > /data/.supersu' >> $ors
echo "install $flash_this_supersu" >> $ors
echo "cmd rm $flash_this_supersu" >> $ors
fi
echo "cmd reboot" >> $ors
echo "" >> $ors

### display the content of the ors file after creation
echo "__________"
echo "content of created file $ors:"
cat $ors
echo "__________"

### execute the ors file by booting into twrp recovery
echo "will reboot now into recovery for script execution ..."
echo ""
sleep 5

reboot recovery

___

You can easily adapt this for a SD card which is fully (100 %) adopted like so:

#!/system/bin/sh

###
### you are on your very own using this script - so, think twice before acting
### you and only you are responsible for any negative outcome using it
###
### ___
###
### solution for not working cm updater otas with adopted sd card
### (NOT in mixed mode *and* data migrated to sd card)
###
### this script is only for phones with twrp recovery installed
### this script is only for phones running a cm 13 rom
### this script is only for phones using an adopted sd card NOT in *mixed* mode
### this script is only for phones having the data migrated to the adopted part of the sdcard
###
### this script is capable of flashing a certain supersu in systemless mode
### per default, this function is deactivated (variable "supersu_flashable_zip" set to "")
### if activated, the script needs one of the following supersu flashable zips
###
### BETA-SuperSU-v2.74-2-20160519174328.zip (to prefer)
### UPDATE-SuperSU-v2.76-20160630161323.zip (doesn't work on a few devices)
### (others maybe possible, but have not been tested)
###
### on the internal sd card (/data/media/0/)
### (location can be changed, see code: supersu_flashable_zip="..."
###
### this script needs root and is to be executed as follows
###
### open a shell (terminal emulator, cm-terminal, adb shell) and type
###
### su
### . /<path_to_script>/<name_of_this_script>
###
### ___
###
### this script
###
### 1. creates an open recovery script (ors) file
### automatically executed by twrp recovery if present
### (/cache/recovery/openrecoveryscript)
### 2. reboots into twrp recovery
### 3. the created open recovery script will then be called and
### 3.1. performs a full twrp backup of boot, data, system
### 3.2. adds a backup of the adopted sd card's key files as .tar.gz to the twrp backup folder
### 3.3. installs the newest cm nightly zip downloaded via cm updater
### 3.4. optionally (re-)installs a supersu flashable zip (systemless), if a file name is set
### 3.5. reboots into android
###
### the ors file /cache/recovery/openrecoveryscript will be deleted
### before the reboot to avoid identical automatic executions
###

### only root is allowed to run this script
if [ ! "0" -eq "$(id -u)" ] ; then

echo ""
echo "CANCELED:"
echo "only root is allowed to run this script"
echo "to become root enter this command: su"
echo "then repeat running the script"
echo ""

return
fi

### handle different sd card locations of files involved
sdc_always_visible_twrp_and_android="data/media/0"

sdc_int="storage/emulated/0"
sdc_twrp_int="sdcard"

sdc_ext_uuid=$(blkid | grep mmcblk1p1 | cut -d'"' -f 2)
sdc_ext="storage/$sdc_ext_uuid"
sdc_twrp_ext="external_sd"

sdc_twrp_otg="usb_otg"

### location of twrp backups folder - can be "$sdc_twrp_int" or "$sdc_twrp_ext" or "$sdc_twrp_otg"
#sdc_twrp="$sdc_twrp_int" # twrp backups in /data/media/0/ or twrp > /sdcard/
#sdc_twrp="$sdc_twrp_ext" # twrp backups in twrp > /external_sd/, visible on portable part of adopted sdcard
#sdc_twrp="$sdc_twrp_otg" # only if supported by twrp and the device! - check it first ...
sdc_twrp="$sdc_twrp_int" # twrp backups in /data/media/0/ or twrp > /sdcard/

### install this supersu flashable zip (if left empty no supersu will be installed)
### the supersu flashable zip file has to be already downloaded by you onto your device
#supersu_flashable_zip="" # no installation of supersu
#supersu_flashable_zip="/$sdc_int/UPDATE-SuperSU-v2.76-20160630161323.zip"
#supersu_flashable_zip="/$sdc_ext/BETA-SuperSU-v2.74-2-20160519174328.zip"
#supersu_flashable_zip="/data/media/0/BETA-SuperSU-v2.62-3-20151211162651.zip"
supersu_flashable_zip="" # no installation of supersu

### check what is to be done in case of supersu and prepare the mod accordingly

### don't install supersu
if [ -z "$supersu_flashable_zip" ] ; then

flash_this_supersu=""
else

### defined supersu flashable zip could not be found - cancel execution
if [ ! -e "$supersu_flashable_zip" ] ; then

echo ""
echo "CANCELED:"
echo "supersu twrp flashable zip not found:"
echo "$supersu_flashable_zip"
echo ""

exit
else

### supersu flashable zip file exists - prepare installation with a copy of the file
supersu_tmp="supersu-kill-me-after-installation.zip"
cp "$supersu_flashable_zip" "/$sdc_always_visible_twrp_and_android/$supersu_tmp"
flash_this_supersu="/$sdc_always_visible_twrp_and_android/$supersu_tmp"
fi
fi

### find out latest downloaded nightly to be installed

### no downloaded nightly found in regular cm updater folder
if [ ! -d "/$sdc_int/cmupdater" ] ; then

echo ""
echo "CANCELED:"
echo "no nightly found - cmupdater folder does not exist"
echo ""

exit
fi

if [ -z "$(ls /$sdc_int/cmupdater/cm*.zip)" ] ; then

echo ""
echo "CANCELED:"
echo "no nightly found - cmupdater folder is empty"
echo ""

exit
fi

last_nightly_zip="$(basename $(ls /$sdc_int/cmupdater/cm*.zip | tail -n 1) )"
flash_this_nightly=/$sdc_twrp_ext/cmupdater/$last_nightly_zip

### newest nightly is older than current (installed) - cancel execution ...
current_nightly_date=$(getprop ro.cm.version | cut -d'-' -f 2)
last_nightly_zip_date=$(echo "$last_nightly_zip" | cut -d'-' -f 3)

if [ $current_nightly_date -eq $last_nightly_zip_date ] || [ $current_nightly_date -gt $last_nightly_zip_date ] ; then

echo ""
echo "CANCELED:"
echo "current installed nightly is the same or newer than the newest downloaded one"
echo "date of installed nightly: $current_nightly_date"
echo "date of newest downloaded nightly: $last_nightly_zip_date"
echo ""

exit
fi

### copy dowloaded newest nightly to twrp visible folder
mkdir -p /$sdc_always_visible_twrp_and_android/cmupdater/
echo "__________"
echo "copying /$sdc_int/cmupdater/$last_nightly_zip to /$sdc_always_visible_twrp_and_android/cmupdater/$last_nightly_zip ..."
cp /$sdc_int/cmupdater/$last_nightly_zip /$sdc_always_visible_twrp_and_android/cmupdater/$last_nightly_zip
echo ""

### create a (system date and nightly version dependent) backup folder name
current_date=$(date +%Y-%m-%d_%H.%M)
current_nightly=$(getprop ro.cm.version)
backup_folder="$current_date-cm-$current_nightly-adop"

### backup adopted key files
### restore in a terminal with
### su
### tar -xzvf adopted-key.tar.gz -C /
serial_no=$(getprop ro.boot.serialno)
backup_adopted_key="/$sdc_twrp/TWRP/BACKUPS/$serial_no/$backup_folder/adopted-key.tar.gz"

### create an open recovery script (ors) file
ors="/cache/recovery/openrecoveryscript"

### write the commands to perform into the ors file

verify_sign_zip_twrp="set tw_signed_zip_verify 0"
backups_twrp="set tw_zip_location /$sdc_twrp"
storage_twrp="set tw_storage_path /$sdc_twrp"

echo "" > $ors
echo "$verify_sign_zip_twrp" >> $ors
echo "$backups_twrp" >> $ors
echo "$storage_twrp" >> $ors
echo "backup BSDO $backup_folder" >> $ors
echo "cmd tar -czvf $backup_adopted_key data/misc/vold data/system/storage.xml -C /" >> $ors
echo "install $flash_this_nightly" >> $ors
echo "cmd rm $flash_this_nightly" >> $ors
### only install supersu if desired
if [ ! -z "$supersu_flashable_zip" ] ; then
echo 'cmd echo "SYSTEMLESS=true" > /data/.supersu' >> $ors
echo "install $flash_this_supersu" >> $ors
echo "cmd rm $flash_this_supersu" >> $ors
fi
echo "cmd reboot" >> $ors
echo "" >> $ors

### display the content of the ors file after creation
echo "__________"
echo "content of created file $ors:"
cat $ors
echo "__________"

### execute the ors file by booting into twrp recovery
echo "will reboot now into recovery for script execution ..."
echo ""
sleep 5

reboot recovery

___

There are at least 2 TWRP recoveries which can handle an adopted SD card (capable of running with these scripts):

TWRP_adopted_storage.zip | by clsA for Generic Device/Other

twrp-3.0.2-0-kiwi_decryption_test.zip - Google Drive

___

But why not just download a nightly (either via CM Updater or via the browser) and install it with TWRP (capable to do the adopted stuff)? - The OTAs are the same size as the full nightlies and you just miss the automatic round trip.

(Also there is adb sideload from your PC in connection with TWRP > Advanced > ADB Sideload.)