[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71HNN41WWGG79NNAPCPJEVF":3,"skill-same:01M71HNN41WWGG79NNAPCPJEVF":82},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":67,"install":68,"resources":81},"01M71HNN41WWGG79NNAPCPJEVF","jupyter-live-kernel",null,"Use a live Jupyter kernel for stateful, iterative Python execution via hamelnb. Load this skill when the task involves exploration, iteration, or inspecting intermediate results — data science, ML experimentation, API exploration, or building up complex code step-by-step. Uses terminal to run CLI commands against a live Jupyter kernel. No new tools required.","0xzgbot\u002Fforge-nps-v01","0xzgbot","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F271900281?v=4","01M71GXWAFRXXJSJE3HBCVDKZY","01M71GXWBFQYRJK7M8RM6BDP0X",6,"MIT","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fdata-science\u002Fjupyter-live-kernel\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"kernel","jupyter","jupyter live kernel","live","data","commands","run cli","terminal","run","cli","api","code","when","new","notebook","data-science","up","iteration","exploration","stateful","2026-11-10 10:12:30",false,"---\nname: jupyter-live-kernel\ndescription: >\n  Use a live Jupyter kernel for stateful, iterative Python execution via hamelnb.\n  Load this skill when the task involves exploration, iteration, or inspecting\n  intermediate results — data science, ML experimentation, API exploration, or\n  building up complex code step-by-step. Uses terminal to run CLI commands against\n  a live Jupyter kernel. No new tools required.\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [jupyter, notebook, repl, data-science, exploration, iterative]\n    category: data-science\n---\n\n# Jupyter Live Kernel (hamelnb)\n\nGives you a **stateful Python REPL** via a live Jupyter kernel. Variables persist\nacross executions. Use this instead of `execute_code` when you need to build up\nstate incrementally, explore APIs, inspect DataFrames, or iterate on complex code.\n\n## When to Use This vs Other Tools\n\n| Tool | Use When |\n|------|----------|\n| **This skill** | Iterative exploration, state across steps, data science, ML, \"let me try this and check\" |\n| `execute_code` | One-shot scripts needing hermes tool access (web_search, file ops). Stateless. |\n| `terminal` | Shell commands, builds, installs, git, process management |\n\n**Rule of thumb:** If you'd want a Jupyter notebook for the task, use this skill.\n\n## Prerequisites\n\n1. **uv** must be installed (check: `which uv`)\n2. **JupyterLab** must be installed: `uv tool install jupyterlab`\n3. A Jupyter server must be running (see Setup below)\n\n## Setup\n\nThe hamelnb script location:\n```\nSCRIPT=\"$HOME\u002F.agent-skills\u002Fhamelnb\u002Fskills\u002Fjupyter-live-kernel\u002Fscripts\u002Fjupyter_live_kernel.py\"\n```\n\nIf not cloned yet:\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fhamelsmu\u002Fhamelnb.git ~\u002F.agent-skills\u002Fhamelnb\n```\n\n### Starting JupyterLab\n\nCheck if a server is already running:\n```\nuv run \"$SCRIPT\" servers\n```\n\nIf no servers found, start one:\n```\njupyter-lab --no-browser --port=8888 --notebook-dir=$HOME\u002Fnotebooks \\\n  --IdentityProvider.token='' --ServerApp.password='' > \u002Ftmp\u002Fjupyter.log 2>&1 &\nsleep 3\n```\n\nNote: Token\u002Fpassword disabled for local agent access. The server runs headless.\n\n### Creating a Notebook for REPL Use\n\nIf you just need a REPL (no existing notebook), create a minimal notebook file:\n```\nmkdir -p ~\u002Fnotebooks\n```\nWrite a minimal .ipynb JSON file with one empty code cell, then start a kernel\nsession via the Jupyter REST API:\n```\ncurl -s -X POST http:\u002F\u002F127.0.0.1:8888\u002Fapi\u002Fsessions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"path\":\"scratch.ipynb\",\"type\":\"notebook\",\"name\":\"scratch.ipynb\",\"kernel\":{\"name\":\"python3\"}}'\n```\n\n## Core Workflow\n\nAll commands return structured JSON. Always use `--compact` to save tokens.\n\n### 1. Discover servers and notebooks\n\n```\nuv run \"$SCRIPT\" servers --compact\nuv run \"$SCRIPT\" notebooks --compact\n```\n\n### 2. Execute code (primary operation)\n\n```\nuv run \"$SCRIPT\" execute --path \u003Cnotebook.ipynb> --code '\u003Cpython code>' --compact\n```\n\nState persists across execute calls. Variables, imports, objects all survive.\n\nMulti-line code works with $'...' quoting:\n```\nuv run \"$SCRIPT\" execute --path scratch.ipynb --code $'import os\\nfiles = os.listdir(\".\")\\nprint(f\"Found {len(files)} files\")' --compact\n```\n\n### 3. Inspect live variables\n\n```\nuv run \"$SCRIPT\" variables --path \u003Cnotebook.ipynb> list --compact\nuv run \"$SCRIPT\" variables --path \u003Cnotebook.ipynb> preview --name \u003Cvarname> --compact\n```\n\n### 4. Edit notebook cells\n\n```\n# View current cells\nuv run \"$SCRIPT\" contents --path \u003Cnotebook.ipynb> --compact\n\n# Insert a new cell\nuv run \"$SCRIPT\" edit --path \u003Cnotebook.ipynb> insert \\\n  --at-index \u003CN> --cell-type code --source '\u003Ccode>' --compact\n\n# Replace cell source (use cell-id from contents output)\nuv run \"$SCRIPT\" edit --path \u003Cnotebook.ipynb> replace-source \\\n  --cell-id \u003Cid> --source '\u003Cnew code>' --compact\n\n# Delete a cell\nuv run \"$SCRIPT\" edit --path \u003Cnotebook.ipynb> delete --cell-id \u003Cid> --compact\n```\n\n### 5. Verification (restart + run all)\n\nOnly use when the user asks for a clean verification or you need to confirm\nthe notebook runs top-to-bottom:\n\n```\nuv run \"$SCRIPT\" restart-run-all --path \u003Cnotebook.ipynb> --save-outputs --compact\n```\n\n## Practical Tips from Experience\n\n1. **First execution after server start may timeout** — the kernel needs a moment\n   to initialize. If you get a timeout, just retry.\n\n2. **The kernel Python is JupyterLab's Python** — packages must be installed in\n   that environment. If you need additional packages, install them into the\n   JupyterLab tool environment first.\n\n3. **--compact flag saves significant tokens** — always use it. JSON output can\n   be very verbose without it.\n\n4. **For pure REPL use**, create a scratch.ipynb and don't bother with cell editing.\n   Just use `execute` repeatedly.\n\n5. **Argument order matters** — subcommand flags like `--path` go BEFORE the\n   sub-subcommand. E.g.: `variables --path nb.ipynb list` not `variables list --path nb.ipynb`.\n\n6. **If a session doesn't exist yet**, you need to start one via the REST API\n   (see Setup section). The tool can't execute without a live kernel session.\n\n7. **Errors are returned as JSON** with traceback — read the `ename` and `evalue`\n   fields to understand what went wrong.\n\n8. **Occasional websocket timeouts** — some operations may timeout on first try,\n   especially after a kernel restart. Retry once before escalating.\n\n## Timeout Defaults\n\nThe script has a 30-second default timeout per execution. For long-running\noperations, pass `--timeout 120`. Use generous timeouts (60+) for initial\nsetup or heavy computation.\n","# Jupyter Live Kernel (hamelnb)\n\nGives you a **stateful Python REPL** via a live Jupyter kernel. Variables persist\nacross executions. Use this instead of `execute_code` when you need to build up\nstate incrementally, explore APIs, inspect DataFrames, or iterate on complex code.\n\n## When to Use This vs Other Tools\n\n| Tool | Use When |\n|------|----------|\n| **This skill** | Iterative exploration, state across steps, data science, ML, \"let me try this and check\" |\n| `execute_code` | One-shot scripts needing hermes tool access (web_search, file ops). Stateless. |\n| `terminal` | Shell commands, builds, installs, git, process management |\n\n**Rule of thumb:** If you'd want a Jupyter notebook for the task, use this skill.\n\n## Prerequisites\n\n1. **uv** must be installed (check: `which uv`)\n2. **JupyterLab** must be installed: `uv tool install jupyterlab`\n3. A Jupyter server must be running (see Setup below)\n\n## Setup\n\nThe hamelnb script location:\n```\nSCRIPT=\"$HOME\u002F.agent-skills\u002Fhamelnb\u002Fskills\u002Fjupyter-live-kernel\u002Fscripts\u002Fjupyter_live_kernel.py\"\n```\n\nIf not cloned yet:\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fhamelsmu\u002Fhamelnb.git ~\u002F.agent-skills\u002Fhamelnb\n```\n\n### Starting JupyterLab\n\nCheck if a server is already running:\n```\nuv run \"$SCRIPT\" servers\n```\n\nIf no servers found, start one:\n```\njupyter-lab --no-browser --port=8888 --notebook-dir=$HOME\u002Fnotebooks \\\n  --IdentityProvider.token='' --ServerApp.password='' > \u002Ftmp\u002Fjupyter.log 2>&1 &\nsleep 3\n```\n\nNote: Token\u002Fpassword disabled for local agent access. The server runs headless.\n\n### Creating a Notebook for REPL Use\n\nIf you just need a REPL (no existing notebook), create a minimal notebook file:\n```\nmkdir -p ~\u002Fnotebooks\n```\nWrite a minimal .ipynb JSON file with one empty code cell, then start a kernel\nsession via the Jupyter REST API:\n```\ncurl -s -X POST http:\u002F\u002F127.0.0.1:8888\u002Fapi\u002Fsessions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"path\":\"scratch.ipynb\",\"type\":\"notebook\",\"name\":\"scratch.ipynb\",\"kernel\":{\"name\":\"python3\"}}'\n```\n\n## Core Workflow\n\nAll commands return structured JSON. Always use `--compact` to save tokens.\n\n### 1. Discover servers and notebooks\n\n```\nuv run \"$SCRIPT\" servers --compact\nuv run \"$SCRIPT\" notebooks --compact\n```\n\n### 2. Execute code (primary operation)\n\n```\nuv run \"$SCRIPT\" execute --path \u003Cnotebook.ipynb> --code '\u003Cpython code>' --compact\n```\n\nState persists across execute calls. Variables, imports, objects all survive.\n\nMulti-line code works with $'...' quoting:\n```\nuv run \"$SCRIPT\" execute --path scratch.ipynb --code $'import os\\nfiles = os.listdir(\".\")\\nprint(f\"Found {len(files)} files\")' --compact\n```\n\n### 3. Inspect live variables\n\n```\nuv run \"$SCRIPT\" variables --path \u003Cnotebook.ipynb> list --compact\nuv run \"$SCRIPT\" variables --path \u003Cnotebook.ipynb> preview --name \u003Cvarname> --compact\n```\n\n### 4. Edit notebook cells\n\n```\n# View current cells\nuv run \"$SCRIPT\" contents --path \u003Cnotebook.ipynb> --compact\n\n# Insert a new cell\nuv run \"$SCRIPT\" edit --path \u003Cnotebook.ipynb> insert \\\n  --at-index \u003CN> --cell-type code --source '\u003Ccode>' --compact\n\n# Replace cell source (use cell-id from contents output)\nuv run \"$SCRIPT\" edit --path \u003Cnotebook.ipynb> replace-source \\\n  --cell-id \u003Cid> --source '\u003Cnew code>' --compact\n\n# Delete a cell\nuv run \"$SCRIPT\" edit --path \u003Cnotebook.ipynb> delete --cell-id \u003Cid> --compact\n```\n\n### 5. Verification (restart + run all)\n\nOnly use when the user asks for a clean verification or you need to confirm\nthe notebook runs top-to-bottom:\n\n```\nuv run \"$SCRIPT\" restart-run-all --path \u003Cnotebook.ipynb> --save-outputs --compact\n```\n\n## Practical Tips from Experience\n\n1. **First execution after server start may timeout** — the kernel needs a moment\n   to initialize. If you get a timeout, just retry.\n\n2. **The kernel Python is JupyterLab's Python** — packages must be installed in\n   that environment. If you need additional packages, install them into the\n   JupyterLab tool environment first.\n\n3. **--compact flag saves significant tokens** — always use it. JSON output can\n   be very verbose without it.\n\n4. **For pure REPL use**, create a scratch.ipynb and don't bother with cell editing.\n   Just use `execute` repeatedly.\n\n5. **Argument order matters** — subcommand flags like `--path` go BEFORE the\n   sub-subcommand. E.g.: `variables --path nb.ipynb list` not `variables list --path nb.ipynb`.\n\n6. **If a session doesn't exist yet**, you need to start one via the REST API\n   (see Setup section). The tool can't execute without a live kernel session.\n\n7. **Errors are returned as JSON** with traceback — read the `ename` and `evalue`\n   fields to understand what went wrong.\n\n8. **Occasional websocket timeouts** — some operations may timeout on first try,\n   especially after a kernel restart. Retry once before escalating.\n\n## Timeout Defaults\n\nThe script has a 30-second default timeout per execution. For long-running\noperations, pass `--timeout 120`. Use generous timeouts (60+) for initial\nsetup or heavy computation.\n",{"name":5,"author":53,"license":14,"version":54,"metadata":55,"description":60},"Hermes Agent","1.0.0",{"hermes":56},{"tags":57,"category":43},[29,42,58,43,46,59],"repl","iterative","Use a live Jupyter kernel for stateful, iterative Python execution via hamelnb. Load this skill when the task involves exploration, iteration, or inspecting intermediate results — data science, ML experimentation, API exploration, or building up complex code step-by-step. Uses terminal to run CLI commands against a live Jupyter kernel. No new tools required.\n","master","a76a61826887171cb38ce217ae85643d5d7685d1","hermes_home\u002Fskills\u002Fdata-science\u002Fjupyter-live-kernel",2,"https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01","https:\u002F\u002Fgithub.com\u002F0xzgbot","2026-08-31 09:13:28",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add 0xzgbot\u002Fforge-nps-v01 --skill jupyter-live-kernel",{"tool":74,"command":75},"bunx","bunx skills add 0xzgbot\u002Fforge-nps-v01 --skill jupyter-live-kernel",{"tool":77,"command":78},"pnpm","pnpm dlx skills add 0xzgbot\u002Fforge-nps-v01 --skill jupyter-live-kernel","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fdata-science\u002Fjupyter-live-kernel\u002FSKILL.md",true,[],[83,96,113,127,138,150],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":48},"01M71J5TFCV7K97773JYZE7ET8","yuanbao","Yuanbao (元宝) groups: @mention users, query info\u002Fmembers.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fyuanbao\u002FSKILL.md",[],[85,90,91,92,93,94,95],"groups","at","info","users","query","group",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":106,"publishedAt":48},"01M71J5QR69MCT5J8P3B4Y9ZHA","workflow-ltx-i2v","Use when the task involves workflow ltx i2v. DESCRIPTION.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fworkflow_ltx_i2v\u002FSKILL.md",[102,105],{"categoryNo":103,"categoryName":104,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[107,108,109,110,111,40,112],"ltx","workflow ltx i2v","workflow","Production","task","use",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":121,"publishedAt":48},"01M71J5NYW853AAPB17VR0F7ZX","workflow-flux2-text-to-image","Flux2 Text-to-Image Workflow Reference.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fworkflow_flux2_text_to_image\u002FSKILL.md",[119,120],{"categoryNo":103,"categoryName":104,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[122,123,109,124,125,110,126],"workflow flux2 text to image","image","text","reference","Text-to-Image",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":134,"publishedAt":48},"01M71J5KWY96MD6B6YC2XP6NXB","wide-angle-environmental","Use when the task involves wide angle environmental. DESCRIPTION.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fwide_angle_environmental\u002FSKILL.md",[133],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[135,136,137,110,111,40,112],"environmental","wide","wide angle environmental",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":48},"01M71J5DXHECTDVDF8HRP81YFY","wes-anderson-specialist","Use when the task involves wes anderson specialist. 1. EXECUTIVE SUMMARY.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fwes_anderson_specialist\u002FSKILL.md",[144],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[146,147,148,149,40,112,111,110],"specialist","wes anderson specialist","summary","executive summary",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":157,"publishedAt":48},"01M71J5BRHX2N4BRG2VQMWJK3E","volumetric-god-rays-lighting","Use when the task involves volumetric god rays lighting. DESCRIPTION.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fvolumetric_god_rays_lighting\u002FSKILL.md",[156],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[158,159,112,40,111,110],"volumetric god rays lighting","lighting"]