idrive-backup
Use this skill whenever the user wants you to manage, discuss or diagnose iDrive Backup configuration on macOS
What this skill does
# iDrive Backup for macOS iDrive stores all configuration at `~/Library/Application Support/IDriveforMac/`. The username is the iDrive account email (e.g. `[email protected]`), 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: ```bash 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 1. **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. 2. **Only modify User Specified exclusions.** The other four maps (Default, Partial File, User Profile, Propagated) are system-managed and will be overwritten by iDrive. 3. **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. 4. **Never modify** `IDLoginDetails.plist`, `Sync.plist`, `LDB_NEW/*.ib` databases, or anything under `Operation/` (root-owned daemon files). 5. **Exclusion values are always int(1).** Presence in the map means excluded. Never write a 0 value; delete the key instead. 6. **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 1. **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. 2. **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. 3. **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. 4. **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. 5. **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`.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.