Spotlight Search
/install spotlight-search
Spotlight Search
Overview
Use mdfind first for indexed search, mdls for metadata inspection, and mdutil only when diagnosing indexing issues. If Spotlight misses a known file, use the bundled fallback script instead of hand-rolling a find command every time.
Quick Start
Preferred flow:
- Use
mdfindfor normal search. - Use
mdlswhen the task is about metadata, not discovery. - Use
./scripts/spotlight_search.shwhen Spotlight indexing is incomplete or results are unexpectedly empty. - Treat the fallback script as a filename/path matcher, not a general shell helper.
- Use
mdutilonly to inspect indexing, and only suggest re-indexing when the user explicitly wants that system-level change.
# Find files containing "invoice" in name or content
mdfind "invoice"
# Find PDFs modified today
mdfind 'kind:pdf AND kMDItemContentModificationDate >= $time.today'
# Find applications whose name contains "chrome"
mdfind 'kMDItemContentType == com.apple.application-bundle && kMDItemFSName == "*chrome*"cd'
# Search only within ~/Documents
mdfind -onlyin ~/Documents "kind:pdf"
# View metadata for a file
mdls /path/to/file
For a hybrid search that tries Spotlight first and falls back to find, use the bundled script:
./scripts/spotlight_search.sh "query"
./scripts/spotlight_search.sh -t pdf "report"
./scripts/spotlight_search.sh -d ~/Documents "meeting"
Core Capabilities
1. File Search
Spotlight indexes file contents and metadata, making it ideal for locating documents when you remember words inside them.
Common patterns:
- Simple keyword:
mdfind "quarterly report" - By file type:
mdfind "kind:pdf invoice" - By extension:
mdfind 'kMDItemFSName == "*.md"cd' - By date:
mdfind 'kMDItemContentModificationDate >= $time.yesterday' - By size:
mdfind 'kMDItemFSSize > 1000000'(files >1 MB)
When to use: You recall words from the file's content, need to filter by type/date, or want to search across all indexed volumes quickly.
2. Application Search
Spotlight knows about installed applications (.app bundles) and can find them by name or bundle identifier.
Examples:
# All applications
mdfind 'kMDItemContentType == com.apple.application-bundle'
# Applications containing "visual" in name
mdfind 'kMDItemContentType == com.apple.application-bundle && kMDItemFSName == "*visual*"cd'
When to use: You need to locate an installed app, verify its presence, or get its bundle path.
3. Metadata Inspection
Use mdls to view the rich metadata Spotlight stores for any file.
# All metadata
mdls /path/to/file
# Specific attribute
mdls -name kMDItemKind /path/to/file
Common attributes: kMDItemKind, kMDItemContentType, kMDItemAuthors, kMDItemContentCreationDate, kMDItemPixelHeight, kMDItemDurationSeconds.
When to use: You need to check file properties (creation date, dimensions, author) without opening the file.
4. Hybrid Search (Fallback)
Spotlight indexing may be incomplete (excluded directories, recent files not yet indexed). The bundled script scripts/spotlight_search.sh provides a hybrid approach:
- Attempts Spotlight search via
mdfind - If no results, falls back to
findwith name‑based matching - Uses shell argument arrays instead of
eval, so the query is passed as data rather than executable shell text - Supports filtering by kind (
pdf,image,application, etc.)
Usage:
./scripts/spotlight_search.sh "query"
./scripts/spotlight_search.sh -t pdf "report"
./scripts/spotlight_search.sh -d ~/Documents -l 10 "draft"
When to use: You want maximum recall, or Spotlight is returning empty results for known files.
Reference Materials
For detailed query syntax, operator reference, and advanced examples, see:
- mdfind Query Reference – Comprehensive guide to
mdfindsyntax, attribute filters, date comparisons, and practical examples.
Load this reference when you need to construct complex queries or understand Spotlight's capabilities.
Workflow Guidance
Choosing the Right Tool
| Scenario | Recommended Tool | Example |
|---|---|---|
| "Find files containing 'budget'" | mdfind "budget" |
Content‑aware search |
| "Find all PDFs modified this week" | mdfind 'kind:pdf AND kMDItemContentModificationDate >= $time.this_week' |
Metadata‑filtered search |
| "Find the Chrome app" | mdfind 'kMDItemContentType == com.apple.application-bundle && kMDItemFSName == "*chrome*"cd' |
Application search |
| "Search only in Downloads folder" | mdfind -onlyin ~/Downloads "kind:image" |
Scoped search |
| "Check when a file was created" | mdls -name kMDItemContentCreationDate /path/to/file |
Metadata inspection |
| "Spotlight returns nothing but I know the file exists" | ./scripts/spotlight_search.sh "filename" |
Hybrid fallback |
Troubleshooting
No results for known files?
- Check indexing status:
mdutil -s / - Ensure the directory is indexed (Spotlight excludes some system and Library folders)
- Re-index only with explicit user approval because it is a privileged, system-wide action:
sudo mdutil -E /
Query syntax errors?
- Enclose queries containing spaces or special characters in single quotes.
- Use
cdafter==for case‑ and diacritic‑insensitive matching:kMDItemFSName == "*.pdf"cd - Combine filters with
AND/ORand parentheses.
Slow performance?
- Limit results with
-limit N - Restrict search scope with
-onlyin
Notes
- Spotlight indexing is not real‑time; newly created files may take minutes to appear.
- Some directories (e.g.,
~/Library, system folders) may be excluded from indexing. mdfindsearches all indexed volumes by default; use-onlyinto constrain.- The hybrid script requires
find(always present) and optionallyfd(faster).
See Also
man mdfindman mdlsman mdutil- Apple's Uniform Type Identifier reference: https://developer.apple.com/documentation/uniformtypeidentifiers
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install spotlight-search - After installation, invoke the skill by name or use
/spotlight-search - Provide required inputs per the skill's parameter spec and get structured output
What is Spotlight Search?
Search files, apps, and metadata on macOS using Spotlight CLI tools (`mdfind`, `mdls`, `mdutil`) with a fallback script for cases where indexing is incomplet... It is an AI Agent Skill for Claude Code / OpenClaw, with 138 downloads so far.
How do I install Spotlight Search?
Run "/install spotlight-search" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Spotlight Search free?
Yes, Spotlight Search is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Spotlight Search support?
Spotlight Search is cross-platform and runs anywhere OpenClaw / Claude Code is available (darwin).
Who created Spotlight Search?
It is built and maintained by Mozi Arasaka (@mozi1924); the current version is v0.1.2.