iDrive Backup for macOS
iDrive stores all configuration at ~/Library/Application Support/IDriveforMac/. The username is the iDrive account email (e.g. user@example.com), detected from the top-level key in appDefaultSettings.plist.
The Tool
This skill bundles scripts/idrive_tool.py which handles all iDrive operations with correct matching semantics, symlink resolution, and safety backups. Run it with:
python3 <skill-path>/scripts/idrive_tool.py <command> [args...]
Commands
| Command |
Description |
check-exclusion <path> |
Check if a path is excluded and by which rules. Reports backup scope too |
check-scope <path> |
Check if a path falls under any backup reference path |
list-exclusions [--category <name>] |
List exclusion entries. Categories: Default, Partial File, User Profile, User Specified, Propagated |
add-exclusion <path> |
Add absolute path to User Specified exclusions (auto-backups config first) |
remove-exclusion <path> |
Remove path from User Specified exclusions |
show-settings |
Display all scalar settings with current values |
set-setting <key> <value> |
Modify a setting (auto-detects type from existing value) |
account-status |
Show quota, usage, encryption type, plan, app version |
last-backup |
Parse recent LOGXML files and show backup status/results |
find-redundant |
Find exclusion paths made redundant by a parent path in any map |
clean-redundant |
Remove redundant entries from User Specified exclusions |
list-backup-paths |
List all online backup reference paths |
add-backup-path <path> |
Add a directory to backup reference |
remove-backup-path <path> |
Remove a directory from backup reference |
backup-config |
Create timestamped backup copies of config files |
Safety Rules
- Back up before modifying. The tool does this automatically. Manual changes must copy both
appDefaultSettings.plist and <username>/backupReferenceFile.plist to ~/.idrive-backup/backups/ with timestamps first.
- Only modify User Specified exclusions. The other four maps (Default, Partial File, User Profile, Propagated) are system-managed and will be overwritten by iDrive.
- Preserve plist key quirks exactly. Two keys have trailing spaces:
ShowHiddenFilesKey and PowerAfterScheduledJob . One has a typo: NotifyFaiulreValue. The editable exclusion map key is User specified Exclusion (lowercase 's'). Getting any of these wrong creates orphaned keys.
- Never modify
IDLoginDetails.plist, Sync.plist, LDB_NEW/*.ib databases, or anything under Operation/ (root-owned daemon files).
- Exclusion values are always int(1). Presence in the map means excluded. Never write a 0 value; delete the key instead.
- All User Specified paths must be absolute. No tildes, no trailing slashes, no relative paths.
Five Exclusion Maps
| Map |
Plist Key |
Count |
Matching |
Editable |
| Default |
Default Exclusion |
~24 |
Exact/parent path |
No |
| Partial File |
Partial File Exclusion |
~41 |
Substring of full path OR exact filename |
No |
| User Profile |
User Profile Default Exclusion |
~7 |
Exact/parent path |
No |
| User Specified |
User specified Exclusion |
100-2000+ |
Exact/parent path |
Yes |
| Propagated |
Propagated Files Exclusion |
Usually 0 |
Exact/parent path |
No (web console) |
Partial File Exclusion is substring-based. This is the trickiest map. A pattern like .cache matches both /Users/foo/.cache and /path/to/download_cache. Patterns are relative names (never absolute paths), including dotfile dirs (.git, .venv), filename patterns (fp16.bin, safetensors), and one with a separator (pkg/mod).
Key Gotchas
- Mixed boolean types. Some settings use
<true/>/<false/>, others use <integer>0</integer>/<integer>1</integer> for the same concept. The tool handles this; if modifying manually, match the existing type.
- Symlinks/firmlinks.
~/Desktop may resolve to ~/Library/Mobile Documents/com~apple~CloudDocs/Desktop when iCloud Desktop is enabled. Always resolve with os.path.realpath() before comparing paths.
- CDP log filenames have a leading space. iDrive bug: Continuous Data Protection logs in
SessionLogsNew/Backup/ are named MM-DD-YYYY-00-00-00 (note leading space). Account for this when globbing or reading.
- Some files are root-owned.
Operation/Backup/IBThrottle, LDB_NEW/*.ib, and some plists are written by the iDrive daemon as root. Reading is fine; writing requires elevated privileges you shouldn't use.
- The appDefaultSettings.plist can be large. User Specified Exclusion alone can have 1,800+ entries (mostly auto-populated
~/Library/Containers/com.apple.* paths). The plist file can exceed 170 KB.
Detailed Reference
For detailed file format information, all 22+ scalar settings with types and descriptions, secondary file formats (logs, size files, sync config), or the complete directory layout, read references/idrive-config.md.
1---2name: idrive-backup3description: Use this skill whenever the user wants you to manage, discuss or diagnose iDrive Backup configuration on macOS4---5
6# iDrive Backup for macOS
7
8iDrive stores all configuration at `~/Library/Application Support/IDriveforMac/`. The username is the iDrive account email (e.g. `user@example.com`), detected from the top-level key in `appDefaultSettings.plist`.
9
10## The Tool
11
12This skill bundles `scripts/idrive_tool.py` which handles all iDrive operations with correct matching semantics, symlink resolution, and safety backups. Run it with:
13
14```bash
15python3 <skill-path>/scripts/idrive_tool.py <command> [args...]
16```
17
18### Commands
19
20| Command | Description |
21| ------------------------------------- | --------------------------------------------------------------------------------------------------- |
22| `check-exclusion <path>` | Check if a path is excluded and by which rules. Reports backup scope too |
23| `check-scope <path>` | Check if a path falls under any backup reference path |
24| `list-exclusions [--category <name>]` | List exclusion entries. Categories: Default, Partial File, User Profile, User Specified, Propagated |
25| `add-exclusion <path>` | Add absolute path to User Specified exclusions (auto-backups config first) |
26| `remove-exclusion <path>` | Remove path from User Specified exclusions |
27| `show-settings` | Display all scalar settings with current values |
28| `set-setting <key> <value>` | Modify a setting (auto-detects type from existing value) |
29| `account-status` | Show quota, usage, encryption type, plan, app version |
30| `last-backup` | Parse recent LOGXML files and show backup status/results |
31| `find-redundant` | Find exclusion paths made redundant by a parent path in any map |
32| `clean-redundant` | Remove redundant entries from User Specified exclusions |
33| `list-backup-paths` | List all online backup reference paths |
34| `add-backup-path <path>` | Add a directory to backup reference |
35| `remove-backup-path <path>` | Remove a directory from backup reference |
36| `backup-config` | Create timestamped backup copies of config files |
37
38## Safety Rules
39
401. **Back up before modifying.** The tool does this automatically. Manual changes must copy both `appDefaultSettings.plist` and `<username>/backupReferenceFile.plist` to `~/.idrive-backup/backups/` with timestamps first.
412. **Only modify User Specified exclusions.** The other four maps (Default, Partial File, User Profile, Propagated) are system-managed and will be overwritten by iDrive.
423. **Preserve plist key quirks exactly.** Two keys have trailing spaces: `ShowHiddenFilesKey ` and `PowerAfterScheduledJob `. One has a typo: `NotifyFaiulreValue`. The editable exclusion map key is `User specified Exclusion` (lowercase 's'). Getting any of these wrong creates orphaned keys.
434. **Never modify** `IDLoginDetails.plist`, `Sync.plist`, `LDB_NEW/*.ib` databases, or anything under `Operation/` (root-owned daemon files).
445. **Exclusion values are always int(1).** Presence in the map means excluded. Never write a 0 value; delete the key instead.
456. **All User Specified paths must be absolute.** No tildes, no trailing slashes, no relative paths.
46
47## Five Exclusion Maps
48
49| Map | Plist Key | Count | Matching | Editable |
50| -------------- | -------------------------------- | --------- | -------------------------------------------- | ---------------- |
51| Default | `Default Exclusion` | ~24 | Exact/parent path | No |
52| Partial File | `Partial File Exclusion` | ~41 | **Substring** of full path OR exact filename | No |
53| User Profile | `User Profile Default Exclusion` | ~7 | Exact/parent path | No |
54| User Specified | `User specified Exclusion` | 100-2000+ | Exact/parent path | **Yes** |
55| Propagated | `Propagated Files Exclusion` | Usually 0 | Exact/parent path | No (web console) |
56
57**Partial File Exclusion is substring-based.** This is the trickiest map. A pattern like `.cache` matches both `/Users/foo/.cache` and `/path/to/download_cache`. Patterns are relative names (never absolute paths), including dotfile dirs (`.git`, `.venv`), filename patterns (`fp16.bin`, `safetensors`), and one with a separator (`pkg/mod`).
58
59## Key Gotchas
60
611. **Mixed boolean types.** Some settings use `<true/>`/`<false/>`, others use `<integer>0</integer>`/`<integer>1</integer>` for the same concept. The tool handles this; if modifying manually, match the existing type.
622. **Symlinks/firmlinks.** `~/Desktop` may resolve to `~/Library/Mobile Documents/com~apple~CloudDocs/Desktop` when iCloud Desktop is enabled. Always resolve with `os.path.realpath()` before comparing paths.
633. **CDP log filenames have a leading space.** iDrive bug: Continuous Data Protection logs in `SessionLogsNew/Backup/` are named ` MM-DD-YYYY-00-00-00` (note leading space). Account for this when globbing or reading.
644. **Some files are root-owned.** `Operation/Backup/IBThrottle`, `LDB_NEW/*.ib`, and some plists are written by the iDrive daemon as root. Reading is fine; writing requires elevated privileges you shouldn't use.
655. **The appDefaultSettings.plist can be large.** User Specified Exclusion alone can have 1,800+ entries (mostly auto-populated `~/Library/Containers/com.apple.*` paths). The plist file can exceed 170 KB.
66
67## Detailed Reference
68
69For detailed file format information, all 22+ scalar settings with types and descriptions, secondary file formats (logs, size files, sync config), or the complete directory layout, read `references/idrive-config.md`.