[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPF5V6NWZVZSX233XWG5HG":3,"skill-same:01M6CPF5V6NWZVZSX233XWG5HG":103},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":70,"ownerHtmlUrl":71,"ownerBlogUrl":72,"ownerDescription":73,"updatedAt":74,"install":75,"resources":87},"01M6CPF5V6NWZVZSX233XWG5HG","notes_attach_image",null,"Attach an image file to a Notes note. Notes' AppleScript\ndictionary does NOT support `make new attachment` for image files,\nso this skill uses the clipboard-paste path:\n\n1. Read the image into the system pasteboard via `osascript`'s\n   `(read POSIX file \"X\" as JPEG picture)` coercion (works for\n   JPEG \u002F PNG \u002F TIFF — checks file extension).\n2. Activate Notes, select the target note, focus the body.\n3. Move cursor to end of body, then Cmd+V — Notes pastes a\n   pasteboard image as an attachment in the note.\n\nThis is more robust than the Edit-menu \"Attach File\" UI flow,\nwhich opens a file picker that's brittle to AX-walk.","LocalKinAI\u002Fkinclaw","LocalKinAI","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F228881863?v=4","01M6CPDM368JVRW78EPV2NDABD","01M6CPDM7CKTKCXE8JD7K3658Q",9,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fnotes_attach_image\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"notes attach image","notes","attach","image","edit","back","activate","show","files","Echo","clipboard","ok","read","command","select","jj","text","SET","code","support","2026-11-10 10:12:30",false,"---\nname: notes_attach_image\ndescription: |\n  Attach an image file to a Notes note. Notes' AppleScript\n  dictionary does NOT support `make new attachment` for image files,\n  so this skill uses the clipboard-paste path:\n\n  1. Read the image into the system pasteboard via `osascript`'s\n     `(read POSIX file \"X\" as JPEG picture)` coercion (works for\n     JPEG \u002F PNG \u002F TIFF — checks file extension).\n  2. Activate Notes, select the target note, focus the body.\n  3. Move cursor to end of body, then Cmd+V — Notes pastes a\n     pasteboard image as an attachment in the note.\n\n  This is more robust than the Edit-menu \"Attach File\" UI flow,\n  which opens a file picker that's brittle to AX-walk.\ncommand:\n  - sh\n  - -c\n  - |\n    NOTE=\"$1\"; IMG=\"$2\"\n    [ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n    [ -z \"$IMG\" ] && { echo \"image path required\" >&2; exit 1; }\n    [ ! -f \"$IMG\" ] && { echo \"image file not found: $IMG\" >&2; exit 1; }\n\n    # Detect type by extension for AppleScript pasteboard coercion\n    case \"${IMG##*.}\" in\n      [Jj][Pp][Gg]|[Jj][Pp][Ee][Gg]) AS_TYPE=\"JPEG picture\" ;;\n      [Pp][Nn][Gg])                  AS_TYPE=\"«class PNGf»\" ;;\n      [Tt][Ii][Ff]|[Tt][Ii][Ff][Ff]) AS_TYPE=\"TIFF picture\" ;;\n      [Hh][Ee][Ii][Cc])              AS_TYPE=\"«class heic»\" ;;\n      *)                             AS_TYPE=\"«class furl»\" ;;  # fall back to file URL\n    esac\n\n    # Step 1: load image into clipboard\n    LOAD_RESULT=\"$(osascript 2>&1 \u003C\u003CAPPLE\n    try\n        set the clipboard to (read POSIX file \"$IMG\" as $AS_TYPE)\n        return \"loaded\"\n    on error e\n        try\n            -- Fallback: just put the file:\u002F\u002F URL on clipboard\n            set the clipboard to POSIX file \"$IMG\"\n            return \"loaded_as_file_url\"\n        on error e2\n            return \"ERR_CLIPBOARD: \" & e2\n        end try\n    end try\n    APPLE\n    )\"\n    if [[ \"$LOAD_RESULT\" == ERR* ]]; then\n      echo \"$LOAD_RESULT\" >&2\n      exit 1\n    fi\n\n    # Step 2: paste into Notes\n    osascript 2>&1 \u003C\u003CAPPLE\n    tell application \"Notes\"\n        activate\n        try\n            show (first note whose name = \"$NOTE\")\n        on error\n            return \"ERR: note not found\"\n        end try\n    end tell\n    delay 0.8\n\n    tell application \"System Events\"\n        tell process \"Notes\"\n            try\n                set mainWin to window 1\n                try\n                    set bodyArea to text area 1 of scroll area 1 of group 1 of splitter group 1 of mainWin\n                    perform action \"AXFocus\" of bodyArea\n                end try\n            end try\n        end tell\n        delay 0.3\n        -- Move to end of body\n        key code 125 using {command down}\n        delay 0.1\n        keystroke return\n        delay 0.1\n        -- Paste image\n        keystroke \"v\" using {command down}\n        delay 0.8\n    end tell\n    return \"ok: pasted (mode: $LOAD_RESULT)\"\n    APPLE\n  - \"_\"\nargs:\n  - \"{{note}}\"\n  - \"{{image}}\"\nschema:\n  note:\n    type: string\n    description: Exact note title\n    required: true\n  image:\n    type: string\n    description: Absolute POSIX path to JPEG \u002F PNG \u002F TIFF \u002F HEIC image\n    required: true\ntimeout: 20\n---\n\n# notes_attach_image — paste an image as a Notes attachment\n\nNotes attachments via AppleScript are not supported in modern\nmacOS; the canonical path is via the clipboard. This skill loads\nthe image into the pasteboard with the correct image-type coercion,\nthen pastes into the focused note body — Notes recognizes the\npasteboard image and stores it as a real attachment.\n\n## Examples\n\n```\nnotes_attach_image note=\"KinBench Image 171\" image=\"\u002FUsers\u002Fme\u002FPictures\u002Fcat.jpg\"\n  → ok: pasted (mode: loaded)\n```\n","# notes_attach_image — paste an image as a Notes attachment\n\nNotes attachments via AppleScript are not supported in modern\nmacOS; the canonical path is via the clipboard. This skill loads\nthe image into the pasteboard with the correct image-type coercion,\nthen pastes into the focused note body — Notes recognizes the\npasteboard image and stores it as a real attachment.\n\n## Examples\n\n```\nnotes_attach_image note=\"KinBench Image 171\" image=\"\u002FUsers\u002Fme\u002FPictures\u002Fcat.jpg\"\n  → ok: pasted (mode: loaded)\n```\n",{"args":48,"name":5,"schema":51,"command":58,"timeout":63,"description":64},[49,50],"{{note}}","{{image}}",{"note":52,"image":56},{"type":53,"required":54,"description":55},"string",true,"Exact note title",{"type":53,"required":54,"description":57},"Absolute POSIX path to JPEG \u002F PNG \u002F TIFF \u002F HEIC image",[59,60,61,62],"sh","-c","NOTE=\"$1\"; IMG=\"$2\"\n[ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n[ -z \"$IMG\" ] && { echo \"image path required\" >&2; exit 1; }\n[ ! -f \"$IMG\" ] && { echo \"image file not found: $IMG\" >&2; exit 1; }\n\n# Detect type by extension for AppleScript pasteboard coercion\ncase \"${IMG##*.}\" in\n  [Jj][Pp][Gg]|[Jj][Pp][Ee][Gg]) AS_TYPE=\"JPEG picture\" ;;\n  [Pp][Nn][Gg])                  AS_TYPE=\"«class PNGf»\" ;;\n  [Tt][Ii][Ff]|[Tt][Ii][Ff][Ff]) AS_TYPE=\"TIFF picture\" ;;\n  [Hh][Ee][Ii][Cc])              AS_TYPE=\"«class heic»\" ;;\n  *)                             AS_TYPE=\"«class furl»\" ;;  # fall back to file URL\nesac\n\n# Step 1: load image into clipboard\nLOAD_RESULT=\"$(osascript 2>&1 \u003C\u003CAPPLE\ntry\n    set the clipboard to (read POSIX file \"$IMG\" as $AS_TYPE)\n    return \"loaded\"\non error e\n    try\n        -- Fallback: just put the file:\u002F\u002F URL on clipboard\n        set the clipboard to POSIX file \"$IMG\"\n        return \"loaded_as_file_url\"\n    on error e2\n        return \"ERR_CLIPBOARD: \" & e2\n    end try\nend try\nAPPLE\n)\"\nif [[ \"$LOAD_RESULT\" == ERR* ]]; then\n  echo \"$LOAD_RESULT\" >&2\n  exit 1\nfi\n\n# Step 2: paste into Notes\nosascript 2>&1 \u003C\u003CAPPLE\ntell application \"Notes\"\n    activate\n    try\n        show (first note whose name = \"$NOTE\")\n    on error\n        return \"ERR: note not found\"\n    end try\nend tell\ndelay 0.8\n\ntell application \"System Events\"\n    tell process \"Notes\"\n        try\n            set mainWin to window 1\n            try\n                set bodyArea to text area 1 of scroll area 1 of group 1 of splitter group 1 of mainWin\n                perform action \"AXFocus\" of bodyArea\n            end try\n        end try\n    end tell\n    delay 0.3\n    -- Move to end of body\n    key code 125 using {command down}\n    delay 0.1\n    keystroke return\n    delay 0.1\n    -- Paste image\n    keystroke \"v\" using {command down}\n    delay 0.8\nend tell\nreturn \"ok: pasted (mode: $LOAD_RESULT)\"\nAPPLE\n","_",20,"Attach an image file to a Notes note. Notes' AppleScript\ndictionary does NOT support `make new attachment` for image files,\nso this skill uses the clipboard-paste path:\n\n1. Read the image into the system pasteboard via `osascript`'s\n   `(read POSIX file \"X\" as JPEG picture)` coercion (works for\n   JPEG \u002F PNG \u002F TIFF — checks file extension).\n2. Activate Notes, select the target note, focus the body.\n3. Move cursor to end of body, then Cmd+V — Notes pastes a\n   pasteboard image as an attachment in the note.\n\nThis is more robust than the Edit-menu \"Attach File\" UI flow,\nwhich opens a file picker that's brittle to AX-walk.\n","main","d1b92d10cddb779854af342bea74d0b6c46788e2","skills\u002Fnotes_attach_image",3,"https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw","https:\u002F\u002Fwww.localkin.app\u002Fkinclaw","https:\u002F\u002Fgithub.com\u002FLocalKinAI","localkin.ai","Faith and Chinese medicine at localkin.ai · the LocalKin agent platform at localkin.dev · open-source tools (kinfer, KinClaw, …) at localkin.app","2026-11-01 12:25:06",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":54},[77,80,83],{"tool":78,"command":79},"npx","npx skills add LocalKinAI\u002Fkinclaw --skill notes_attach_image",{"tool":81,"command":82},"bunx","bunx skills add LocalKinAI\u002Fkinclaw --skill notes_attach_image",{"tool":84,"command":85},"pnpm","pnpm dlx skills add LocalKinAI\u002Fkinclaw --skill notes_attach_image","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fnotes_attach_image\u002FSKILL.md",[88,93,99],{"path":89,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"LICENSE","许可证",1063,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-submit-an-atomic-bundle-to-a-relay\u002FLICENSE",{"path":94,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":97,"sourceHtmlUrl":98},"SOURCE.md","REFERENCE","参考文档",360,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-submit-an-atomic-bundle-to-a-relay\u002FSOURCE.md",{"path":100,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":101,"sourceHtmlUrl":102},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-submit-an-atomic-bundle-to-a-relay\u002FTRUST.auto.yaml",[104,135,150,175,185,196],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":119,"publishedAt":43},"01M6CPGNC9S31FTGMV90NZ0EN9","web","Universal web tool — fetches and interacts with web pages through\nreal Chromium (Playwright). Renders JavaScript, follows redirects,\nhandles cookies, bypasses many anti-scrape stubs that block plain\n`web_fetch`. Each call launches a fresh browser, executes the\nrequested flow, closes. ~2-3s cold start; no persistent state.\n\nUse INSTEAD of `web_fetch` when:\n  - Target is a JS-heavy SPA (prices via XHR, lazy content)\n  - `web_fetch` returned an anti-scrape placeholder (Zhihu's\n    \"click here\" stub, JD's chrome-only HTML)\n  - You need to interact (click, fill input) before extracting\n\nCommon patterns:\n  fetch rendered text:           url=X\n  wait for content then read:    url=X wait_for=\".price\"\n  extract specific element:      url=X selector=\".product-list\"\n  click and read result:         url=X click=\".search-button\"\n  fill form, then read:          url=X click=\"input[name=q]\" type_text=\"kinclaw\"\n  fill + Enter (React forms):    url=X click=\"input\" type_text=\"hi\" press_enter=true wait_for=\".reply\"\n  screenshot the page:           url=X screenshot=true (returns image:\u002F\u002F marker)\n  run JS and get result:         url=X js=\"document.title\"\n\nFirst-time setup (one-time per machine, ~500MB Chromium download):\n  pip install playwright\n  playwright install chromium","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fweb\u002FSKILL.md",[110,113,116],{"categoryNo":111,"categoryName":112,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":117,"categoryName":118,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[106,26,120,121,31,122,35,39,123,124,125,126,127,128,129,130,131,132,133,134],"search","forms","log","wait for","how","scrape","start","PDF","run","generate","placeholder","change","react","css","directory",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":43},"01M6CPGJTGF7P8QS3HXPCZE3KV","weather","Current conditions plus a three-day forecast (today \u002F tomorrow \u002F day\nafter) for a place, in metric, from wttr.in. No API key. Use this for\nany weather question — including \"明天\" and \"后天\" — before reaching\nfor web search.","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fweather\u002FSKILL.md",[],[137,120,142,143,144,145,146,147,148,149,106],"three","location","use","question","python3","web search","api","forecast",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":160,"publishedAt":43},"01M6CPGDR0W8FR0WMBBJ2282GM","tts","Synthesize speech from text and play it through the macOS speakers.\nTalks to a local LocalKin Service Audio Server (default :8001 \u002F Kokoro).\nWhen `record` is running with audio=true, the spoken audio is\ncaptured into the recording — use this in place of `shell say` for\nhigh-quality multilingual narration in demo videos. Set the\nTTS_ENDPOINT env var to point at a different server.","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftts\u002FSKILL.md",[156,157],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":158,"categoryName":159,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[152,161,28,162,163,164,32,165,166,41,167,168,39,169,170,40,171,172,173,174],"next","chinese","multilingual","default","payload","pick","auto","model","Audio","Video","data","server","only","macos",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":43},"01M6CPGAM9K2VN0MVYD4CMC92E","translate","Translate text between languages using the system's translate command","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftranslate\u002FSKILL.md",[],[177,162,182,183,32,36,39,184],"spanish","language","system",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":194,"publishedAt":43},"01M6CPG8DWEY0GWCFDGTTBWA2Q","summarize","Summarize a file's contents into key bullet points","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fsummarize\u002FSKILL.md",[191],{"categoryNo":192,"categoryName":193,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[187,195],"file",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":203,"publishedAt":43},"01M6CPG48P3AYKRREAGYSGT944","stt","Transcribe an audio file (wav\u002Fmp3\u002Fmp4\u002Fm4a) into text via a local\nLocalKin Service Audio Server (default :8000 \u002F SenseVoice). Pair\nwith `record action=start mic=true` to turn a recorded mic track\ninto text. Set STT_ENDPOINT env var to point at a different server.","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fstt\u002FSKILL.md",[202],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[198,39,28,204,164,32,205,167,206,207,208,209,169,210,40,126,172,211,41,212],"do","en","pair","just","returns","mp4","endpoint","transcribe","go"]