[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CD3R7JK591T3GMP0ECJCJ7":3,"skill-same:01M6CD3R7JK591T3GMP0ECJCJ7":75},{"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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M6CD3R7JK591T3GMP0ECJCJ7","tmux",null,"Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.","cercova-studios\u002F10x-swe","cercova-studios","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F217108198?v=4","01M6CCYGHXTH80N3BXRW6KESTE","Cercova Studios","01M6CCYGPADH5MJDR0VNNR775C",1,"MIT","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ftmux\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31],"python","sessions","plugin","10x","interactive","scraping","gdb","control","output","remote","for","SWE","remote control","2026-11-10 10:12:30",false,"---\nname: tmux\ndescription: Remote control tmux sessions for interactive CLIs (python, gdb, etc.)\n  by sending keystrokes and scraping pane output.\nlicense: MIT\nmetadata:\n  skill-graph-id: plugin\u002F10x-swe\u002Ftmux\n  skill-graph-uses: ''\n  skill-graph-used-by: ''\n---\n\n# tmux Skill\n\nUse tmux as a programmable terminal multiplexer for interactive work. Works on Linux and macOS with stock tmux; avoid custom config by using a private socket.\n\n## Quickstart (isolated socket)\n\n```bash\nSOCKET_DIR=${TMPDIR:-\u002Ftmp}\u002Fagent-tmux-sockets  # well-known dir for all agent sockets\nmkdir -p \"$SOCKET_DIR\"\nSOCKET=\"$SOCKET_DIR\u002Fagent.sock\"                # keep agent sessions separate from your personal tmux\nSESSION=agent-python                           # slug-like names; avoid spaces\ntmux -S \"$SOCKET\" new -d -s \"$SESSION\" -n shell\ntmux -S \"$SOCKET\" send-keys -t \"$SESSION\":0.0 -- 'python3 -q' Enter\ntmux -S \"$SOCKET\" capture-pane -p -J -t \"$SESSION\":0.0 -S -200  # watch output\ntmux -S \"$SOCKET\" kill-session -t \"$SESSION\"                   # clean up\n```\n\nAfter starting a session ALWAYS tell the user how to monitor the session by giving them a command to copy paste:\n\n```\nTo monitor this session yourself:\n  tmux -S \"$SOCKET\" attach -t agent-lldb\n\nOr to capture the output once:\n  tmux -S \"$SOCKET\" capture-pane -p -J -t agent-lldb:0.0 -S -200\n```\n\nThis must ALWAYS be printed right after a session was started and once again at the end of the tool loop.  But the earlier you send it, the happier the user will be.\n\n## Socket convention\n\n- Agents MUST place tmux sockets under `AGENT_TMUX_SOCKET_DIR` (defaults to `${TMPDIR:-\u002Ftmp}\u002Fagent-tmux-sockets`) and use `tmux -S \"$SOCKET\"` so we can enumerate\u002Fclean them. Create the dir first: `mkdir -p \"$AGENT_TMUX_SOCKET_DIR\"`.\n- Default socket path to use unless you must isolate further: `SOCKET=\"$AGENT_TMUX_SOCKET_DIR\u002Fagent.sock\"`.\n\n## Targeting panes and naming\n\n- Target format: `{session}:{window}.{pane}`, defaults to `:0.0` if omitted. Keep names short (e.g., `agent-py`, `agent-gdb`).\n- Use `-S \"$SOCKET\"` consistently to stay on the private socket path. If you need user config, drop `-f \u002Fdev\u002Fnull`; otherwise `-f \u002Fdev\u002Fnull` gives a clean config.\n- Inspect: `tmux -S \"$SOCKET\" list-sessions`, `tmux -S \"$SOCKET\" list-panes -a`.\n\n## Finding sessions\n\n- List sessions on your active socket with metadata: `.\u002Fscripts\u002Ffind-sessions.sh -S \"$SOCKET\"`; add `-q partial-name` to filter.\n- Scan all sockets under the shared directory: `.\u002Fscripts\u002Ffind-sessions.sh --all` (uses `AGENT_TMUX_SOCKET_DIR` or `${TMPDIR:-\u002Ftmp}\u002Fagent-tmux-sockets`).\n\n## Sending input safely\n\n- Prefer literal sends to avoid shell splitting: `tmux -S \"$SOCKET\" send-keys -t target -l -- \"$cmd\"`\n- When composing inline commands, use single quotes or ANSI C quoting to avoid expansion: `tmux ... send-keys -t target -- $'python3 -m http.server 8000'`.\n- To send control keys: `tmux ... send-keys -t target C-c`, `C-d`, `C-z`, `Escape`, etc.\n\n## Watching output\n\n- Capture recent history (joined lines to avoid wrapping artifacts): `tmux -S \"$SOCKET\" capture-pane -p -J -t target -S -200`.\n- For continuous monitoring, poll with the helper script (below) instead of `tmux wait-for` (which does not watch pane output).\n- You can also temporarily attach to observe: `tmux -S \"$SOCKET\" attach -t \"$SESSION\"`; detach with `Ctrl+b d`.\n- When giving instructions to a user, **explicitly print a copy\u002Fpaste monitor command** alongside the action don't assume they remembered the command.\n\n## Spawning Processes\n\nSome special rules for processes:\n\n- when asked to debug, use lldb by default\n- when starting a python interactive shell, always set the `PYTHON_BASIC_REPL=1` environment variable. This is very important as the non-basic console interferes with your send-keys.\n\n## Synchronizing \u002F waiting for prompts\n\n- Use timed polling to avoid races with interactive tools. Example: wait for a Python prompt before sending code:\n  ```bash\n  bash scripts\u002Fwait-for-text.sh -S \"$SOCKET\" -t \"$SESSION\":0.0 -p '^>>>' -T 15 -l 4000\n  ```\n- For long-running commands, poll for completion text (`\"Type quit to exit\"`, `\"Program exited\"`, etc.) before proceeding.\n\n## Interactive tool recipes\n\n- **Python REPL**: `tmux ... send-keys -- 'python3 -q' Enter`; wait for `^>>>`; send code with `-l`; interrupt with `C-c`. Always with `PYTHON_BASIC_REPL`.\n- **gdb**: `tmux ... send-keys -- 'gdb --quiet .\u002Fa.out' Enter`; disable paging `tmux ... send-keys -- 'set pagination off' Enter`; break with `C-c`; issue `bt`, `info locals`, etc.; exit via `quit` then confirm `y`.\n- **Other TTY apps** (ipdb, psql, mysql, node, bash): same pattern—start the program, poll for its prompt, then send literal text and Enter.\n\n## Cleanup\n\n- Kill a session when done: `tmux -S \"$SOCKET\" kill-session -t \"$SESSION\"`.\n- Kill all sessions on a socket: `tmux -S \"$SOCKET\" list-sessions -F '#{session_name}' | xargs -r -n1 tmux -S \"$SOCKET\" kill-session -t`.\n- Remove everything on the private socket: `tmux -S \"$SOCKET\" kill-server`.\n\n## Helper: wait-for-text.sh\n\n`scripts\u002Fwait-for-text.sh` polls a pane for a regex (or fixed string) with a timeout. Works on Linux\u002FmacOS with bash + tmux + grep.\n\n```bash\nbash scripts\u002Fwait-for-text.sh -S \"$SOCKET\" -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]\n```\n\n- `-t`\u002F`--target` pane target (required)\n- `-p`\u002F`--pattern` regex to match (required); add `-F` for fixed string\n- `-T` timeout seconds (integer, default 15)\n- `-i` poll interval seconds (default 0.5)\n- `-l` history lines to search from the pane (integer, default 1000)\n- Exits 0 on first match, 1 on timeout. On failure prints the last captured text to stderr to aid debugging.\n","# tmux Skill\n\nUse tmux as a programmable terminal multiplexer for interactive work. Works on Linux and macOS with stock tmux; avoid custom config by using a private socket.\n\n## Quickstart (isolated socket)\n\n```bash\nSOCKET_DIR=${TMPDIR:-\u002Ftmp}\u002Fagent-tmux-sockets  # well-known dir for all agent sockets\nmkdir -p \"$SOCKET_DIR\"\nSOCKET=\"$SOCKET_DIR\u002Fagent.sock\"                # keep agent sessions separate from your personal tmux\nSESSION=agent-python                           # slug-like names; avoid spaces\ntmux -S \"$SOCKET\" new -d -s \"$SESSION\" -n shell\ntmux -S \"$SOCKET\" send-keys -t \"$SESSION\":0.0 -- 'python3 -q' Enter\ntmux -S \"$SOCKET\" capture-pane -p -J -t \"$SESSION\":0.0 -S -200  # watch output\ntmux -S \"$SOCKET\" kill-session -t \"$SESSION\"                   # clean up\n```\n\nAfter starting a session ALWAYS tell the user how to monitor the session by giving them a command to copy paste:\n\n```\nTo monitor this session yourself:\n  tmux -S \"$SOCKET\" attach -t agent-lldb\n\nOr to capture the output once:\n  tmux -S \"$SOCKET\" capture-pane -p -J -t agent-lldb:0.0 -S -200\n```\n\nThis must ALWAYS be printed right after a session was started and once again at the end of the tool loop.  But the earlier you send it, the happier the user will be.\n\n## Socket convention\n\n- Agents MUST place tmux sockets under `AGENT_TMUX_SOCKET_DIR` (defaults to `${TMPDIR:-\u002Ftmp}\u002Fagent-tmux-sockets`) and use `tmux -S \"$SOCKET\"` so we can enumerate\u002Fclean them. Create the dir first: `mkdir -p \"$AGENT_TMUX_SOCKET_DIR\"`.\n- Default socket path to use unless you must isolate further: `SOCKET=\"$AGENT_TMUX_SOCKET_DIR\u002Fagent.sock\"`.\n\n## Targeting panes and naming\n\n- Target format: `{session}:{window}.{pane}`, defaults to `:0.0` if omitted. Keep names short (e.g., `agent-py`, `agent-gdb`).\n- Use `-S \"$SOCKET\"` consistently to stay on the private socket path. If you need user config, drop `-f \u002Fdev\u002Fnull`; otherwise `-f \u002Fdev\u002Fnull` gives a clean config.\n- Inspect: `tmux -S \"$SOCKET\" list-sessions`, `tmux -S \"$SOCKET\" list-panes -a`.\n\n## Finding sessions\n\n- List sessions on your active socket with metadata: `.\u002Fscripts\u002Ffind-sessions.sh -S \"$SOCKET\"`; add `-q partial-name` to filter.\n- Scan all sockets under the shared directory: `.\u002Fscripts\u002Ffind-sessions.sh --all` (uses `AGENT_TMUX_SOCKET_DIR` or `${TMPDIR:-\u002Ftmp}\u002Fagent-tmux-sockets`).\n\n## Sending input safely\n\n- Prefer literal sends to avoid shell splitting: `tmux -S \"$SOCKET\" send-keys -t target -l -- \"$cmd\"`\n- When composing inline commands, use single quotes or ANSI C quoting to avoid expansion: `tmux ... send-keys -t target -- $'python3 -m http.server 8000'`.\n- To send control keys: `tmux ... send-keys -t target C-c`, `C-d`, `C-z`, `Escape`, etc.\n\n## Watching output\n\n- Capture recent history (joined lines to avoid wrapping artifacts): `tmux -S \"$SOCKET\" capture-pane -p -J -t target -S -200`.\n- For continuous monitoring, poll with the helper script (below) instead of `tmux wait-for` (which does not watch pane output).\n- You can also temporarily attach to observe: `tmux -S \"$SOCKET\" attach -t \"$SESSION\"`; detach with `Ctrl+b d`.\n- When giving instructions to a user, **explicitly print a copy\u002Fpaste monitor command** alongside the action don't assume they remembered the command.\n\n## Spawning Processes\n\nSome special rules for processes:\n\n- when asked to debug, use lldb by default\n- when starting a python interactive shell, always set the `PYTHON_BASIC_REPL=1` environment variable. This is very important as the non-basic console interferes with your send-keys.\n\n## Synchronizing \u002F waiting for prompts\n\n- Use timed polling to avoid races with interactive tools. Example: wait for a Python prompt before sending code:\n  ```bash\n  bash scripts\u002Fwait-for-text.sh -S \"$SOCKET\" -t \"$SESSION\":0.0 -p '^>>>' -T 15 -l 4000\n  ```\n- For long-running commands, poll for completion text (`\"Type quit to exit\"`, `\"Program exited\"`, etc.) before proceeding.\n\n## Interactive tool recipes\n\n- **Python REPL**: `tmux ... send-keys -- 'python3 -q' Enter`; wait for `^>>>`; send code with `-l`; interrupt with `C-c`. Always with `PYTHON_BASIC_REPL`.\n- **gdb**: `tmux ... send-keys -- 'gdb --quiet .\u002Fa.out' Enter`; disable paging `tmux ... send-keys -- 'set pagination off' Enter`; break with `C-c`; issue `bt`, `info locals`, etc.; exit via `quit` then confirm `y`.\n- **Other TTY apps** (ipdb, psql, mysql, node, bash): same pattern—start the program, poll for its prompt, then send literal text and Enter.\n\n## Cleanup\n\n- Kill a session when done: `tmux -S \"$SOCKET\" kill-session -t \"$SESSION\"`.\n- Kill all sessions on a socket: `tmux -S \"$SOCKET\" list-sessions -F '#{session_name}' | xargs -r -n1 tmux -S \"$SOCKET\" kill-session -t`.\n- Remove everything on the private socket: `tmux -S \"$SOCKET\" kill-server`.\n\n## Helper: wait-for-text.sh\n\n`scripts\u002Fwait-for-text.sh` polls a pane for a regex (or fixed string) with a timeout. Works on Linux\u002FmacOS with bash + tmux + grep.\n\n```bash\nbash scripts\u002Fwait-for-text.sh -S \"$SOCKET\" -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]\n```\n\n- `-t`\u002F`--target` pane target (required)\n- `-p`\u002F`--pattern` regex to match (required); add `-F` for fixed string\n- `-T` timeout seconds (integer, default 15)\n- `-i` poll interval seconds (default 0.5)\n- `-l` history lines to search from the pane (integer, default 1000)\n- Exits 0 on first match, 1 on timeout. On failure prints the last captured text to stderr to aid debugging.\n",{"name":5,"license":15,"metadata":37,"description":7},{"skill-graph-id":38,"skill-graph-uses":39,"skill-graph-used-by":39},"plugin\u002F10x-swe\u002Ftmux","","main","12441d84a8a292fcc94f47bc98877cbefd9b52e2","plugins\u002F10x-swe\u002Fskills\u002Ftmux",0,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe","https:\u002F\u002Fgithub.com\u002Fcercova-studios","2026-11-12 00:33:06",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add cercova-studios\u002F10x-swe --skill tmux",{"tool":53,"command":54},"bunx","bunx skills add cercova-studios\u002F10x-swe --skill tmux",{"tool":56,"command":57},"pnpm","pnpm dlx skills add cercova-studios\u002F10x-swe --skill tmux","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ftmux\u002FSKILL.md",true,[61,67,71],{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"scripts\u002Ffind-sessions.sh","SCRIPT","脚本",2936,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ftmux\u002Fscripts\u002Ffind-sessions.sh",{"path":68,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":69,"sourceHtmlUrl":70},"scripts\u002Fwait-for-text.sh",2567,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ftmux\u002Fscripts\u002Fwait-for-text.sh",{"path":72,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":73,"sourceHtmlUrl":74},"tests\u002Ftest_private_socket.py",1805,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ftmux\u002Ftests\u002Ftest_private_socket.py",[76,115,153,173,191,203],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":80,"licenseFileUrl":81,"sourceHtmlUrl":82,"categories":83,"keywords":89,"publishedAt":32},"01M6CD3T6EQ9N5KPNXCM6ABHVA","turnstile-spin","Set up Cloudflare Turnstile end-to-end in a project. Scan the codebase, create the widget via the Cloudflare API, embed it where user requests need bot verification (form submissions, SPA actions, API endpoints, download links, comment or vote submissions, etc.), wire canonical server-side siteverify in the customer's existing backend, validate, and persist the skill. Load this when a user asks to add Turnstile, set up CAPTCHA, protect a form or endpoint from bots, or fix a Turnstile integration. Uses Cloudflare's documented Turnstile contract.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fturnstile-spin\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fturnstile-spin\u002FSKILL.md",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[90,91,92,93,94,95,96,97,98,99,100,101,102,103,21,104,105,106,107,108,109,110,111,112,113,30,114],"turnstile spin","SET","nextjs","actions","up","fix","cloudflare","bot","api","permissions","create","astro","server","verification","endpoints","customer","backend","sveltekit","integration","app","bots","spa","project","end","when",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":80,"licenseFileUrl":119,"sourceHtmlUrl":120,"categories":121,"keywords":133,"publishedAt":32},"01M6CD0BJYRNV610HYYPX933RE","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[122,125,128],{"categoryNo":123,"categoryName":124,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":126,"categoryName":127,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[134,135,136,100,137,138,139,140,141,142,143,144,145,146,147,148,149,114,150,151,152],"frontend design","frontend","design","web","quality","applications","creative","web components","Production","use","code","components","user","generic","aesthetics","pages","with","high","build",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":32},"01M6CD4QX8C4DST98AY21HEYCM","source-insights","Prepare inspected source evidence, preserve exact citations, and publish reviewed insights into an explicit local library.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fsource-insights\u002FSKILL.md",[],[160,161,162,163,164,165,166,167,168,169,170,171,172],"source insights","insights","source","publish","Citations","evidence","library","workflows","prepare","session","global","local","preserve",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":182,"publishedAt":32},"01M6CD4N1HVNC1EXPEBZT7YS31","skill-graph","Discover skills and workflows through independent lexical search, relationship paths and a terminal graph.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fskill-graph\u002FSKILL.md",[179],{"categoryNo":180,"categoryName":181,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000023","Skill与智能体开发",[183,184,21,167,185,22,186,170,187,188,189,30,190],"graph","skill graph","terminal","search","discover skills","discover","paths","relationship",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":197,"publishedAt":32},"01M6CD4HQKXNZ57YEGD8QVK6Z6","session-search","Recall public session turns with exact provenance, bounded excerpts and independent piped exports.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fsession-search\u002FSKILL.md",[],[186,169,198,199,167,200,201,170,150,161,162,202],"session search","public","provenance","recall","bounded",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":215,"publishedAt":32},"01M6CD4ET7DVNBYPDAMAYMSK2T","newsletter","Produce a private local AI newsletter from bounded public research, with cited deep dives, HTML\u002FMarkdown output, Dagu scheduling and seven-day retention.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fnewsletter\u002FSKILL.md",[209,212],{"categoryNo":210,"categoryName":211,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":213,"categoryName":214,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000021","资料检索与研究",[205,216,217,218,219,199,167,220,221,222,223,170,150,224,225,171,202,27],"local ai","dagu","produce","research","markdown","scheduling","html","daily","deep","retention"]