--- name: miyo-search description: Semantic (meaning-based) search over the user's Obsidian vault via the local Miyo app. For any vault-search intent, use it when builtin grep search is too slow or doesn't surface enough relevant notes, or when the user explicitly asks for Miyo search. Needs the Miyo desktop app installed and running. metadata: copilot-enabled-agents: claude, codex, opencode copilot-builtin-version: "2" --- # Miyo vault search Search the user's indexed Obsidian vault through Miyo, the user's own companion app for semantic search over their notes. It finds relevant notes by meaning (not just filename). Searches go only to the user's own Miyo service — the local app by default, or the remote Miyo server they configured in settings — never a third-party API, and no API key. When to use it: for any vault-search intent, reach for Miyo when your builtin `grep` search is too slow or doesn't surface enough relevant notes, or when the user explicitly asks for Miyo search. ## How to run Find the absolute path to this SKILL.md file on disk, then run the script next to it that matches the operating system, passing the user's full question as the query. No extra runtime is needed — `sh` (macOS/Linux) and `cmd` (Windows) are always present. On macOS or Linux: ```bash sh "/absolute/path/to/this/skill/directory/miyo-search.sh" "" ``` On Windows, run the `.cmd` wrapper. In PowerShell you must prefix it with the call operator `&` (PowerShell treats a quoted path on its own as a string and won't run it); from cmd, run the quoted path without the `&`: ```powershell & "/absolute/path/to/this/skill/directory/miyo-search.cmd" "" ``` The script locates the Miyo binary itself and prints JSON to stdout — you do not need to know where Miyo is installed or which shell you are in. Run the script as your single search step; do not fall back to other search tools unless it reports that Miyo is unavailable. Read the JSON straight from stdout; do not pipe it through other tools (no `jq`, no `|`). ## Reading the results The script prints `{ "results": [ { "path": ..., "content": ... } ], "count": N }`. Cite the `path` of any note you use so the user can open it. ## If it reports a problem The script exits with a clear message when Miyo can't be used: - **Not installed** (CLI not found): the Miyo desktop app isn't installed on this machine. Tell the user to install and open Miyo, then try again. Do not retry in a loop. - **Not running** (search failed / can't reach the service): the app is installed but not running. Tell the user to open Miyo, then continue without vault search if they can't.