[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPG01319QD2Y0PRX2DGEMW":3,"skill-same:01M6CPG01319QD2Y0PRX2DGEMW":88},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":70,"ownerHtmlUrl":71,"ownerBlogUrl":72,"ownerDescription":73,"updatedAt":74,"install":75,"resources":87},"01M6CPG01319QD2Y0PRX2DGEMW","notes_table",null,"Insert a table into a Notes note. Notes' table feature is\ntriggered by Cmd+Opt+T while the body has focus; this skill\nselects the note, focuses the body, and fires the keystroke.\n\nDefault: a 2x2 table (Notes' default). To get larger, use the\n`rows` and `cols` args — the skill will Tab + Return as needed\nafter insertion to grow the table to the requested dimensions.","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_table\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"notes table","table","notes","use","dimensions","activate","show","exit","default","menu bar","Echo","ok","command","cmd","option","text","system","first","SET","code","2026-11-10 10:12:30",false,"---\nname: notes_table\ndescription: |\n  Insert a table into a Notes note. Notes' table feature is\n  triggered by Cmd+Opt+T while the body has focus; this skill\n  selects the note, focuses the body, and fires the keystroke.\n\n  Default: a 2x2 table (Notes' default). To get larger, use the\n  `rows` and `cols` args — the skill will Tab + Return as needed\n  after insertion to grow the table to the requested dimensions.\ncommand:\n  - sh\n  - -c\n  - |\n    NOTE=\"$1\"; ROWS=\"${2:-2}\"; COLS=\"${3:-2}\"\n    [ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n\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 so the table inserts after existing content\n        key code 125 using {command down}\n        delay 0.1\n        keystroke return\n        delay 0.1\n        -- Cmd+Opt+T inserts default 2-col 2-row table\n        keystroke \"t\" using {command down, option down}\n        delay 0.6\n    end tell\n\n    -- Grow rows: each Tab from last cell creates a new row\n    tell application \"System Events\"\n        set extraRows to ($ROWS - 2)\n        set extraCols to ($COLS - 2)\n        if extraCols > 0 then\n            -- Add columns via Format > Table > Add Column After\n            -- (no default keyboard shortcut; navigate menu)\n            try\n                tell process \"Notes\"\n                    repeat extraCols times\n                        click menu item \"Add Column After\" of menu of menu item \"Table\" of menu \"Format\" of menu bar 1\n                        delay 0.2\n                    end repeat\n                end tell\n            end try\n        end if\n        if extraRows > 0 then\n            -- Place cursor in last cell, then Tab from rightmost-bottom cell creates a new row\n            -- Simpler: Format menu approach\n            try\n                tell process \"Notes\"\n                    repeat extraRows times\n                        click menu item \"Add Row Below\" of menu of menu item \"Table\" of menu \"Format\" of menu bar 1\n                        delay 0.2\n                    end repeat\n                end tell\n            end try\n        end if\n    end tell\n    return \"ok: inserted $ROWS x $COLS table\"\n    APPLE\n  - \"_\"\nargs:\n  - \"{{note}}\"\n  - \"{{rows}}\"\n  - \"{{cols}}\"\nschema:\n  note:\n    type: string\n    description: Exact note title\n    required: true\n  rows:\n    type: number\n    description: Number of rows (default 2)\n    required: false\n    default: 2\n  cols:\n    type: number\n    description: Number of columns (default 2)\n    required: false\n    default: 2\ntimeout: 25\n---\n\n# notes_table — insert a table into a Notes note\n\nNotes' Cmd+Opt+T inserts a 2x2 table at the cursor. This skill\nfocuses the body, fires the shortcut, then optionally grows via\nFormat menu (\"Add Row Below\", \"Add Column After\").\n\n## Examples\n\n```\nnotes_table note=\"KinBench Table 172\"\n  → ok: inserted 2 x 2 table\n\nnotes_table note=\"KinBench Table 172\" rows=3 cols=3\n  → ok: inserted 3 x 3 table\n```\n","# notes_table — insert a table into a Notes note\n\nNotes' Cmd+Opt+T inserts a 2x2 table at the cursor. This skill\nfocuses the body, fires the shortcut, then optionally grows via\nFormat menu (\"Add Row Below\", \"Add Column After\").\n\n## Examples\n\n```\nnotes_table note=\"KinBench Table 172\"\n  → ok: inserted 2 x 2 table\n\nnotes_table note=\"KinBench Table 172\" rows=3 cols=3\n  → ok: inserted 3 x 3 table\n```\n",{"args":43,"name":5,"schema":47,"command":58,"timeout":63,"description":64},[44,45,46],"{{note}}","{{rows}}","{{cols}}",{"cols":48,"note":52,"rows":56},{"type":49,"default":50,"required":39,"description":51},"number",2,"Number of columns (default 2)",{"type":53,"required":54,"description":55},"string",true,"Exact note title",{"type":49,"default":50,"required":39,"description":57},"Number of rows (default 2)",[59,60,61,62],"sh","-c","NOTE=\"$1\"; ROWS=\"${2:-2}\"; COLS=\"${3:-2}\"\n[ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n\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 so the table inserts after existing content\n    key code 125 using {command down}\n    delay 0.1\n    keystroke return\n    delay 0.1\n    -- Cmd+Opt+T inserts default 2-col 2-row table\n    keystroke \"t\" using {command down, option down}\n    delay 0.6\nend tell\n\n-- Grow rows: each Tab from last cell creates a new row\ntell application \"System Events\"\n    set extraRows to ($ROWS - 2)\n    set extraCols to ($COLS - 2)\n    if extraCols > 0 then\n        -- Add columns via Format > Table > Add Column After\n        -- (no default keyboard shortcut; navigate menu)\n        try\n            tell process \"Notes\"\n                repeat extraCols times\n                    click menu item \"Add Column After\" of menu of menu item \"Table\" of menu \"Format\" of menu bar 1\n                    delay 0.2\n                end repeat\n            end tell\n        end try\n    end if\n    if extraRows > 0 then\n        -- Place cursor in last cell, then Tab from rightmost-bottom cell creates a new row\n        -- Simpler: Format menu approach\n        try\n            tell process \"Notes\"\n                repeat extraRows times\n                    click menu item \"Add Row Below\" of menu of menu item \"Table\" of menu \"Format\" of menu bar 1\n                    delay 0.2\n                end repeat\n            end tell\n        end try\n    end if\nend tell\nreturn \"ok: inserted $ROWS x $COLS table\"\nAPPLE\n","_",25,"Insert a table into a Notes note. Notes' table feature is\ntriggered by Cmd+Opt+T while the body has focus; this skill\nselects the note, focuses the body, and fires the keystroke.\n\nDefault: a 2x2 table (Notes' default). To get larger, use the\n`rows` and `cols` args — the skill will Tab + Return as needed\nafter insertion to grow the table to the requested dimensions.\n","main","d1b92d10cddb779854af342bea74d0b6c46788e2","skills\u002Fnotes_table",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_table",{"tool":81,"command":82},"bunx","bunx skills add LocalKinAI\u002Fkinclaw --skill notes_table",{"tool":84,"command":85},"pnpm","pnpm dlx skills add LocalKinAI\u002Fkinclaw --skill notes_table","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fnotes_table\u002FSKILL.md",[],[89,125,139,166,175,186],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":106,"publishedAt":38},"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",[95,100,103],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":101,"categoryName":102,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":104,"categoryName":105,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000009","前端开发",[91,107,108,109,110,111,112,33,113,114,115,116,117,118,119,120,121,122,123,124],"image","search","forms","files","log","read","wait for","how","scrape","start","PDF","run","generate","placeholder","change","react","css","directory",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":38},"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",[],[127,108,132,133,21,134,135,136,137,138,91],"three","location","question","python3","web search","api","forecast",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":151,"publishedAt":38},"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",[145,148],{"categoryNo":146,"categoryName":147,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":149,"categoryName":150,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000023","Skill与智能体开发",[141,152,153,154,155,26,28,156,157,37,158,159,33,160,161,36,162,163,164,165],"next","back","chinese","multilingual","payload","pick","auto","model","Audio","Video","data","server","only","macos",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":38},"01M6CPGAM9K2VN0MVYD4CMC92E","translate","Translate text between languages using the system's translate command","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftranslate\u002FSKILL.md",[],[168,154,173,174,28,30,33,34],"spanish","language",{"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":184,"publishedAt":38},"01M6CPG8DWEY0GWCFDGTTBWA2Q","summarize","Summarize a file's contents into key bullet points","https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fsummarize\u002FSKILL.md",[181],{"categoryNo":182,"categoryName":183,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000021","资料检索与研究",[177,185],"file",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":193,"publishedAt":38},"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",[192],{"categoryNo":146,"categoryName":147,"taxonomyType":98,"taxonomyTypeDesc":99},[188,33,153,194,26,28,195,158,196,197,198,199,160,200,36,116,163,201,37,202],"do","en","pair","just","returns","mp4","endpoint","transcribe","go"]