[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EHGNA1CCB3DC3MM3Y2VKER":3,"skill-same:01M6EHGNA1CCB3DC3MM3Y2VKER":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":14,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6EHGNA1CCB3DC3MM3Y2VKER","agterm-restart",null,"Restart every Claude Code running in agterm in place: Ctrl+C each one, read the \"claude --resume \u003Cid>\" line it prints on exit, and resume it in the same pane with its original launch flags. Picks up a new claude binary, settings.json env or MCP config without losing a conversation. Also wires a \"Restart claude sessions\" palette entry.","isachivka\u002Fbeware-of-skills","isachivka","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1263650?v=4","01M6EHFZP3P6R9WDKZ0B6ZEQ79","Igor Sachivka","01M6EHFZTC56CFH0DA5AENAM8Y",0,"MIT","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fagterm-restart\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"agterm restart","agterm","restart","exit","palette","claude sessions","trigger","id","env","conversation","MCP","resume","settings.json","up","only","pick","Bash","code","sessions","otel","2026-11-10 10:12:30",false,"---\nname: agterm-restart\ndescription: >\n  Restart every Claude Code running in agterm in place: Ctrl+C each one, read the\n  \"claude --resume \u003Cid>\" line it prints on exit, and resume it in the same pane with its\n  original launch flags. Picks up a new claude binary, settings.json env or MCP config\n  without losing a conversation. Also wires a \"Restart claude sessions\" palette entry.\nwhen_to_use: >\n  Trigger on: agterm-restart, \u002Fagterm-restart, \"restart all claude sessions\", \"перезапусти\n  все клоды\", \"relaunch claude everywhere\", after changing settings.json env \u002F OTel endpoint \u002F\n  MCP servers that running sessions read only at startup, after a claude update that running\n  sessions should pick up.\nallowed-tools: [Bash]\n---\n\n# agterm-restart\n\nOnly inside agterm.\n\n```bash\nagterm-restart --dry-run          # list the panes it would restart, change nothing\nagterm-restart                    # restart them\nagterm-restart --match review     # only panes whose \"workspace \u002F session\" contains \"review\"\nagterm-restart --busy             # also panes whose status is active (interrupts the turn)\nagterm-restart install            # \"Restart claude sessions\" in the palette, chord cmd+ctrl+a>c\nagterm-restart uninstall\n```\n\nWhat a run does, pane by pane (primary and split panes, every open window):\n\n1. Finds claude in `agtermctl tree`: a `claude …` foreground, a versioned binary path, or a\n   `zsh -lc 'claude …; exec zsh -l'` launcher.\n2. Skips a pane whose status is `active` (mid-turn) unless `--busy`, and — when run from a\n   claude's Bash tool (`CLAUDECODE` set) — the pane it runs in, since it would kill itself.\n3. Sends Ctrl+C pairs until the pane's foreground is no longer claude.\n4. Takes the session id from the `claude --resume \u003Cid>` line claude prints on exit (falls back\n   to a `--resume` in the old argv). No id → the pane is left at the shell and reported.\n5. Types `claude --resume \u003Cid> \u003Cflags>`: the original flags, minus the old `--resume`,\n   duplicates and the positional prompt (a launch prompt must not be replayed as a new\n   message).\n6. Answers claude's \"resume full session as-is \u002F from summary\" question with **2**\n   (`--answer-choice 1|none` to change).\n\nThe palette entry runs the same thing in an overlay on the session it fired from, held open\nuntil a key is pressed so the report stays readable. The session under the overlay restarts\ntoo — typing goes under an overlay.\n\nFlag\u002Fargv parsing is shared with `agterm-fork` (loaded from the sibling skill directory).\nTests: `python3 -m pytest -q test_agterm_restart.py`.\n","# agterm-restart\n\nOnly inside agterm.\n\n```bash\nagterm-restart --dry-run          # list the panes it would restart, change nothing\nagterm-restart                    # restart them\nagterm-restart --match review     # only panes whose \"workspace \u002F session\" contains \"review\"\nagterm-restart --busy             # also panes whose status is active (interrupts the turn)\nagterm-restart install            # \"Restart claude sessions\" in the palette, chord cmd+ctrl+a>c\nagterm-restart uninstall\n```\n\nWhat a run does, pane by pane (primary and split panes, every open window):\n\n1. Finds claude in `agtermctl tree`: a `claude …` foreground, a versioned binary path, or a\n   `zsh -lc 'claude …; exec zsh -l'` launcher.\n2. Skips a pane whose status is `active` (mid-turn) unless `--busy`, and — when run from a\n   claude's Bash tool (`CLAUDECODE` set) — the pane it runs in, since it would kill itself.\n3. Sends Ctrl+C pairs until the pane's foreground is no longer claude.\n4. Takes the session id from the `claude --resume \u003Cid>` line claude prints on exit (falls back\n   to a `--resume` in the old argv). No id → the pane is left at the shell and reported.\n5. Types `claude --resume \u003Cid> \u003Cflags>`: the original flags, minus the old `--resume`,\n   duplicates and the positional prompt (a launch prompt must not be replayed as a new\n   message).\n6. Answers claude's \"resume full session as-is \u002F from summary\" question with **2**\n   (`--answer-choice 1|none` to change).\n\nThe palette entry runs the same thing in an overlay on the session it fired from, held open\nuntil a key is pressed so the report stays readable. The session under the overlay restarts\ntoo — typing goes under an overlay.\n\nFlag\u002Fargv parsing is shared with `agterm-fork` (loaded from the sibling skill directory).\nTests: `python3 -m pytest -q test_agterm_restart.py`.\n",{"name":5,"description":54,"when_to_use":55,"allowed-tools":56},"Restart every Claude Code running in agterm in place: Ctrl+C each one, read the \"claude --resume \u003Cid>\" line it prints on exit, and resume it in the same pane with its original launch flags. Picks up a new claude binary, settings.json env or MCP config without losing a conversation. Also wires a \"Restart claude sessions\" palette entry.\n","Trigger on: agterm-restart, \u002Fagterm-restart, \"restart all claude sessions\", \"перезапусти все клоды\", \"relaunch claude everywhere\", after changing settings.json env \u002F OTel endpoint \u002F MCP servers that running sessions read only at startup, after a claude update that running sessions should pick up.\n",[45],"main","3f76050fe565c91c27d85e648128fdbe5005106e","plugins\u002Fbos\u002Fskills\u002Fagterm-restart","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills","https:\u002F\u002Fgithub.com\u002Fisachivka","2026-11-11 04:25:51",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add isachivka\u002Fbeware-of-skills --skill agterm-restart",{"tool":69,"command":70},"bunx","bunx skills add isachivka\u002Fbeware-of-skills --skill agterm-restart",{"tool":72,"command":73},"pnpm","pnpm dlx skills add isachivka\u002Fbeware-of-skills --skill agterm-restart","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fagterm-restart\u002FSKILL.md",true,[77,82],{"path":5,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"OTHER","其他",12828,"https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fagterm-restart\u002Fagterm-restart",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"test_agterm_restart.py","SCRIPT","脚本",2740,"https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fagterm-restart\u002Ftest_agterm_restart.py",[89,112,139,159,180,201],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":98,"publishedAt":49},"01M6EHHMD6V299GTDRCB7XVPKH","yt-dub","Give a YouTube video Yandex's Russian voice-over (the Yandex Browser \u002F voice-over-translation one) at any length — including past Yandex's 4-hour limit — and mux it into the best video YouTube serves, with the original sound kept as a second track; optionally drop the result into Plex on SugarDaddy. Also when only the translated audio is wanted.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbosp\u002Fskills\u002Fyt-dub\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[99,100,101,102,45,103,43,104,105,106,107,108,109,35,110,111],"yt dub","browser","Video","Audio","voice","youtube","translation","russian","plex","drop","as","link","it",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":122,"publishedAt":49},"01M6EHHFFGVRCR4MCZTE96HYN7","codex-proxy","Run an OpenAI-compatible Chat Completions endpoint on localhost that spends the user's ChatGPT\u002FCodex subscription instead of an API key — for apps that take a Base URL, API key and model id (dictation post-processing, editors, scripts). Install it as an always-on LaunchAgent, check its status, print the key, try a request, or debug a failing app.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbosp\u002Fskills\u002Fcodex-proxy\u002FSKILL.md",[118,121],{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[123,124,125,126,127,128,129,45,130,131,132,133,134,109,135,36,35,136,137,138],"codex","proxy","codex proxy","uninstall","debug","run","api","model","check","use","provider","chat","app","apps","post","processing",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":146,"publishedAt":49},"01M6EHHBJ8GXVFT5DN6526H54J","revdiff-ru","Review a diff in revdiff with everything except the code translated into Russian, line numbering preserved 1:1 so annotations map back to the real files. One command does the translation; then \u002Frevdiff:revdiff opens the result.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Frevdiff-ru\u002FSKILL.md",[145],{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[147,148,149,46,150,151,45,152,153,154,155,105,106,156,157,35,158],"revdiff ru","review","translate","file","open","annotations","command","diff","files","back","map","line",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":49},"01M6EHH7CR99Y6TPN9DW24DGXE","peer-chat","A prompt starting with \"Chat from Codex:\" is a peer message: answer it only through peer-chat.py, never in your own output. Also use when the user says \"chat with codex\", \"talk to codex\", \"work with codex\", \"do this with codex\", \"build this with codex\", \"discuss this with codex\" (the agent in the other pane of this agterm split). Not for a one-shot task handed off, and not for a read-only second opinion.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fpeer-chat\u002FSKILL.md",[165],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[167,134,168,123,169,45,170,171,172,173,174,132,175,43,176,177,178,179,111,30],"peer","peer chat","second opinion","grep","work","prompt","read","user","never","build","do","task","message",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":187,"publishedAt":49},"01M6EHH3WCWPHZX79RD91X23C7","memory-review","Use when an agent memory directory has grown large enough that nobody remembers what is in it, when memories look stale or contradictory, when the same fact seems to live in both memory and a CLAUDE.md, or when the user asks to review, prune, audit or clean up their memories. Also use before retiring a project whose memories should move somewhere else.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fmemory-review\u002FSKILL.md",[186],{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[148,188,189,190,191,46,192,193,45,194,173,195,196,132,42,197,198,199,200,35],"memory","memory review","directory","go","agent memory","audit","prune","write","edit","stale","clean","memories","project",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":209,"publishedAt":49},"01M6EHGZJTNE9TR6099FRECB42","decomment","Strip the noise comments an AI agent left behind on a branch — the ones that restate the code line by line or narrate the change as a story (\"was X, now Y\", \"added a guard here\"). Git holds the history and the code holds the present; only genuinely non-obvious comments survive.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fdecomment\u002FSKILL.md",[207,208],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[203,210,46,211,45,212,213,214,215,154,43,42,198,108,109,35,216,217,218,219],"ai agent","guard","sweep","history","branch","remove","scope","now","narrative","restate"]