[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPFQZG0B4GHCWD0GB6H9FF":3,"skill-same:01M6CPFQZG0B4GHCWD0GB6H9FF":99},{"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":17,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":63,"ownerDescription":64,"updatedAt":65,"install":66,"resources":78},"01M6CPFQZG0B4GHCWD0GB6H9FF","notes_move_to_folder",null,"Move a note (by exact title match) into a Notes folder (by exact\nfolder name). Pure AppleScript — no UI scripting, no flakiness.\nThe folder must already exist; create it with osascript or via the\nNotes UI before calling this skill.\n\nWhy a skill (not raw shell osascript): models routinely emit the\nwrong AppleScript syntax for `move`, hit \"Can't make ... into type\nspecifier\" errors, or move into the wrong account's folder. This\nskill encapsulates the canonical pattern + cross-account search.","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_move_to_folder\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"notes","notes move to folder","create","search","ui","fs","SET","scripting","shell","why","syntax","ms","Echo","models","exit","calling","2026-11-10 10:12:30",false,"---\nname: notes_move_to_folder\ndescription: |\n  Move a note (by exact title match) into a Notes folder (by exact\n  folder name). Pure AppleScript — no UI scripting, no flakiness.\n  The folder must already exist; create it with osascript or via the\n  Notes UI before calling this skill.\n\n  Why a skill (not raw shell osascript): models routinely emit the\n  wrong AppleScript syntax for `move`, hit \"Can't make ... into type\n  specifier\" errors, or move into the wrong account's folder. This\n  skill encapsulates the canonical pattern + cross-account search.\ncommand:\n  - sh\n  - -c\n  - |\n    NOTE=\"$1\"; FOLDER=\"$2\"\n    [ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n    [ -z \"$FOLDER\" ] && { echo \"folder name required\" >&2; exit 1; }\n\n    osascript 2>&1 \u003C\u003CAPPLE\n    tell application \"Notes\"\n        set theNote to missing value\n        set targetFolder to missing value\n        repeat with acct in accounts\n            try\n                set ms to (every note of acct whose name = \"$NOTE\")\n                if (count of ms) > 0 then set theNote to item 1 of ms\n            end try\n            try\n                set fs to (every folder of acct whose name = \"$FOLDER\")\n                if (count of fs) > 0 then set targetFolder to item 1 of fs\n            end try\n        end repeat\n        if theNote is missing value then\n            return \"ERR: note '$NOTE' not found in any account\"\n        end if\n        if targetFolder is missing value then\n            return \"ERR: folder '$FOLDER' not found in any account\"\n        end if\n        move theNote to targetFolder\n        return \"moved '$NOTE' -> '$FOLDER'\"\n    end tell\n    APPLE\n  - \"_\"\nargs:\n  - \"{{note}}\"\n  - \"{{folder}}\"\nschema:\n  note:\n    type: string\n    description: Exact note title to move\n    required: true\n  folder:\n    type: string\n    description: Exact name of the destination folder\n    required: true\ntimeout: 30\n---\n\n# notes_move_to_folder — move a Notes note into a folder\n\nPure AppleScript wrapper for the `move \u003Cnote> to \u003Cfolder>` pattern,\nwith cross-account search so it works regardless of whether the note\nlives in iCloud, \"On My Mac\", or another account.\n\n## Examples\n\n```\nnotes_move_to_folder note=\"KinBench Move 176\" folder=\"kinbench-folder\"\n  → moved 'KinBench Move 176' -> 'kinbench-folder'\n```\n\nIf the note or folder is missing, returns a clear `ERR:` line — the\ncaller should create the folder first via osascript or skip the move.\n","# notes_move_to_folder — move a Notes note into a folder\n\nPure AppleScript wrapper for the `move \u003Cnote> to \u003Cfolder>` pattern,\nwith cross-account search so it works regardless of whether the note\nlives in iCloud, \"On My Mac\", or another account.\n\n## Examples\n\n```\nnotes_move_to_folder note=\"KinBench Move 176\" folder=\"kinbench-folder\"\n  → moved 'KinBench Move 176' -> 'kinbench-folder'\n```\n\nIf the note or folder is missing, returns a clear `ERR:` line — the\ncaller should create the folder first via osascript or skip the move.\n",{"args":39,"name":5,"schema":42,"command":49,"timeout":54,"description":55},[40,41],"{{note}}","{{folder}}",{"note":43,"folder":47},{"type":44,"required":45,"description":46},"string",true,"Exact note title to move",{"type":44,"required":45,"description":48},"Exact name of the destination folder",[50,51,52,53],"sh","-c","NOTE=\"$1\"; FOLDER=\"$2\"\n[ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n[ -z \"$FOLDER\" ] && { echo \"folder name required\" >&2; exit 1; }\n\nosascript 2>&1 \u003C\u003CAPPLE\ntell application \"Notes\"\n    set theNote to missing value\n    set targetFolder to missing value\n    repeat with acct in accounts\n        try\n            set ms to (every note of acct whose name = \"$NOTE\")\n            if (count of ms) > 0 then set theNote to item 1 of ms\n        end try\n        try\n            set fs to (every folder of acct whose name = \"$FOLDER\")\n            if (count of fs) > 0 then set targetFolder to item 1 of fs\n        end try\n    end repeat\n    if theNote is missing value then\n        return \"ERR: note '$NOTE' not found in any account\"\n    end if\n    if targetFolder is missing value then\n        return \"ERR: folder '$FOLDER' not found in any account\"\n    end if\n    move theNote to targetFolder\n    return \"moved '$NOTE' -> '$FOLDER'\"\nend tell\nAPPLE\n","_",30,"Move a note (by exact title match) into a Notes folder (by exact\nfolder name). Pure AppleScript — no UI scripting, no flakiness.\nThe folder must already exist; create it with osascript or via the\nNotes UI before calling this skill.\n\nWhy a skill (not raw shell osascript): models routinely emit the\nwrong AppleScript syntax for `move`, hit \"Can't make ... into type\nspecifier\" errors, or move into the wrong account's folder. This\nskill encapsulates the canonical pattern + cross-account search.\n","main","d1b92d10cddb779854af342bea74d0b6c46788e2","skills\u002Fnotes_move_to_folder",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":67,"prompt":77,"zipAvailable":45},[68,71,74],{"tool":69,"command":70},"npx","npx skills add LocalKinAI\u002Fkinclaw --skill notes_move_to_folder",{"tool":72,"command":73},"bunx","bunx skills add LocalKinAI\u002Fkinclaw --skill notes_move_to_folder",{"tool":75,"command":76},"pnpm","pnpm dlx skills add LocalKinAI\u002Fkinclaw --skill notes_move_to_folder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fnotes_move_to_folder\u002FSKILL.md",[79,85,89,95],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fcomponents_guide.md","REFERENCE","参考文档",9235,"https:\u002F\u002Fgithub.com\u002FopenJiuwen-ai\u002Fagent-core-java\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fworkflow-guide\u002Freferences\u002Fcomponents_guide.md",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fkey_concepts.md",7951,"https:\u002F\u002Fgithub.com\u002FopenJiuwen-ai\u002Fagent-core-java\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fworkflow-guide\u002Freferences\u002Fkey_concepts.md",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002FMinimalWorkflowExample.java","SCRIPT","脚本",8782,"https:\u002F\u002Fgithub.com\u002FopenJiuwen-ai\u002Fagent-core-java\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fworkflow-guide\u002Freferences\u002FMinimalWorkflowExample.java",{"path":96,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fworkflow_cases.md",16110,"https:\u002F\u002Fgithub.com\u002FopenJiuwen-ai\u002Fagent-core-java\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fworkflow-guide\u002Freferences\u002Fworkflow_cases.md",[100,136,151,180,191,202],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":117,"publishedAt":34},"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",[106,111,114],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":115,"categoryName":116,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000009","前端开发",[102,118,21,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135],"image","forms","files","log","read","text","wait for","how","scrape","start","PDF","run","generate","placeholder","change","react","css","directory",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":34},"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",[],[138,21,143,144,145,146,147,148,149,150,102],"three","location","use","question","python3","web search","api","forecast",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":163,"publishedAt":34},"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",[157,160],{"categoryNo":158,"categoryName":159,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":161,"categoryName":162,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000023","Skill与智能体开发",[153,164,165,166,167,168,30,169,170,171,172,173,123,174,175,24,176,177,178,179],"next","back","chinese","multilingual","default","payload","pick","code","auto","model","Audio","Video","data","server","only","macos",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":186,"publishedAt":34},"01M6CPGAM9K2VN0MVYD4CMC92E","translate","Translate text between languages using the system's translate command","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftranslate\u002FSKILL.md",[],[182,166,187,188,30,189,123,190],"spanish","language","command","system",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":200,"publishedAt":34},"01M6CPG8DWEY0GWCFDGTTBWA2Q","summarize","Summarize a file's contents into key bullet points","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fsummarize\u002FSKILL.md",[197],{"categoryNo":198,"categoryName":199,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000021","资料检索与研究",[193,201],"file",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":209,"publishedAt":34},"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",[208],{"categoryNo":158,"categoryName":159,"taxonomyType":109,"taxonomyTypeDesc":110},[204,123,165,210,168,30,211,172,212,213,214,215,174,216,24,127,177,217,171,218],"do","en","pair","just","returns","mp4","endpoint","transcribe","go"]