Download
Install it wherever it belongs
The same core, installed two ways: as the app on a phone, tablet, TV or headset, or as a background service on a computer, NAS or Docker host. Sign in with the same CloudDrive account.
App stores
Phones, tablets, TVs and headsets
Install from the store and sign in with the same CloudDrive account. Core membership and App Pro both live on the account, so they follow you across devices and platforms.
- App StoreiPhone · iPad · Mac · Apple TV · Vision Pro — available now
- Google PlayAndroid phones and Android TV — available now
- Meta HorizonQuest — in alpha
iPhone, iPad, Mac, Apple TV and Vision Pro are on the App Store, and Android phones, tablets and Android TV are on Google Play — the buttons above install them. On a device without Google Play, the universal APK below does the same job.
What each platform can do, what it requires and what it looks like is on the apps pages.
The app
Direct app downloads
The app and the core service are separate packages, released separately and versioned separately. These are the app builds that do not go through a store: a notarised dmg for macOS, signed installers for Windows and a universal APK for Android. They all check for their own updates in-app.
Current release 1.0.17 · GitHub release
- macOS Apple siliconCloudDrive2-1.0.17-15-macos-arm64.dmg
- macOS IntelCloudDrive2-1.0.17-15-macos-x64.dmg
- Windows x64CloudDrive2-1.0.17-2-windows-x64.exe
- Windows Arm64CloudDrive2-1.0.17-2-windows-arm64.exe
- Android universal APKCloudDrive2-1.0.17-338-android.apk
macOS 13 Ventura or later, with separate Apple silicon and Intel installers that are identical in features. If you are unsure which you need, check About This Mac: "Chip Apple M…" takes the Apple silicon build, "Processor Intel…" takes the Intel one. This build is notarised by Apple, so it opens without a security warning, and it runs outside the sandbox — local mounting (which needs macFUSE), Blu-ray BD-J disc menus and USB Native DSD exist only here. The full comparison is on the macOS page.
Windows 10 version 1809 (build 17763) or later, with separate x64 and Arm64 installers — pick the wrong one and the installer says so. Both are code-signed and timestamped. Installing needs administrator rights: it writes to Program Files and sets up the WinFSP driver that mounting uses. The Windows build number jumped from 1.0.14.9 to 1.0.16.x to line back up with macOS and Android.
Windows users should take this one: on machines whose graphics driver did not ship the Vulkan runtime, earlier builds could not play anything at all and reported "this build does not include the playback engine" every time. Current builds bundle their own implementation and the failure is gone.
Android 7.0 or later, one package for phones, tablets and Android TV. The universal APK covers arm64-v8a and armeabi-v7a (32-bit ARM); there is no x86_64 build.
iPhone, iPad, Apple TV, Vision Pro and Meta Quest install from their own stores — see above. If you only want mounting and browser management and no player, the core service is enough on its own.
The core service
Core service packages
The core service runs in the background on a computer, NAS or Android device, and does the actual
work: connecting clouds, mounting, cross-cloud copying, backup and WebDAV. Once it is installed, open
http://<host-ip>:19798 in a browser to reach the management interface. Step-by-step
instructions are on the help page.
Current release 1.0.16 · GitHub releases
Windows
Linux
- Linux x86_64clouddrive-2-linux-x86_64-1.0.16.tgz
- Linux aarch64clouddrive-2-linux-aarch64-1.0.16.tgz
- Linux armv7clouddrive-2-linux-armv7-1.0.16.tgz
macOS
Mounting clouds as local disks needs macFUSE installed first, and its kernel extension approved afterwards — see letting macFUSE through. You can also install through Homebrew — see the help page.
- macOS Intelclouddrive-2-macos-x86_64-1.0.16.tgz
- macOS Apple Siliconclouddrive-2-macos-aarch64-1.0.16.tgz
Android
The APK here wraps the core service as an Android app, with its own web management interface; the tgz archives run the core service inside an existing Android environment. The CloudDrive2 app with the player is a different package, in the section above. Local mounting on a phone requires root; browsing, playback, backup and WebDAV do not.
- Android APK (universal)clouddrive-2-android-universal-1.0.16-224.apk
- Android aarch64clouddrive-2-android-aarch64-1.0.16.tgz
- Android x86_64clouddrive-2-android-x86_64-1.0.16.tgz
- Android armv7clouddrive-2-android-armv7-1.0.16.tgz
fnOS
The listing in the official fnOS app centre is still under review. For now, download the fpk package for your architecture and install it manually.
Mirrors
Download from a cloud drive
The same packages as above, with a share for the app and one for the core service. Use these when GitHub is slow.
The app
- 115Access code d1b1
- 123 PanNo access code
- Baidu PanAccess code kfnp
- Aliyun DriveWindows build only, due to sharing limits
- Tianyi CloudAccess code 93ws
The core service
NAS and containers
Running it on a NAS
A NAS runs the same core service, by either of two routes: pull the Docker image, or install the package for its architecture from the list above.
-
Docker deployment guide
For mounts to be visible outside the container the host needs shared mount propagation — which many systems already have. How to check, how to enable it when needed, and the full compose setup are all on that page.
-
Docker Hub image
cloudnas/clouddrive2, covering amd64, arm64 and armv7, published alongside every release. -
Synology, QNAP, Unraid, fnOS
All the mainstream NAS platforms work, with packages for x86_64, arm64 and armv7.
Third-party NAS packages
These NAS packages come from third parties. Judge them for yourself before downloading — we cannot vouch for their security or stability.
Plugin
The Emby and Jellyfin companion plugin
This one installs on the media server, and makes Emby or Jellyfin work with the CloudDrive2 on the same host. One source tree, two builds.
Live library updates, with monitoring off
The plugin subscribes to CloudDrive2's file-change notifications and hands each one to the server's targeted-refresh entry point. A scraper — tinyMediaManager, MoviePilot, MDCx — finishes in the mounted folder and the film turns up in the library on its own, with real-time monitoring switched off. No recursive walk at startup, no burst of cloud listings, and no reliance on full scans, which are the single biggest cause of cloud-provider rate limiting.
Playback-aware prefetch
At playback start it warms the head and tail of the file — the moov atom or EBML header a player needs for the first frame, and the MKV cues a seek reaches for. Near the end it warms the next file in the same folder, and on stop it closes the reader straight away. Every client benefits, not just the CloudDrive2 App.
Zero-config path mapping
Direct play needs to know which local cloud folder a server's media path corresponds to, and that used to be a hand-written rule. The plugin exposes the mounts and cloud-account identities, and the App works the mapping out itself — matching on account identity rather than folder name, because the same 115 account is rarely named the same on both machines.
Download
Jellyfin takes the DLL, meta.json and thumb.png together in a CloudDrive subfolder of its plugin directory; Emby takes the DLL on its own, no subfolder. Replacing the DLL inside a container needs the container restarted — the server's own restart button is not enough. Full install and configuration notes are in the plugin repository.
Server minimum: Emby 4.8.0.80 or Jellyfin 10.11. Verified on Emby 4.9.5 and Jellyfin 10.11.11.
The first two features are server-side only — install the plugin, point it at CloudDrive2, done, with no CloudDrive2 App involved. Live library updates rely on file-change notification, which is a membership (Pro) feature. Zero-config path mapping needs CloudDrive2 App 1.0.14 or later.
The plugin connects to CloudDrive2 with an API token. When you create one, Push Messages and Get Mounts are off by default and have to be ticked by hand — without them the plugin connects, reports healthy, and never updates the library. It never writes, deletes or modifies a file.
Changelog
What changed in each release
Release notes for the core service and the web interface, newest first. Older releases are on the GitHub releases page.
1.0.16(Web3.0.16)
- Fixed cross-cloud copies stuck at "Preprocessing": when copying to a cloud that supports instant upload, the hashing stage could in rare cases crash the service into a restart loop, so the task never started
- Fixed cross-cloud copies waiting forever with no error at all when the source cloud (Baidu, for one) stopped responding after connecting, or the destination cloud left a chunked upload unanswered
- A copy or backup task whose source is a local folder is no longer cancelled outright after a restart when the disk holding it is not ready. Following a NAS or container reboot the task waits for the source storage — up to 10 minutes — instead of being skipped or cancelled, and a source file that genuinely does not exist has the reason recorded and shown on the task
- Fixed backups and copies into an encrypted folder occasionally creating a second, unencrypted folder of the same name after a restart, which showed up as a folder with a "(1)" suffix. Membership status was not being read in time
- Fixed in-flight cross-cloud copies into an encrypted folder failing on a hash mismatch and re-transferring after a restart
- SMB: fixed the server returning 0xC000011F while backing up very large numbers of files — hundreds of thousands — after which no directory would open at all; client handles no longer accumulate without limit. Also fixed the long stall at the start of reading an uncached file over SMB
- Fixed "file not found" errors when writing to a mounted drive. A file deleted and recreated, or overwritten by one of the same name, before its upload had finished — common when backup software finishes a run, and with Cryptomator — had the new file wrongly cleaned up, and the application then reported
os error 2 - Windows: mounted drives are case-insensitive again, like every other Windows disk. Software that lowercases paths, such as Czkawka, can reach folders on a mounted drive again, and case-insensitive wildcards such as
dir *.TXTmatch - Windows: every file on a mounted drive now carries a unique identifier. Java-based scanners such as Komga no longer mistake a subfolder for a loop and skip the whole directory
- macOS: mounted drives resolve paths case-insensitively, as macOS itself does. Linux mounts stay case-sensitive and are unaffected
- "Add backup" now explains why when your plan does not allow another one — how many it allows, how many you have — and offers an "Upgrade plan" button, instead of an empty red alert
- Other performance improvements, bug fixes and interface polish
1.0.15(Web3.0.14)
- Faster background multi-threaded downloads from cloud storages — playback of high-bitrate video is smoother
- Backups now report a clear error when real-time file-change monitoring fails to start. Previously, when monitoring wasn't actually running the UI still showed "Idle," indistinguishable from a healthy backup, while file changes were silently going unbacked. On Linux, if the number of watched directories exceeds the system limit (Synology's default is 8192), the entire watcher used to fail silently; CloudDrive now surfaces the reason and tells you how to raise the limit, keeping whatever watches did fit in place
- Fixed disk space not being reclaimed after a backup — space freed when a source file was deleted was not returned to the OS until the service was restarted
- Fixed a cache error, and repeated log spam, when renaming a file or folder to a name that already exists
- Fixed the device name change requiring a fresh login
- Other bug fixes and performance improvements
1.0.14(Web3.0.14)
- Added account deletion. You can delete your account from the profile page: a confirmation code is emailed to your registered address, and the deletion only goes through once you enter that code. Accounts that were registered automatically by a partner device, and accounts signed in through Xunlei, must first set an email address and password on the profile page before they can be deleted. Deleting an account cancels its remaining balance and all membership entitlements; refunds are not available
- Fixed mounted drives hanging under heavy load — when transfers were busy and many requests arrived at once, a mounted cloud drive could stop responding for a long time (hours in extreme cases). This is now properly fixed: requests queue smoothly instead of hanging when the system is busy, and a single failing request returns an error promptly and the system recovers on its own
- Smoother rate limiting, less likely to trip the risk controls of 115 and other clouds; raising the rate limit now takes effect immediately
- Fixed intermittent "file does not exist" / duplicate-name errors after creating a folder on 115 — a freshly created folder could be misjudged because the cloud's index takes a few seconds to catch up. CloudDrive now detects that delay and retries briefly, so the operation completes normally
- More reliable backups — temporary problems such as network hiccups are now retried automatically instead of being skipped, so fewer files are missed
- Fixed backups treating a folder as a file, and added automatic cleanup of the invalid tasks left behind by that bug
- The membership page now explains what CloudDrive2 App Pro unlocks, and links to it
- Other bug fixes and performance improvements
1.0.13(Web3.0.13)
- Added resource-usage controls for full scans in multi-cloud backup:
- The default number of concurrent backup scans is 1. You can change the maximum concurrency on the backup page; full scans beyond that limit are queued and wait their turn
- You can set upper and lower thresholds for the upload task queue. When the number of upload tasks exceeds the upper threshold, scan tasks pause and wait; when it falls back to the lower threshold, scan tasks resume automatically. This prevents too many upload tasks from piling up when scanning large files. Unlimited by default; configurable on the backup page
- For cross-cloud copies, you can choose on the Download/Upload page in system settings whether to save the downloaded data to a temporary file during the hash-computation stage, so the source file does not need to be downloaded again for the upload. The temporary file is deleted automatically once the copy completes. This option is off by default
- Windows: fixed errors that could occur when editing images on a mounted drive in the system file manager, and fixed thumbnails not refreshing automatically after rotating an image
- Fixed the task count shown in real time in the web UI possibly being inaccurate
- Web UI: fixed dragging a local file to the root directory creating an upload task that could never complete, along with a file that could not be deleted
1.0.12(Web3.0.12)
- Fixed memory growth after a fuse mount: memory no longer grows without bound when media servers such as Emby scan millions of files
- Fixed multiple S3 accounts on the same endpoint overwriting each other
- Improved performance when accessing files over http, lowering CPU and memory usage
- Web UI: added Select All and Deselect All options after entering multi-select mode on mobile
- Fixed read-only folders (Guangya Cloud) not being usable as the source directory for a mounted drive or a backup
- Other performance improvements and bug fixes
1.0.11(Web3.0.11)
- Added support for adding Guangya Cloud. Currently read-only: you can browse directories and read files, but cannot create folders, delete files, rename, move or upload. Login by scanning a QR code with the Guangya Cloud app is supported. A fully functional Guangya Cloud integration will come in a later release
- For S3, when no bucket name is specified, all buckets in the account are browsable: ListBuckets (GET /) is used automatically and each bucket is shown as a top-level folder. Both path-style and virtual-hosted-style addressing, and V2/V4 signatures, are supported. The bucket-list root directory is read-only (creating/deleting buckets is not supported)
- Fixed file reads possibly failing when connecting to some WebDAV servers that do not support http range requests
- Web: added multi-server support. You can connect to the grpc service of another CloudDrive2, which makes it convenient to manage a mobile device's CloudDrive remotely from a desktop browser
- Other bug fixes and UI improvements
1.0.10(Web3.0.10)
- When purchasing a lifetime membership, if the account still has an unexpired annual or monthly membership, the remaining unexpired portion is automatically credited at the annual rate against part of the lifetime membership price
- Fixed authorization failing in 1.0.9 when adding Xunlei and when signing in with a Xunlei account
1.0.9(Web3.0.9)
- Added fnOS installation package downloads. The listing in the official fnOS app center is under review; for now you can download the fpk package for your architecture and install it manually
- The web file browser now supports media scraper files (.nfo): it recognizes NFO files and posters inside a folder (Kodi/Emby/Jellyfin/Plex compatible) and shows movie information in the file properties panel. This feature only displays already-scraped directories; it does not scrape anything from the internet on its own
- With 2FA enabled, if you lose both your recovery codes and your phone app and cannot sign in, you can have a reset code sent to the account email to disable two-factor authentication and sign in with just the account password
- Accounts registered automatically by a partner device can be unbound from the original device after changing the email and password, so that a lost or sold bound device does not lead to account exposure
- Added a "use multi-threaded download when copying" option in the cloud storage account configuration. When enabled, cross-cloud transfers and backups use the old multi-threaded download behavior
- Added a confirmation dialog when locking an already-decrypted folder, to avoid making files unusable by mistake
- Fixed directory listing failing in edge cases on macOS when there are multiple mount points, which required remounting
- Fixed slow copying of files into encrypted directories
- Fixed uploads possibly failing on Windows when editing files directly inside an encrypted folder with editors such as Visual Studio Code
- Fixed temporary files being left behind when editing a docx file directly with Word in an encrypted directory on 115
- Fixed downloads possibly failing on 32-bit armv7 when accessing large files directly over http
- Other performance improvements and bug fixes
1.0.8(Web3.0.8)
- Cross-cloud copy performance improvements:
- Memory usage during the preprocessing and upload stages of cross-cloud copies is greatly reduced
- Cross-cloud copies to a local folder now use multi-threaded download for higher download speed
- Fixed editing files directly inside an encrypted folder through a mounted drive possibly failing
- Fixed the Update button being unclickable in some cases when editing a mount point on Windows
- Fixed CPU spikes and memory blowup in isolated cases after the service had been running for a long time
- Other performance improvements, bug fixes and UI improvements
1.0.7(Web3.0.7)
⚠️ Important security notice (required reading for Windows users)
This release upgrades WinFSP to 2026 beta1 in order to fix the security vulnerability CVE-2026-3006 found in older versions of WinFSP.
- You must download the full installation package and run the installer again, and restart your system when the installation wizard prompts you to.
- Do not use the in-app OTA update: OTA only replaces the CloudDrive2 program files and will not reinstall the WinFSP driver, so you will not receive this security fix.
- In the 115 configuration screen, the maximum number of download threads is limited to 2; the value set cannot exceed 2
- Added a maximum requests-per-second limit in the 115 configuration screen, which cannot exceed 5.0
- SMB/SFTP/FTP now support reporting disk space (only on some FTP servers; Pure-FTPd and ProFTPD with mod_facts enabled are currently known to return it correctly, other servers fall back to placeholder values. Due to protocol limitations, AVBL only returns the number of available bytes, so total capacity equals available and used is shown as 0)
- Improved the SMB server and share discovery algorithm to work in more scenarios
- Improved handling of file rename conflicts:
- At the core layer (webdav/http/CloudDrive sharing, etc.), a rename conflict now returns a rename failure instead of directly overwriting the old file (which followed POSIX rename behavior)
- Linux and macOS keep the original Unix rename-overwrite semantics: the old file is deleted first and then the rename is performed; if the old file is a non-empty directory, the error ENOTEMPTY is returned, matching POSIX rename(2) behavior
- Windows switches from the previous POSIX behavior to the default Win32 MoveFile behavior, i.e. a rename conflict returns the ERROR_ALREADY_EXISTS error and Explorer shows a "destination already exists" prompt
- For accounts signed in directly through Xunlei and accounts signed in directly through a partner device, the change-password option is hidden on the profile page, leaving only the change email and password options
- Fixed the "copy to clipboard" button in the web UI not working correctly in a non-secure context (when the cd2 URL is http:// and not localhost)
- Other performance improvements and bug fixes
1.0.6(Web3.0.6)
- Added support for adding three network file system types: SFTP/FTP (FTPS)/SMB, with automatic discovery of SMB servers and automatic discovery of SMB shared directories
- When adding a backup, you can now choose not to run a full scan immediately; the default is to run a full scan right after the backup is added
- Fixed 1.0.5 possibly hanging while running on some systems
- When removing a cloud storage from the root directory of the file browser, you can choose whether to remove it permanently. If not removed permanently, the cloud storage is only removed for the current run and is restored after a restart
- Other performance optimizations and bug fixes
1.0.5(Web3.0.5)
- Brand-new asynchronous mount engine for macOS: it communicates directly with the macfuse kernel extension and supports fully asynchronous concurrency, so file reads no longer block directory browsing and multiple files can be read and written at the same time. Multiple threads receive kernel requests from the FUSE device simultaneously, avoiding the request backlog caused by a single-threaded bottleneck, which greatly improves how smoothly Finder handles large numbers of file operations. macfuse is detected dynamically at runtime, and when it is not installed an error message is shown instead of the program failing to start
- Migrated the upload task database from PickleDB to SQLite, so upload task ordering is preserved after a restart
- Fixed an issue where, in some cases, multiple backup tasks were disabled after restarting the machine and could only be re-enabled by restarting the service
- Offline download now supports .torrent files: you can drag in or upload a .torrent file directly, and it will be parsed into a magnet link before being added
- Added shortcuts for cloud drive configuration and folder disk cache to the context menu, so you no longer have to open the properties panel first to configure them
- Local folders no longer show cloud drive configuration or disk cache configuration
- Other performance improvements, bug fixes and UI improvements