[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CASA9EEVF1FEFYQTHBWGZN":3,"skill-same:01M6CASA9EEVF1FEFYQTHBWGZN":91},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M6CASA9EEVF1FEFYQTHBWGZN","findmy",null,"Track Apple devices\u002FAirTags via FindMy.app on macOS.","adnichols\u002Fai-configs","adnichols","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F493746?v=4","01M6C33VRY9WF6XWYPT1AFA7JJ","Aaron Nichols","01M6C33VWTNKGRM92E9G643V4W",5,"MIT","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fapple\u002Ffindmy\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28],"macos","devices","hermes","hermes agent","tracking","2026-11-10 10:12:30",false,"---\nname: findmy\ndescription: \"Track Apple devices\u002FAirTags via FindMy.app on macOS.\"\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\nplatforms: [macos]\nmetadata:\n  hermes:\n    tags: [FindMy, AirTag, location, tracking, macOS, Apple]\n---\n\n# Find My (Apple)\n\nTrack Apple devices and AirTags via the FindMy.app on macOS. Since Apple doesn't\nprovide a CLI for FindMy, this skill uses AppleScript to open the app and\nscreen capture to read device locations.\n\n## Prerequisites\n\n- **macOS** with Find My app and iCloud signed in\n- Devices\u002FAirTags already registered in Find My\n- Screen Recording permission for terminal (System Settings → Privacy → Screen Recording)\n- **Optional but recommended**: Install `peekaboo` for better UI automation:\n  `brew install steipete\u002Ftap\u002Fpeekaboo`\n\n## When to Use\n\n- User asks \"where is my [device\u002Fcat\u002Fkeys\u002Fbag]?\"\n- Tracking AirTag locations\n- Checking device locations (iPhone, iPad, Mac, AirPods)\n- Monitoring pet or item movement over time (AirTag patrol routes)\n\n## Method 1: AppleScript + Screenshot (Basic)\n\n### Open FindMy and Navigate\n\n```bash\n# Open Find My app\nosascript -e 'tell application \"FindMy\" to activate'\n\n# Wait for it to load\nsleep 3\n\n# Take a screenshot of the Find My window\nscreencapture -w -o ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy.png\n```\n\nThen use `vision_analyze` to read the screenshot:\n```\nvision_analyze(image_url=\"~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy.png\", question=\"What devices\u002Fitems are shown and what are their locations?\")\n```\n\n### Switch Between Tabs\n\n```bash\n# Switch to Devices tab\nosascript -e '\ntell application \"System Events\"\n    tell process \"FindMy\"\n        click button \"Devices\" of toolbar 1 of window 1\n    end tell\nend tell'\n\n# Switch to Items tab (AirTags)\nosascript -e '\ntell application \"System Events\"\n    tell process \"FindMy\"\n        click button \"Items\" of toolbar 1 of window 1\n    end tell\nend tell'\n```\n\n## Method 2: Peekaboo UI Automation (Recommended)\n\nIf `peekaboo` is installed, use it for more reliable UI interaction:\n\n```bash\n# Open Find My\nosascript -e 'tell application \"FindMy\" to activate'\nsleep 3\n\n# Capture and annotate the UI\npeekaboo see --app \"FindMy\" --annotate --path ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-ui.png\n\n# Click on a specific device\u002Fitem by element ID\npeekaboo click --on B3 --app \"FindMy\"\n\n# Capture the detail view\npeekaboo image --app \"FindMy\" --path ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-detail.png\n```\n\nThen analyze with vision:\n```\nvision_analyze(image_url=\"~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-detail.png\", question=\"What is the location shown for this device\u002Fitem? Include address and coordinates if visible.\")\n```\n\n## Workflow: Track AirTag Location Over Time\n\nFor monitoring an AirTag (e.g., tracking a cat's patrol route):\n\n```bash\n# 1. Open FindMy to Items tab\nosascript -e 'tell application \"FindMy\" to activate'\nsleep 3\n\n# 2. Click on the AirTag item (stay on page — AirTag only updates when page is open)\n\n# 3. Periodically capture location\nwhile true; do\n    screencapture -w -o ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-$(date +%H%M%S).png\n    sleep 300  # Every 5 minutes\ndone\n```\n\nAnalyze each screenshot with vision to extract coordinates, then compile a route.\n\n## Limitations\n\n- FindMy has **no CLI or API** — must use UI automation\n- AirTags only update location while the FindMy page is actively displayed\n- Location accuracy depends on nearby Apple devices in the FindMy network\n- Screen Recording permission required for screenshots\n- AppleScript UI automation may break across macOS versions\n\n## Rules\n\n1. Keep FindMy app in the foreground when tracking AirTags (updates stop when minimized)\n2. Use `vision_analyze` to read screenshot content — don't try to parse pixels\n3. For ongoing tracking, use a cronjob to periodically capture and log locations\n4. Respect privacy — only track devices\u002Fitems the user owns\n","# Find My (Apple)\n\nTrack Apple devices and AirTags via the FindMy.app on macOS. Since Apple doesn't\nprovide a CLI for FindMy, this skill uses AppleScript to open the app and\nscreen capture to read device locations.\n\n## Prerequisites\n\n- **macOS** with Find My app and iCloud signed in\n- Devices\u002FAirTags already registered in Find My\n- Screen Recording permission for terminal (System Settings → Privacy → Screen Recording)\n- **Optional but recommended**: Install `peekaboo` for better UI automation:\n  `brew install steipete\u002Ftap\u002Fpeekaboo`\n\n## When to Use\n\n- User asks \"where is my [device\u002Fcat\u002Fkeys\u002Fbag]?\"\n- Tracking AirTag locations\n- Checking device locations (iPhone, iPad, Mac, AirPods)\n- Monitoring pet or item movement over time (AirTag patrol routes)\n\n## Method 1: AppleScript + Screenshot (Basic)\n\n### Open FindMy and Navigate\n\n```bash\n# Open Find My app\nosascript -e 'tell application \"FindMy\" to activate'\n\n# Wait for it to load\nsleep 3\n\n# Take a screenshot of the Find My window\nscreencapture -w -o ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy.png\n```\n\nThen use `vision_analyze` to read the screenshot:\n```\nvision_analyze(image_url=\"~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy.png\", question=\"What devices\u002Fitems are shown and what are their locations?\")\n```\n\n### Switch Between Tabs\n\n```bash\n# Switch to Devices tab\nosascript -e '\ntell application \"System Events\"\n    tell process \"FindMy\"\n        click button \"Devices\" of toolbar 1 of window 1\n    end tell\nend tell'\n\n# Switch to Items tab (AirTags)\nosascript -e '\ntell application \"System Events\"\n    tell process \"FindMy\"\n        click button \"Items\" of toolbar 1 of window 1\n    end tell\nend tell'\n```\n\n## Method 2: Peekaboo UI Automation (Recommended)\n\nIf `peekaboo` is installed, use it for more reliable UI interaction:\n\n```bash\n# Open Find My\nosascript -e 'tell application \"FindMy\" to activate'\nsleep 3\n\n# Capture and annotate the UI\npeekaboo see --app \"FindMy\" --annotate --path ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-ui.png\n\n# Click on a specific device\u002Fitem by element ID\npeekaboo click --on B3 --app \"FindMy\"\n\n# Capture the detail view\npeekaboo image --app \"FindMy\" --path ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-detail.png\n```\n\nThen analyze with vision:\n```\nvision_analyze(image_url=\"~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-detail.png\", question=\"What is the location shown for this device\u002Fitem? Include address and coordinates if visible.\")\n```\n\n## Workflow: Track AirTag Location Over Time\n\nFor monitoring an AirTag (e.g., tracking a cat's patrol route):\n\n```bash\n# 1. Open FindMy to Items tab\nosascript -e 'tell application \"FindMy\" to activate'\nsleep 3\n\n# 2. Click on the AirTag item (stay on page — AirTag only updates when page is open)\n\n# 3. Periodically capture location\nwhile true; do\n    screencapture -w -o ~\u002F.hermes\u002Fcache\u002Fscratch\u002Ffindmy-$(date +%H%M%S).png\n    sleep 300  # Every 5 minutes\ndone\n```\n\nAnalyze each screenshot with vision to extract coordinates, then compile a route.\n\n## Limitations\n\n- FindMy has **no CLI or API** — must use UI automation\n- AirTags only update location while the FindMy page is actively displayed\n- Location accuracy depends on nearby Apple devices in the FindMy network\n- Screen Recording permission required for screenshots\n- AppleScript UI automation may break across macOS versions\n\n## Rules\n\n1. Keep FindMy app in the foreground when tracking AirTags (updates stop when minimized)\n2. Use `vision_analyze` to read screenshot content — don't try to parse pixels\n3. For ongoing tracking, use a cronjob to periodically capture and log locations\n4. Respect privacy — only track devices\u002Fitems the user owns\n",{"name":5,"author":34,"license":15,"version":35,"metadata":36,"platforms":44,"description":7},"Hermes Agent","1.0.0",{"hermes":37},{"tags":38},[39,40,41,28,42,43],"FindMy","AirTag","location","macOS","Apple",[24],"main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fskills\u002Fapple\u002Ffindmy",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add adnichols\u002Fai-configs --skill findmy",{"tool":58,"command":59},"bunx","bunx skills add adnichols\u002Fai-configs --skill findmy",{"tool":61,"command":62},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill findmy","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fapple\u002Ffindmy\u002FSKILL.md",true,[66,71,77,81,87],{"path":67,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"LICENSE","许可证",10770,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-canhelp\u002FLICENSE",{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"scripts\u002Ffetch-candid.sh","SCRIPT","脚本",358,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-canhelp\u002Fscripts\u002Ffetch-candid.sh",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"scripts\u002Fresolve-canister-id.sh",1095,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-canhelp\u002Fscripts\u002Fresolve-canister-id.sh",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"SOURCE.md","REFERENCE","参考文档",325,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-canhelp\u002FSOURCE.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"TRUST.auto.yaml",2270,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-canhelp\u002FTRUST.auto.yaml",[92,111,141,166,177,193],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":29},"01M6CB7RN791P5RRRCJWWC7DAR","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[99,100,101,102,103,104,105,27,26,106,107,108,109,110,24],"recovery","page","blocked page recovery","bot","fallback","use","fetch","Citations","waf","windows","research","linux",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":126,"publishedAt":29},"01M6CB7NQY2VVYCQJ1QBXACQF4","writing-plans","Use when creating or updating executable software plans. Keep plans as local files unless the user explicitly asks to register them in Doct.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[117,120,121],{"categoryNo":118,"categoryName":119,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":122,"categoryName":123,"taxonomyType":124,"taxonomyTypeDesc":125},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[127,128,129,130,131,132,133,134,135,136,137,138,104,139,27,26,140],"writing","writing plans","documentation","test","workflow","design","user","development","planning","files","implementation","html","ops","plan",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":156,"publishedAt":29},"01M6CB7JME246KZQHP73Z2STDF","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[147,150,153],{"categoryNo":148,"categoryName":149,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":151,"categoryName":152,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":154,"categoryName":155,"taxonomyType":124,"taxonomyTypeDesc":125},"01JBSEEDCAT000000000000037","律师与法务",[130,134,157,158,159,27,26,160,140,161,162,163,24,164,110,165,108],"test driven development","red-green-refactor","superpowers","quality","refactor","code","debugging","tdd","testing",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":29},"01M6CB7FQ407KQTD4Z9VAWKY54","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[172],{"categoryNo":151,"categoryName":152,"taxonomyType":21,"taxonomyTypeDesc":22},[163,174,134,159,27,26,175,140,176,108,130,110,24],"systematic debugging","troubleshooting","investigation",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":186,"publishedAt":29},"01M6CB7D57MK88HE5YPZHKH68Q","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[183],{"categoryNo":184,"categoryName":185,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[179,108,187,188,109,189,110,24,190,191,192,27,26,140,135],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":203,"publishedAt":29},"01M6CB7APAQ37YE5YE1MAAFT42","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[199,200],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":201,"categoryName":202,"taxonomyType":124,"taxonomyTypeDesc":125},"01JBSEEDCAT000000000000030","开发工程师",[204,205,162,206,27,26,207,140,161,208,209,210,134,108,130,110,211,24],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]