Mount iCloud Drive on Linux using FUSE.
git clone https://github.com/ismaeelakram/icloud-linux.git
cd icloud-linux
./icloudctl quickstart ~/iCloudquickstart will:
- create a virtualenv and install Python deps
- initialize user config/service files
- prompt for Apple ID credentials
- run one-time interactive 2FA auth
- start the user service
Systemd services are non-interactive, so they cannot wait for 2FA input.
This project uses a two-phase auth flow:
./icloudctl auth(interactive, one-time) stores trusted session cookiesicloud.service(background) reuses saved cookies and runs non-interactively
If cookies expire, just run ./icloudctl auth again.
./icloudctl init [mount_dir] # prepare venv/config/service
./icloudctl configure [email] # write config.yaml interactively
./icloudctl auth # one-time 2FA bootstrap
./icloudctl start|stop|restart
./icloudctl status
./icloudctl logs
./icloudctl doctor
./icloudctl uninstall [--purge]- Config:
~/.config/icloud-linux/config.yaml - Service env:
~/.config/icloud-linux/icloud.env - Session cookies:
~/.config/icloud-linux/cookies - Cache:
~/.cache/icloud-linux - Logs:
~/.local/state/icloud-linux/icloud.log - Systemd user service:
~/.config/systemd/user/icloud.service
You need FUSE + Python tooling installed once:
sudo apt-get update
sudo apt-get install -y fuse libfuse-dev pkg-config python3-venv./icloudctl status
./icloudctl logsRun again:
./icloudctl auth
./icloudctl restart./icloudctl doctor