[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71VCB49R04140THDCNVE30D":3,"skill-same:01M71VCB49R04140THDCNVE30D":45},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":12,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M71VCB49R04140THDCNVE30D","update-setup",null,"midakaID\u002FNanobot","midakaID","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F274763386?v=4","01M71VBRKPKH8X05SDN8FNFMC5","01M71VBRMP9NXWW793AZCCSKDZ",0,"MIT","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fupdate-setup\u002FSKILL.md",[],[17,18,19],"setup","update","update setup","2026-11-10 13:02:02",false,"---\nname: update-setup\ndescription: One-time setup wizard for the nanobot upgrade skill. Triggers: setup update, configure update, 切设置更新, 初始化更新.\n---\n\n# Update Setup\n\nGenerate a personalized upgrade skill for this workspace.\n\n## Step 1: Check Existing\n\nUse `read_file` to check if `skills\u002Fupdate\u002FSKILL.md` already exists in the workspace.\n\nIf it exists, use `ask_user` to ask: \"An upgrade skill already exists. Reconfigure?\" with options [\"yes\", \"no\"]. If no, stop here.\n\n## Step 2: Current Version and Install Clues\n\nUse `exec` to run `nanobot --version`. Tell the user the current version.\n\nThen collect install clues with `exec`. These commands are best-effort; if one fails,\nkeep going and show the useful output:\n\n```\ncommand -v nanobot || true\npython -m pip show nanobot-ai || true\npipx list | sed -n '\u002Fnanobot-ai\u002F,+3p' || true\nuv tool list | sed -n '\u002Fnanobot-ai\u002F,+3p' || true\n```\n\nSummarize what you found in one short paragraph. Use the clues only to suggest a\nlikely install method. Do not treat them as confirmation.\n\n## Step 3: Confirm Required Inputs\n\nCRITICAL: Do not write `skills\u002Fupdate\u002FSKILL.md` until the install method is\nexplicitly confirmed by the user. The install method must come from a user\nanswer or confirmation, not from inference alone. If you cannot get a clear\nanswer, stop and ask the user to rerun this setup when they know how nanobot was\ninstalled.\n\nUse `ask_user` for the questions below, one question per call. If `ask_user` is\nnot available or cannot collect the answer, ask in normal chat and stop without\nwriting the skill.\n\n**Question 1 — Install method:**\n\n```\nquestion: \"I found these install clues: \u003CSUMMARY>. Which update method should this workspace use?\"\noptions: [\"uv\", \"pipx\", \"pip\", \"source (git clone)\", \"not sure\"]\n```\n\nIf the user selected `not sure`, explain the difference between the options and\nstop. Do not generate the upgrade skill.\n\nIf the user selected `source (git clone)`, ask for the local checkout path:\n`question: \"Where is your nanobot source checkout? Enter an absolute path or a path relative to this workspace:\"`.\n\n**Question 2 — Optional dependencies:**\n\n```\nquestion: \"Which optional dependencies do you need? List names separated by spaces, or reply 'none'. Available: api, wecom, weixin, msteams, matrix, discord, langsmith, pdf\"\n```\n\nParse the reply. If the user says \"none\" or similar, set extras to empty. Otherwise collect the valid names.\n\n**Question 3 — Proxy:**\n\n```\nquestion: \"Do you need an HTTP proxy to reach PyPI or GitHub?\"\noptions: [\"no\", \"yes\"]\n```\n\nIf yes, ask one more time for the proxy URL: `question: \"Enter proxy URL (e.g. http:\u002F\u002F127.0.0.1:7890):\"`.\n\n## Step 4: Generate Skill\n\nBuild the extras string. If the user selected dependencies, format as `[dep1,dep2,...]`. Otherwise omit the brackets entirely.\n\nDetermine the upgrade command from the install method:\n\n| Method | Command |\n|--------|---------|\n| uv | `uv tool install \"nanobot-ai[EXTRAS]\" --force` |\n| pipx | `pipx install --force \"nanobot-ai[EXTRAS]\"` |\n| pip | `python -m pip install --upgrade \"nanobot-ai[EXTRAS]\"` |\n| source | `cd \u003CSOURCE_CHECKOUT> && git pull && python -m pip install -e \".[EXTRAS]\"` |\n\nFor source installs, include extras in the editable install command when selected. Quote the source checkout path if it contains spaces.\n\nDetermine the preflight check from the install method:\n\n| Method | Preflight check |\n|--------|-----------------|\n| uv | `command -v uv` |\n| pipx | `command -v pipx` |\n| pip | `python -m pip --version` |\n| source | `test -d \u003CSOURCE_CHECKOUT> && test -d \u003CSOURCE_CHECKOUT>\u002F.git && test -f \u003CSOURCE_CHECKOUT>\u002Fpyproject.toml` |\n\nFor source installs, quote the source checkout path in the preflight check if it\ncontains spaces.\n\nBuild the skill content. If proxy is configured, add `export http_proxy=URL` and `export https_proxy=URL` lines before the upgrade command.\n\nUse `write_file` to write `skills\u002Fupdate\u002FSKILL.md` with this content:\n\n```\n---\nname: update\ndescription: \"Upgrade nanobot to the latest version. Triggers: upgrade nanobot, update nanobot, 升级nanobot, 更新nanobot.\"\n---\n\n# Update Nanobot\n\n1. (If proxy configured) Set proxy: `export http_proxy=URL && export https_proxy=URL`\n2. Use `exec` to run the preflight check: \u003CPREFLIGHT_CHECK>. If it fails, stop and tell the user to rerun `update-setup` because the saved install method no longer matches this environment.\n3. Use `exec` to run the upgrade command: \u003CUPGRADE_COMMAND>\n4. Use `exec` to verify: `nanobot --version`\n5. Tell the user the new version. Say: \"Run `\u002Frestart` to restart nanobot and apply the update. If `\u002Frestart` is unavailable in this channel, restart the nanobot process manually.\"\n```\n\n## Step 5: Confirm\n\nTell the user: \"Upgrade skill created. Say 'upgrade nanobot' when you want to update.\"\n","# Update Setup\n\nGenerate a personalized upgrade skill for this workspace.\n\n## Step 1: Check Existing\n\nUse `read_file` to check if `skills\u002Fupdate\u002FSKILL.md` already exists in the workspace.\n\nIf it exists, use `ask_user` to ask: \"An upgrade skill already exists. Reconfigure?\" with options [\"yes\", \"no\"]. If no, stop here.\n\n## Step 2: Current Version and Install Clues\n\nUse `exec` to run `nanobot --version`. Tell the user the current version.\n\nThen collect install clues with `exec`. These commands are best-effort; if one fails,\nkeep going and show the useful output:\n\n```\ncommand -v nanobot || true\npython -m pip show nanobot-ai || true\npipx list | sed -n '\u002Fnanobot-ai\u002F,+3p' || true\nuv tool list | sed -n '\u002Fnanobot-ai\u002F,+3p' || true\n```\n\nSummarize what you found in one short paragraph. Use the clues only to suggest a\nlikely install method. Do not treat them as confirmation.\n\n## Step 3: Confirm Required Inputs\n\nCRITICAL: Do not write `skills\u002Fupdate\u002FSKILL.md` until the install method is\nexplicitly confirmed by the user. The install method must come from a user\nanswer or confirmation, not from inference alone. If you cannot get a clear\nanswer, stop and ask the user to rerun this setup when they know how nanobot was\ninstalled.\n\nUse `ask_user` for the questions below, one question per call. If `ask_user` is\nnot available or cannot collect the answer, ask in normal chat and stop without\nwriting the skill.\n\n**Question 1 — Install method:**\n\n```\nquestion: \"I found these install clues: \u003CSUMMARY>. Which update method should this workspace use?\"\noptions: [\"uv\", \"pipx\", \"pip\", \"source (git clone)\", \"not sure\"]\n```\n\nIf the user selected `not sure`, explain the difference between the options and\nstop. Do not generate the upgrade skill.\n\nIf the user selected `source (git clone)`, ask for the local checkout path:\n`question: \"Where is your nanobot source checkout? Enter an absolute path or a path relative to this workspace:\"`.\n\n**Question 2 — Optional dependencies:**\n\n```\nquestion: \"Which optional dependencies do you need? List names separated by spaces, or reply 'none'. Available: api, wecom, weixin, msteams, matrix, discord, langsmith, pdf\"\n```\n\nParse the reply. If the user says \"none\" or similar, set extras to empty. Otherwise collect the valid names.\n\n**Question 3 — Proxy:**\n\n```\nquestion: \"Do you need an HTTP proxy to reach PyPI or GitHub?\"\noptions: [\"no\", \"yes\"]\n```\n\nIf yes, ask one more time for the proxy URL: `question: \"Enter proxy URL (e.g. http:\u002F\u002F127.0.0.1:7890):\"`.\n\n## Step 4: Generate Skill\n\nBuild the extras string. If the user selected dependencies, format as `[dep1,dep2,...]`. Otherwise omit the brackets entirely.\n\nDetermine the upgrade command from the install method:\n\n| Method | Command |\n|--------|---------|\n| uv | `uv tool install \"nanobot-ai[EXTRAS]\" --force` |\n| pipx | `pipx install --force \"nanobot-ai[EXTRAS]\"` |\n| pip | `python -m pip install --upgrade \"nanobot-ai[EXTRAS]\"` |\n| source | `cd \u003CSOURCE_CHECKOUT> && git pull && python -m pip install -e \".[EXTRAS]\"` |\n\nFor source installs, include extras in the editable install command when selected. Quote the source checkout path if it contains spaces.\n\nDetermine the preflight check from the install method:\n\n| Method | Preflight check |\n|--------|-----------------|\n| uv | `command -v uv` |\n| pipx | `command -v pipx` |\n| pip | `python -m pip --version` |\n| source | `test -d \u003CSOURCE_CHECKOUT> && test -d \u003CSOURCE_CHECKOUT>\u002F.git && test -f \u003CSOURCE_CHECKOUT>\u002Fpyproject.toml` |\n\nFor source installs, quote the source checkout path in the preflight check if it\ncontains spaces.\n\nBuild the skill content. If proxy is configured, add `export http_proxy=URL` and `export https_proxy=URL` lines before the upgrade command.\n\nUse `write_file` to write `skills\u002Fupdate\u002FSKILL.md` with this content:\n\n```\n---\nname: update\ndescription: \"Upgrade nanobot to the latest version. Triggers: upgrade nanobot, update nanobot, 升级nanobot, 更新nanobot.\"\n---\n\n# Update Nanobot\n\n1. (If proxy configured) Set proxy: `export http_proxy=URL && export https_proxy=URL`\n2. Use `exec` to run the preflight check: \u003CPREFLIGHT_CHECK>. If it fails, stop and tell the user to rerun `update-setup` because the saved install method no longer matches this environment.\n3. Use `exec` to run the upgrade command: \u003CUPGRADE_COMMAND>\n4. Use `exec` to verify: `nanobot --version`\n5. Tell the user the new version. Say: \"Run `\u002Frestart` to restart nanobot and apply the update. If `\u002Frestart` is unavailable in this channel, restart the nanobot process manually.\"\n```\n\n## Step 5: Confirm\n\nTell the user: \"Upgrade skill created. Say 'upgrade nanobot' when you want to update.\"\n",{},"main","0cf90a8ad637cdb4cd42e8b8aa3b21c8c538fad7","nanobot\u002Fskills\u002Fupdate-setup","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot","https:\u002F\u002Fgithub.com\u002FmidakaID","2026-05-05 10:38:19",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add midakaID\u002FNanobot --skill update-setup",{"tool":37,"command":38},"bunx","bunx skills add midakaID\u002FNanobot --skill update-setup",{"tool":40,"command":41},"pnpm","pnpm dlx skills add midakaID\u002FNanobot --skill update-setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fupdate-setup\u002FSKILL.md",true,[],[46,58,75,100,122,145],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":20},"01M71VCC94JY1AN5Q0VMY5V66D","weather","Get current weather and forecasts (no API key required).","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fweather\u002FSKILL.md",[],[48,53,54,55,56,57],"https","api","help","get","curl",{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":20},"01M71VC9H72ZQA3HNRR00EAMY0","tmux","Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Ftmux\u002FSKILL.md",[],[60,65,66,67,68,69,70,71,72,73,74],"sessions","control","output","interactive","remote","linux","darwin","for","scraping","remote-control",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":86,"publishedAt":20},"01M71VC7SE11KHNPPE8W1W6Y64","summarize","Summarize or extract text\u002Ftranscripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube\u002Fvideo”).","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fsummarize\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[77,53,87,88,89,90,91,92,93,72,94,95,96,97,98,99],"extract","youtube","text","files","tap","local","transcribe","local files","Video","brew","install","fallback","transcripts",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":109,"publishedAt":20},"01M71VC59TDJQFTAXA648H0J2G","skill-creator","Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fskill-creator\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发",[110,111,112,113,114,115,116,117,118,119,120,121,18],"creator","skill creator","agentskills","assets","scripts","create","references","with scripts","with","when","use","packaging",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":20},"01M71VC2ESZ959XFF4FXVEGZS3","my","Check and set the agent's own runtime state (model, iterations, context window, token usage, web config). Use when diagnosing why something doesn't work (\"why can't you search the web?\", \"why did you stop?\"), checking resource limits before complex tasks, adapting configuration for long or simple tasks, or remembering user preferences across turns. Also use when the user asks what model you are running, how many tokens you've used, or what your settings are.","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fmy\u002FSKILL.md",[],[124,129,130,72,131,132,133,134,135,136,137,138,139,140,141,119,120,142,143,144],"search","runtime","model","usage","running","SET","tokens","across","state","check","can","tasks","you","preferences","true","long",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":20},"01M71VC1BSQ5VAB2G42HTZQRWM","memory","Two-layer memory system with Dream-managed knowledge files.","https:\u002F\u002Fgithub.com\u002FmidakaID\u002FNanobot\u002Fblob\u002Fmain\u002Fnanobot\u002Fskills\u002Fmemory\u002FSKILL.md",[],[147,90,152,153,154,143,155,156,157,118,158],"layer","knowledge","memory system","managed","system","dream","two"]