[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPDP42S62VKC1GD1J4WQH0":3,"skill-same:01M6CPDP42S62VKC1GD1J4WQH0":85},{"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":62,"commitSha":63,"skillDirectory":64,"forksCount":65,"repositoryHtmlUrl":66,"repositoryHomepageUrl":67,"ownerHtmlUrl":68,"ownerBlogUrl":69,"ownerDescription":70,"updatedAt":71,"install":72,"resources":84},"01M6CPDP42S62VKC1GD1J4WQH0","app_open_clean",null,"Open a macOS app AND dismiss any blocking welcome \u002F \"What's New\" \u002F\nsetup-prompt sheet that appeared on launch. Returns the app name\nand whether a modal was dismissed. Use this INSTEAD of `shell open\n-a X` when first opening an app you haven't driven before — saves\nthe agent from the common failure mode of typing into a welcome\nmodal instead of the actual UI.\n\nLooks for these dismiss buttons in priority order across any sheet\nor window of the frontmost app:\n  Continue · Get Started · Skip · Later · Not Now · Got It ·\n  Maybe Later · Done · Cancel\n\nGeneric — works for first-launch Apple apps (Reminders, Mail,\nCalendar, Photos, Maps, Music) and third-party apps that follow\nthe same modal pattern.","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\u002Fapp_open_clean\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"app open clean","clean","open","auto","next","done","maybe","later","maps","Echo","calendar","macos","common","music","SET","ui","run","reminders","welcome","sync","2026-11-10 10:12:30",false,"---\nname: app_open_clean\ndescription: |\n  Open a macOS app AND dismiss any blocking welcome \u002F \"What's New\" \u002F\n  setup-prompt sheet that appeared on launch. Returns the app name\n  and whether a modal was dismissed. Use this INSTEAD of `shell open\n  -a X` when first opening an app you haven't driven before — saves\n  the agent from the common failure mode of typing into a welcome\n  modal instead of the actual UI.\n\n  Looks for these dismiss buttons in priority order across any sheet\n  or window of the frontmost app:\n    Continue · Get Started · Skip · Later · Not Now · Got It ·\n    Maybe Later · Done · Cancel\n\n  Generic — works for first-launch Apple apps (Reminders, Mail,\n  Calendar, Photos, Maps, Music) and third-party apps that follow\n  the same modal pattern.\ncommand:\n  - sh\n  - -c\n  - |\n    APP=\"$1\"\n    [ -z \"$APP\" ] && { echo \"app name required\" >&2; exit 1; }\n\n    open -a \"$APP\"\n    # Most welcome sheets appear within 1.5s of launch. Sleep more on\n    # slow boots — better to be late than to dismiss-before-render.\n    sleep 1.5\n\n    # Walk the frontmost app's sheets + windows; click the first\n    # matching dismiss button by priority. Errors silenced — if the\n    # app has no modal, we just exit with no-op success.\n    DISMISSED=$(osascript 2>\u002Fdev\u002Fnull \u003C\u003C'APPLESCRIPT'\n    set dismissBtns to {\"Continue\", \"Get Started\", \"Skip\", \"Later\", \"Not Now\", \"Got It\", \"Maybe Later\", \"Done\", \"Cancel\"}\n    set didClick to \"\"\n    tell application \"System Events\"\n      try\n        set frontProc to first application process whose frontmost is true\n        tell frontProc\n          repeat with w in windows\n            -- Sheets (attached modal dialogs)\n            try\n              repeat with s in sheets of w\n                repeat with btnName in dismissBtns\n                  if exists (button btnName of s) then\n                    click button btnName of s\n                    set didClick to btnName as string\n                    exit repeat\n                  end if\n                end repeat\n                if didClick is not \"\" then exit repeat\n              end repeat\n            end try\n            if didClick is not \"\" then exit repeat\n            -- Standalone window that looks like welcome (has Continue\u002FGet Started)\n            try\n              repeat with btnName in {\"Continue\", \"Get Started\", \"Got It\"}\n                if exists (button btnName of w) then\n                  click button btnName of w\n                  set didClick to btnName as string\n                  exit repeat\n                end if\n              end repeat\n            end try\n            if didClick is not \"\" then exit repeat\n          end repeat\n        end tell\n      end try\n    end tell\n    return didClick\n    APPLESCRIPT\n    )\n\n    # Some welcome flows are multi-step. Run a second pass to catch\n    # the next sheet (e.g. Reminders has \"What's New\" → may auto-open\n    # iCloud sync prompt). Quick second pass, no sleep needed.\n    if [ -n \"$DISMISSED\" ]; then\n      sleep 0.4\n      DISMISSED2=$(osascript 2>\u002Fdev\u002Fnull \u003C\u003C'APPLESCRIPT'\n    set dismissBtns to {\"Continue\", \"Get Started\", \"Skip\", \"Later\", \"Not Now\", \"Got It\", \"Maybe Later\", \"Done\", \"Cancel\"}\n    set didClick to \"\"\n    tell application \"System Events\"\n      try\n        set frontProc to first application process whose frontmost is true\n        tell frontProc\n          repeat with w in windows\n            try\n              repeat with s in sheets of w\n                repeat with btnName in dismissBtns\n                  if exists (button btnName of s) then\n                    click button btnName of s\n                    set didClick to btnName as string\n                    exit repeat\n                  end if\n                end repeat\n                if didClick is not \"\" then exit repeat\n              end repeat\n            end try\n            if didClick is not \"\" then exit repeat\n          end repeat\n        end tell\n      end try\n    end tell\n    return didClick\n    APPLESCRIPT\n    )\n    fi\n\n    if [ -n \"$DISMISSED\" ]; then\n      printf 'opened: %s\\ndismissed: %s' \"$APP\" \"$DISMISSED\"\n      [ -n \"$DISMISSED2\" ] && printf ' → %s' \"$DISMISSED2\"\n      printf '\\n'\n    else\n      printf 'opened: %s\\ndismissed: (no modal found)\\n' \"$APP\"\n    fi\n  - \"_\"\nargs:\n  - \"{{app}}\"\nschema:\n  app:\n    type: string\n    description: App name (e.g. \"Reminders\", \"Mail\", \"Calendar\") or bundle ID. Whatever `open -a` accepts.\n    required: true\ntimeout: 15\n---\n\n# app_open_clean — open + dismiss welcome modal\n\nA common failure pattern when an LLM agent first drives a Mac app:\nlaunch the app → start typing or clicking → realize too late that a\n\"What's New\" or \"Welcome\" sheet was sitting on top of the real UI\nthe whole time. The keystrokes go nowhere or hit the wrong target.\nThe app looks unresponsive but is actually working fine; the modal\nis invisible to the AX-walk because it's a separate sheet.\n\nThis skill handles both phases in a single tool call:\n\n1. `open -a \u003Capp>` — launches via Launch Services\n2. `osascript` walks the frontmost process's windows + sheets, clicks\n   the highest-priority dismiss button it finds, repeats once for\n   stacked welcome flows.\n\nIf the app has no modal (already dismissed, or never had one), the\nscript exits clean and reports \"no modal found\" — completely safe\nto call on already-open apps.\n\n## When to use\n\n- You're driving a built-in macOS app you haven't touched in this\n  session: Reminders, Mail, Calendar, Photos, Maps, Music, etc.\n- You just upgraded macOS — every app's \"What's New\" fires once.\n- A third-party app you've never opened on this machine (Bear,\n  Slack, Notion, etc.).\n\n## When NOT to use\n\n- App is already running and you've already used it — `shell open -a`\n  is enough, no modal will appear.\n- The \"modal\" you want to keep — e.g. you opened Mail to use the Add\n  Account flow on purpose. (Use `shell open -a Mail` directly then.)\n\n## Examples\n\n```\napp_open_clean app=Reminders\n  → opened: Reminders\n    dismissed: Continue → Got It\n\napp_open_clean app=Calculator\n  → opened: Calculator\n    dismissed: (no modal found)\n```\n\n## Why a SKILL.md and not native\n\nPure shell + osascript. No Go state, no AX walking via kinax that\nthis skill doesn't already get from the standard `ui` tool. Sticks\nto the \"thin kernel + fat skill\" thesis — apps come and go, modal\nshapes evolve, this is exactly what `forge` should be writing.\n\n## Override \u002F extend\n\nIf your installed app has a different dismiss button label not in\nthe priority list (e.g. \"Begin\", \"OK, got it\", \"下一步\"), edit this\nSKILL.md and add it to `dismissBtns`. Or `forge` a sibling skill\nnamed after the specific app.\n","# app_open_clean — open + dismiss welcome modal\n\nA common failure pattern when an LLM agent first drives a Mac app:\nlaunch the app → start typing or clicking → realize too late that a\n\"What's New\" or \"Welcome\" sheet was sitting on top of the real UI\nthe whole time. The keystrokes go nowhere or hit the wrong target.\nThe app looks unresponsive but is actually working fine; the modal\nis invisible to the AX-walk because it's a separate sheet.\n\nThis skill handles both phases in a single tool call:\n\n1. `open -a \u003Capp>` — launches via Launch Services\n2. `osascript` walks the frontmost process's windows + sheets, clicks\n   the highest-priority dismiss button it finds, repeats once for\n   stacked welcome flows.\n\nIf the app has no modal (already dismissed, or never had one), the\nscript exits clean and reports \"no modal found\" — completely safe\nto call on already-open apps.\n\n## When to use\n\n- You're driving a built-in macOS app you haven't touched in this\n  session: Reminders, Mail, Calendar, Photos, Maps, Music, etc.\n- You just upgraded macOS — every app's \"What's New\" fires once.\n- A third-party app you've never opened on this machine (Bear,\n  Slack, Notion, etc.).\n\n## When NOT to use\n\n- App is already running and you've already used it — `shell open -a`\n  is enough, no modal will appear.\n- The \"modal\" you want to keep — e.g. you opened Mail to use the Add\n  Account flow on purpose. (Use `shell open -a Mail` directly then.)\n\n## Examples\n\n```\napp_open_clean app=Reminders\n  → opened: Reminders\n    dismissed: Continue → Got It\n\napp_open_clean app=Calculator\n  → opened: Calculator\n    dismissed: (no modal found)\n```\n\n## Why a SKILL.md and not native\n\nPure shell + osascript. No Go state, no AX walking via kinax that\nthis skill doesn't already get from the standard `ui` tool. Sticks\nto the \"thin kernel + fat skill\" thesis — apps come and go, modal\nshapes evolve, this is exactly what `forge` should be writing.\n\n## Override \u002F extend\n\nIf your installed app has a different dismiss button label not in\nthe priority list (e.g. \"Begin\", \"OK, got it\", \"下一步\"), edit this\nSKILL.md and add it to `dismissBtns`. Or `forge` a sibling skill\nnamed after the specific app.\n",{"args":48,"name":5,"schema":50,"command":55,"timeout":60,"description":61},[49],"{{app}}",{"app":51},{"type":52,"required":53,"description":54},"string",true,"App name (e.g. \"Reminders\", \"Mail\", \"Calendar\") or bundle ID. Whatever `open -a` accepts.",[56,57,58,59],"sh","-c","APP=\"$1\"\n[ -z \"$APP\" ] && { echo \"app name required\" >&2; exit 1; }\n\nopen -a \"$APP\"\n# Most welcome sheets appear within 1.5s of launch. Sleep more on\n# slow boots — better to be late than to dismiss-before-render.\nsleep 1.5\n\n# Walk the frontmost app's sheets + windows; click the first\n# matching dismiss button by priority. Errors silenced — if the\n# app has no modal, we just exit with no-op success.\nDISMISSED=$(osascript 2>\u002Fdev\u002Fnull \u003C\u003C'APPLESCRIPT'\nset dismissBtns to {\"Continue\", \"Get Started\", \"Skip\", \"Later\", \"Not Now\", \"Got It\", \"Maybe Later\", \"Done\", \"Cancel\"}\nset didClick to \"\"\ntell application \"System Events\"\n  try\n    set frontProc to first application process whose frontmost is true\n    tell frontProc\n      repeat with w in windows\n        -- Sheets (attached modal dialogs)\n        try\n          repeat with s in sheets of w\n            repeat with btnName in dismissBtns\n              if exists (button btnName of s) then\n                click button btnName of s\n                set didClick to btnName as string\n                exit repeat\n              end if\n            end repeat\n            if didClick is not \"\" then exit repeat\n          end repeat\n        end try\n        if didClick is not \"\" then exit repeat\n        -- Standalone window that looks like welcome (has Continue\u002FGet Started)\n        try\n          repeat with btnName in {\"Continue\", \"Get Started\", \"Got It\"}\n            if exists (button btnName of w) then\n              click button btnName of w\n              set didClick to btnName as string\n              exit repeat\n            end if\n          end repeat\n        end try\n        if didClick is not \"\" then exit repeat\n      end repeat\n    end tell\n  end try\nend tell\nreturn didClick\nAPPLESCRIPT\n)\n\n# Some welcome flows are multi-step. Run a second pass to catch\n# the next sheet (e.g. Reminders has \"What's New\" → may auto-open\n# iCloud sync prompt). Quick second pass, no sleep needed.\nif [ -n \"$DISMISSED\" ]; then\n  sleep 0.4\n  DISMISSED2=$(osascript 2>\u002Fdev\u002Fnull \u003C\u003C'APPLESCRIPT'\nset dismissBtns to {\"Continue\", \"Get Started\", \"Skip\", \"Later\", \"Not Now\", \"Got It\", \"Maybe Later\", \"Done\", \"Cancel\"}\nset didClick to \"\"\ntell application \"System Events\"\n  try\n    set frontProc to first application process whose frontmost is true\n    tell frontProc\n      repeat with w in windows\n        try\n          repeat with s in sheets of w\n            repeat with btnName in dismissBtns\n              if exists (button btnName of s) then\n                click button btnName of s\n                set didClick to btnName as string\n                exit repeat\n              end if\n            end repeat\n            if didClick is not \"\" then exit repeat\n          end repeat\n        end try\n        if didClick is not \"\" then exit repeat\n      end repeat\n    end tell\n  end try\nend tell\nreturn didClick\nAPPLESCRIPT\n)\nfi\n\nif [ -n \"$DISMISSED\" ]; then\n  printf 'opened: %s\\ndismissed: %s' \"$APP\" \"$DISMISSED\"\n  [ -n \"$DISMISSED2\" ] && printf ' → %s' \"$DISMISSED2\"\n  printf '\\n'\nelse\n  printf 'opened: %s\\ndismissed: (no modal found)\\n' \"$APP\"\nfi\n","_",15,"Open a macOS app AND dismiss any blocking welcome \u002F \"What's New\" \u002F\nsetup-prompt sheet that appeared on launch. Returns the app name\nand whether a modal was dismissed. Use this INSTEAD of `shell open\n-a X` when first opening an app you haven't driven before — saves\nthe agent from the common failure mode of typing into a welcome\nmodal instead of the actual UI.\n\nLooks for these dismiss buttons in priority order across any sheet\nor window of the frontmost app:\n  Continue · Get Started · Skip · Later · Not Now · Got It ·\n  Maybe Later · Done · Cancel\n\nGeneric — works for first-launch Apple apps (Reminders, Mail,\nCalendar, Photos, Maps, Music) and third-party apps that follow\nthe same modal pattern.\n","main","d1b92d10cddb779854af342bea74d0b6c46788e2","skills\u002Fapp_open_clean",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":73,"prompt":83,"zipAvailable":53},[74,77,80],{"tool":75,"command":76},"npx","npx skills add LocalKinAI\u002Fkinclaw --skill app_open_clean",{"tool":78,"command":79},"bunx","bunx skills add LocalKinAI\u002Fkinclaw --skill app_open_clean",{"tool":81,"command":82},"pnpm","pnpm dlx skills add LocalKinAI\u002Fkinclaw --skill app_open_clean","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLocalKinAI\u002Fkinclaw\u002Fblob\u002Fmain\u002Fskills\u002Fapp_open_clean\u002FSKILL.md",[],[86,120,135,159,170,181],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":101,"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",[92,95,98],{"categoryNo":93,"categoryName":94,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[88,102,103,104,105,106,107,108,109,110,111,112,113,39,114,115,116,117,118,119],"image","search","forms","files","log","read","text","wait for","how","scrape","start","PDF","generate","placeholder","change","react","css","directory",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"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",[],[122,103,127,128,129,130,131,132,133,134,88],"three","location","use","question","python3","web search","api","forecast",{"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":145,"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",[141,144],{"categoryNo":142,"categoryName":143,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[137,27,146,147,148,149,32,150,151,152,26,153,108,154,155,37,156,157,158,34],"back","chinese","multilingual","default","payload","pick","code","model","Audio","Video","data","server","only",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"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",[],[161,147,166,167,32,168,108,169],"spanish","language","command","system",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":179,"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",[176],{"categoryNo":177,"categoryName":178,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[172,180],"file",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"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",[187],{"categoryNo":142,"categoryName":143,"taxonomyType":20,"taxonomyTypeDesc":21},[183,108,146,189,149,32,190,26,191,192,193,194,154,195,37,112,157,196,152,197],"do","en","pair","just","returns","mp4","endpoint","transcribe","go"]