iCloud-docker is a Docker-based client that downloads iCloud Drive documents and photos to a local copy and keeps that copy synchronized. It is for people who want periodic backups of selected or all of their iCloud files; it only downloads and does not upload local changes.
Borrowing it
Nothing to install: this file belongs to mandarons/icloud-docker. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/mandarons/icloud-docker/main/AGENTS.mdgit clone --depth 1 https://github.com/mandarons/icloud-dockerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/mandarons/icloud-docker/agents-md)<a href="https://agentmods.dev/instructions/mandarons/icloud-docker/agents-md"><img src="https://agentmods.dev/badge/instructions/mandarons/icloud-docker/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/mandarons/icloud-docker/agents-md"><img src="https://agentmods.dev/badge/instructions/mandarons/icloud-docker/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01065 | $0.01065 |
| Opus 5.5 | $0.00426 | $0.00426 |
| Sonnet 5.5 | $0.00213 | $0.00213 |
| Haiku 4.5 | $0.00106 | $0.00106 |
Grade A, and why
icloud-docker AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
iCloud Docker
A containerized iCloud sync client that periodically downloads files from Apple iCloud Drive and iCloud Photos to a local filesystem. Runs as a long-running Docker service with an optional Flask web UI for monitoring and 2FA re-authentication.
Quick Reference
- Language: Python 3.14
- Framework: Flask (web UI), iCloudPy (iCloud API)
- Package manager: pip
Commands
| Task | Command |
|---|---|
| Install dependencies | pip install -r requirements-test.txt |
| Run tests | ENV_CONFIG_FILE_PATH=./tests/data/test_config.yaml pytest |
| Run linter | ruff check |
| Run formatter | ruff format |
| Run full CI pipeline | ./run-ci.sh |
| Security scan | bandit --quiet --format=custom --configfile=src/bandit.yaml src/ && bandit --quiet --format=custom --configfile=tests/bandit.yaml tests/ |
| Docker build | docker build -t mandarons/icloud-drive . |
Always run the full CI pipeline (./run-ci.sh) before declaring work complete.
Architecture Overview
The system is a single-process Python application with two concurrent activities: a sync loop (main thread) and an optional Flask web UI (daemon thread). The sync loop authenticates with iCloud, then alternates between Drive and Photos sync based on adaptive countdown timers. Configuration is YAML-based with environment variable overrides, reloaded on every sync iteration. The codebase follows SRP — monolithic modules have been split into focused helpers (8 for Drive, 7 for Photos).
See docs/index.md for the full architecture document.
Key Conventions
- NEVER use direct dict access for config — always use
config_parser.get_*()functions viatraverse_config_path() - Every
src/*.pymust have a mirrortests/test_*.py— 100% test coverage is enforced (--cov-fail-under=100) - Use
LOGGER = get_logger()at module level — never instantiate loggers inline - Normalize all file paths with
unicodedata.normalize("NFC", path)for macOS/Windows compatibility
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago Changed · +18 tokens per session 52a9f6930c3d
- 2mo ago First seen · 77 lines · 1,047 tokens per session scan A 390d7de38fb5
icloud-docker AGENTS.md is an instructions file published in the GitHub repository mandarons/icloud-docker (1,905 stars, last pushed yesterday), licensed BSD-3-Clause. It adds 1,065 tokens to every session, about $0.0043 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
icloud-docker AGENTS.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| icloud-docker AGENTS.mdmandarons/icloud-docker | Instructions file | 1.9k | yesterday | BSD-3-Clause | A | 1,065 | Codex, OpenCode |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |