[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EHG5AP41EGYMP03JKFFNW7":3,"skill-same:01M6EHG5AP41EGYMP03JKFFNW7":72},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":14,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6EHG5AP41EGYMP03JKFFNW7","agterm-archive",null,"Park a whole agterm workspace on disk and bring it back later — snapshot its sessions, order, cwds, splits and each pane's claude session id, close it, and recreate it with every claude resumed where it left off. For workspaces that are done for now but not done for good.","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-archive\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"agterm archive","archive","terminal","close","later","id","disk","Bash","done","now","restore","sessions","good","session","trigger","workspaces","project","get","remember","back","2026-11-10 10:12:30",false,"---\nname: agterm-archive\ndescription: >\n  Park a whole agterm workspace on disk and bring it back later — snapshot its sessions,\n  order, cwds, splits and each pane's claude session id, close it, and recreate it with\n  every claude resumed where it left off. For workspaces that are done for now but not\n  done for good.\nwhen_to_use: >\n  Trigger on: agterm-archive, \u002Fagterm-archive, \"archive this workspace\", \"close the workspace\n  but remember it\", \"bring the workspace back from the archive\", \"get this project out of the\n  terminal\", archive a workspace, restore an archived workspace, park a project.\nallowed-tools: [Bash]\n---\n\n# agterm-archive\n\nOnly inside agterm. Session ids come from the `agterm-backup` capture hook — without it an\nagent pane comes back as a plain shell. Claude and Codex panes are both handled; the\nrestore types `claude --resume \u003Cid>` or `codex resume \u003Cid>` accordingly.\n\n```bash\nagterm-archive archive [workspace]   # snapshot + close a whole workspace (default: active)\nagterm-archive session [target]      # snapshot + close ONE session (default: active)\nagterm-archive list                  # what is parked, both kinds\nagterm-archive restore \u003Cname>        # recreate it, resume the agents\nagterm-archive drop \u003Cname>           # forget an archive\nagterm-archive install               # add the palette entries (cmd+ctrl+a>a \u002F cmd+ctrl+a>r)\nagterm-archive uninstall             # remove them\n```\n\n`install` writes `~\u002F.local\u002Fbin\u002Fagterm-archive` and a managed block in\n`~\u002F.config\u002Fagterm\u002Fkeymap.conf` with two custom commands: **Archive workspace**\n(`cmd+ctrl+a>a`, archives the workspace the cursor is in, passing `$AGT_WORKSPACE_ID`) and\n**Archive session** (`cmd+ctrl+a>s`, archives just the session under the cursor) and\n**Restore archive** (`cmd+ctrl+a>r`, lists both kinds in agterm's native fuzzy picker — rows\nread `workspace: name` \u002F `session: workspace \u002F name` — and restores the pick). The wrapper resolves the newest installed copy of the skill at call\ntime, because the plugin cache path carries a commit sha.\n\nThe plugin's `bin\u002F` is on `PATH` inside a Claude Code session, so run it by name.\nWorkspace archives live in `~\u002F.agterm-backup\u002Farchives\u002F\u003Cname>.json`, single sessions in\n`archives\u002Fsessions\u002F\u003Cworkspace>--\u003Csession>.json`, the run log in\n`~\u002F.agterm-backup\u002Farchive.log` — palette commands print nowhere else.\n\n- `archive` records every session's name, cwd, title, order, split (axis + ratio) and, per pane,\n  the claude session id plus its launch flags. Then `agtermctl workspace delete`. It refuses\n  to archive the workspace it is running in — that would kill the caller — and warns when a\n  claude pane has no captured id. `--keep` snapshots without closing. A name that is already\n  archived is saved as `\u003Cname>_1`, `_2`, … (the restored workspace or session keeps its\n  original name); `--force` overwrites instead.\n- `session` archives one session out of a workspace the same way, and remembers which\n  workspace it came from. `restore` puts it back there, creating the workspace if it is\n  gone. Same refusal to close the session it is running in, same `--keep`\u002F`--force`.\n- `restore` recreates the sessions in order (`session new --workspace-name … --create-workspace`),\n  re-opens each split at its old ratio, and types `claude --resume \u003Cid> \u003Cflags>` into each\n  pane that had one. `--no-boot` leaves plain shells; `--keep` keeps the archive file\n  (otherwise a successful restore consumes it); `--force` restores into an already-open\n  workspace.\n- After booting a claude, `restore` waits for its \"resume full session as-is \u002F from\n  summary\" question and answers **2** (full session) — the same reason you restored it.\n  `--answer-choice 1` \u002F `--no-answer` change that.\n- Non-claude panes come back as shells in the right cwd. Whatever process they ran is gone —\n  a snapshot is not a checkpoint.\n\nThis is a separate concern from `agterm-backup`: that one covers what is currently open\nacross a restart, this one covers what you deliberately closed. A restored workspace is\nlive again, so the hook re-records it and backup picks it up from there.\n","# agterm-archive\n\nOnly inside agterm. Session ids come from the `agterm-backup` capture hook — without it an\nagent pane comes back as a plain shell. Claude and Codex panes are both handled; the\nrestore types `claude --resume \u003Cid>` or `codex resume \u003Cid>` accordingly.\n\n```bash\nagterm-archive archive [workspace]   # snapshot + close a whole workspace (default: active)\nagterm-archive session [target]      # snapshot + close ONE session (default: active)\nagterm-archive list                  # what is parked, both kinds\nagterm-archive restore \u003Cname>        # recreate it, resume the agents\nagterm-archive drop \u003Cname>           # forget an archive\nagterm-archive install               # add the palette entries (cmd+ctrl+a>a \u002F cmd+ctrl+a>r)\nagterm-archive uninstall             # remove them\n```\n\n`install` writes `~\u002F.local\u002Fbin\u002Fagterm-archive` and a managed block in\n`~\u002F.config\u002Fagterm\u002Fkeymap.conf` with two custom commands: **Archive workspace**\n(`cmd+ctrl+a>a`, archives the workspace the cursor is in, passing `$AGT_WORKSPACE_ID`) and\n**Archive session** (`cmd+ctrl+a>s`, archives just the session under the cursor) and\n**Restore archive** (`cmd+ctrl+a>r`, lists both kinds in agterm's native fuzzy picker — rows\nread `workspace: name` \u002F `session: workspace \u002F name` — and restores the pick). The wrapper resolves the newest installed copy of the skill at call\ntime, because the plugin cache path carries a commit sha.\n\nThe plugin's `bin\u002F` is on `PATH` inside a Claude Code session, so run it by name.\nWorkspace archives live in `~\u002F.agterm-backup\u002Farchives\u002F\u003Cname>.json`, single sessions in\n`archives\u002Fsessions\u002F\u003Cworkspace>--\u003Csession>.json`, the run log in\n`~\u002F.agterm-backup\u002Farchive.log` — palette commands print nowhere else.\n\n- `archive` records every session's name, cwd, title, order, split (axis + ratio) and, per pane,\n  the claude session id plus its launch flags. Then `agtermctl workspace delete`. It refuses\n  to archive the workspace it is running in — that would kill the caller — and warns when a\n  claude pane has no captured id. `--keep` snapshots without closing. A name that is already\n  archived is saved as `\u003Cname>_1`, `_2`, … (the restored workspace or session keeps its\n  original name); `--force` overwrites instead.\n- `session` archives one session out of a workspace the same way, and remembers which\n  workspace it came from. `restore` puts it back there, creating the workspace if it is\n  gone. Same refusal to close the session it is running in, same `--keep`\u002F`--force`.\n- `restore` recreates the sessions in order (`session new --workspace-name … --create-workspace`),\n  re-opens each split at its old ratio, and types `claude --resume \u003Cid> \u003Cflags>` into each\n  pane that had one. `--no-boot` leaves plain shells; `--keep` keeps the archive file\n  (otherwise a successful restore consumes it); `--force` restores into an already-open\n  workspace.\n- After booting a claude, `restore` waits for its \"resume full session as-is \u002F from\n  summary\" question and answers **2** (full session) — the same reason you restored it.\n  `--answer-choice 1` \u002F `--no-answer` change that.\n- Non-claude panes come back as shells in the right cwd. Whatever process they ran is gone —\n  a snapshot is not a checkpoint.\n\nThis is a separate concern from `agterm-backup`: that one covers what is currently open\nacross a restart, this one covers what you deliberately closed. A restored workspace is\nlive again, so the hook re-records it and backup picks it up from there.\n",{"name":5,"description":44,"when_to_use":45,"allowed-tools":46},"Park a whole agterm workspace on disk and bring it back later — snapshot its sessions, order, cwds, splits and each pane's claude session id, close it, and recreate it with every claude resumed where it left off. For workspaces that are done for now but not done for good.\n","Trigger on: agterm-archive, \u002Fagterm-archive, \"archive this workspace\", \"close the workspace but remember it\", \"bring the workspace back from the archive\", \"get this project out of the terminal\", archive a workspace, restore an archived workspace, park a project.\n",[26],"main","8597827abba73af29e28fd809de618343179deba","plugins\u002Fbos\u002Fskills\u002Fagterm-archive","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills","https:\u002F\u002Fgithub.com\u002Fisachivka","2026-11-11 04:25:51",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add isachivka\u002Fbeware-of-skills --skill agterm-archive",{"tool":59,"command":60},"bunx","bunx skills add isachivka\u002Fbeware-of-skills --skill agterm-archive",{"tool":62,"command":63},"pnpm","pnpm dlx skills add isachivka\u002Fbeware-of-skills --skill agterm-archive","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fagterm-archive\u002FSKILL.md",true,[67],{"path":5,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"OTHER","其他",28790,"https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fagterm-archive\u002Fagterm-archive",[73,99,130,150,174,195],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":39},"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",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[85,86,87,88,26,89,90,91,92,93,94,95,96,33,97,98],"yt dub","browser","Video","Audio","voice","only","youtube","translation","russian","plex","drop","as","link","it",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":113,"publishedAt":39},"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",[105,108],{"categoryNo":106,"categoryName":107,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[114,115,116,117,118,119,120,26,121,122,123,124,125,96,126,24,33,127,128,129],"codex","proxy","codex proxy","uninstall","debug","run","api","model","check","use","provider","chat","app","apps","post","processing",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":137,"publishedAt":39},"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",[136],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},[138,139,140,141,142,143,26,144,145,146,147,92,93,38,148,33,149],"revdiff ru","review","translate","code","file","open","annotations","command","diff","files","map","line",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":159,"publishedAt":39},"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",[156],{"categoryNo":157,"categoryName":158,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",[160,125,161,114,162,26,163,164,165,166,167,123,168,90,169,170,171,172,98,173],"peer","peer chat","second opinion","grep","work","prompt","read","user","never","build","do","task","message","agterm",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":181,"publishedAt":39},"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",[180],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},[139,182,183,184,185,141,186,187,26,188,166,189,190,123,191,192,193,194,35,33],"memory","memory review","directory","go","agent memory","audit","prune","write","edit","up","stale","clean","memories",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":203,"publishedAt":39},"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",[201,202],{"categoryNo":157,"categoryName":158,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},[197,204,141,205,26,206,207,208,209,146,90,191,193,95,96,33,210,28,211,212],"ai agent","guard","sweep","history","branch","remove","scope","narrative","restate"]