This skill should be used when the user asks to "add app to hints database", "research app settings", "find application preferences", "discover config paths", "macOS config discovery", "where does [app] store settings", or needs to understand where macOS applications store their settings and configuration files.
Discovers macOS application configuration paths for MacInventory's hints database. Triggers when users ask to add apps, research settings, or find where applications store preferences and config files.
/plugin marketplace add ksk-incom/MacInventory/plugin install macinventory@macinventory-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
examples/hints-entry-template.yamlreferences/common-paths.mdreferences/research-methodology.mdreferences/settings-patterns.mdscripts/test-security-patterns.pyscripts/validate-hints.pyThis skill provides knowledge and methodology for discovering where macOS applications store their configuration files, preferences, and settings. It enables effective contribution to MacInventory's hints database.
macOS applications store their configuration in predictable locations based on app type, development era, and sandboxing status. Understanding these patterns enables systematic discovery of config paths for any application.
MacInventory uses a three-tier approach to find application configurations:
This skill supports all three tiers by providing the knowledge needed to research and document application configurations.
| Location | Purpose | Typical Contents |
|---|---|---|
~/Library/Application Support/ | Modern app data | Databases, caches, configs |
~/Library/Preferences/ | Preference plists | .plist settings files |
~/.config/ | XDG standard | CLI tool configs |
~/Library/Containers/ | Sandboxed apps | App-specific storage |
| Location | Purpose | Example Apps |
|---|---|---|
~/.appname/ | Dotfile configs | CLI tools, dev tools |
~/Library/Group Containers/ | Shared app data | iCloud-enabled apps |
~/Library/Caches/ | Cache data | All apps (usually exclude) |
~/Library/Saved Application State/ | Window states | GUI apps |
For detailed information on each location and its typical contents, see references/common-paths.md.
To add an application to the hints database, create a YAML entry with this structure:
app-name:
bundle_id: com.developer.AppName # Required (null for CLI tools)
install_method: cask # Required: cask | formula | mas | dmg | system
configuration_files: # Paths relative to $HOME (no ~/ prefix)
- Library/Application Support/AppName/
- Library/Preferences/com.developer.AppName.plist
xdg_configuration_files: # Paths relative to ~/.config (optional)
- appname/config.yaml
exclude_files: # Files/dirs to skip during backup
- "*.log"
- "Cache/"
- "*.tmp"
notes: |
Optional notes about the app's config behavior,
special considerations, or discovery methodology.
osascript -e 'id of app "AppName"'. Use null for CLI tools.cask | formula | mas | dmg | system$HOME (no ~/ prefix). For files like ~/Library/...$XDG_CONFIG_HOME (default ~/.config/). For files like ~/.config/appname/IMPORTANT: Paths are RELATIVE - use Library/Application Support/App/ not ~/Library/Application Support/App/
For a complete template with all optional fields, see examples/hints-entry-template.yaml.
When researching where an app stores its configuration:
osascript -e 'id of app "AppName"'ls ~/Library/Application\ Support/ | grep -i appnamels ~/Library/Preferences/ | grep -i appnamels ~/.config/ | grep -i appnamels -la ~/ | grep -i appnameWhen standard locations don't yield results:
For detailed research methodology, see references/research-methodology.md.
Different types of apps follow different configuration patterns:
Modern macOS GUI apps typically use:
~/Library/Application Support/AppName/ for data and complex configs~/Library/Preferences/com.developer.AppName.plist for simple preferences~/Library/Containers/com.developer.AppName/Command-line tools commonly use:
~/.config/toolname/ (XDG standard)~/.toolname or ~/.toolnamerc (traditional dotfiles)~/.toolname/config.yaml or similarIDEs and dev tools often have complex configurations:
For comprehensive patterns by app category, see references/settings-patterns.md.
Not everything in an app's directory should be backed up. Exclude:
Cache/, Caches/, *.cache*.log, Logs/, log/*.tmp, temp/, Temp/GPUCache/, Code Cache/*.sqlite (unless settings), *.dbUpdates/, *.downloadBackups/, backup/MediaCache/, ImageCache/id_rsa, id_ed25519, etc.*.pem, *.key (non-config)Before adding an entry to the hints database:
# Validate hints database (use installed plugin path)
PLUGIN_PATH=~/.claude/plugins/macinventory@MacInventory
python3 $PLUGIN_PATH/skills/macos-discovery/scripts/validate-hints.py \
$PLUGIN_PATH/data/app-hints.yaml
This skill includes utility scripts in scripts/:
For detailed information beyond this overview:
references/common-paths.md - Complete guide to macOS config locationsreferences/settings-patterns.md - Config patterns by application typereferences/research-methodology.md - How to research unknown appsexamples/hints-entry-template.yaml - Complete template for new entriesThis skill supports:
Create employment contracts, offer letters, and HR policy documents following legal best practices. Use when drafting employment agreements, creating HR policies, or standardizing employment documentation.
Implement GDPR-compliant data handling with consent management, data subject rights, and privacy by design. Use when building systems that process EU personal data, implementing privacy controls, or conducting GDPR compliance reviews.