long-context-shell — 长上下文Shell
v0.0.1运行长时间或连续的Shell命令,支持文件日志记录、截断预览和快速日志扫描。当Shell输出可能很大、持续运行或难以直接检查时调用此技能。
1· 89·0 当前·0 累计
安全扫描
OpenClaw
安全
high confidence该技能的代码、指令和需求内部一致:它运行Shell命令,在临时目录下写入文件日志,提供peek/scan/stop操作,且不请求无关的凭证或网络访问。
评估建议
该技能看起来是连贯的并实现了其承诺的功能:执行用户提供的Shell命令,将带时间戳的日志写入临时文件夹,提供截断的预览,扫描常见错误模式,并停止后台会话。在安装或调用之前,请考虑:(1)它将执行您传递的任何命令(Unix上的shell -lc或Windows上的PowerShell)——除非您明确批准,否则避免发送破坏性或特权命令;(2)它将日志和会话状态存储在系统临时目录下(trae-long-context-shell)——如需要请删除陈旧的会话/日志;(3)不请求凭证,但该技能使用代理进程的操作系统权限运行,因此请确保代理在适当的沙箱中运行;(4)如果您需要更严格的安全保障,请在本地查看handler.js代码或在安全环境中运行包含的测试以确认行为。总体而言该技能内部是一致的,但由于它执行任意Shell命令,请保持 usual caution。...详细分析 ▾
✓ 用途与能力
该技能的名称和描述(带文件日志和扫描的长时间运行的Shell命令)与提供的代码和SKILL.md相匹配。处理程序生成Shell进程,将stdout/stderr带时间戳写入日志文件,跟踪会话,提供peek/scan/stop工具,并包含测试这些功能——这都是该目的的预期行为。
ℹ 指令范围
SKILL.md和代码都指示代理通过平台Shell执行任意Shell命令,并将日志和会话状态持久化到tmp目录下。这对于Shell监控工具来说是预期的,但它固有地授予该技能执行用户提供的任何命令的能力。README包含安全指导(破坏性命令前需询问),但代码不强制执行单独的批准步骤——执行权留给代理/所有者。用户应该意识到,如果代理被指示(或允许)运行破坏性或提权命令,这些命令将以代理的操作系统用户权限运行。
✓ 安装机制
没有安装规范(仅指令技能,带有捆绑代码)。不需要外部下载或包安装。代码从技能包运行并写入临时目录,这是一种低风险的安装模式。
✓ 凭证需求
该技能不请求环境变量、凭证或配置路径。代码仅在os.tmpdir()下写入/读取会话和日志文件,并使用标准Node API。不请求或使用外部服务凭证。
ℹ 持久化与权限
该技能将会话JSON和日志文件持久化到专用临时目录(os.tmpdir()/trae-long-context-shell)。它没有标记always:true。允许自主调用(默认),这对于技能来说是正常的;结合执行任意Shell命令的能力,这意味着具有此技能的代理可以在获得授权的情况下运行命令,而无需额外的安装时提示。没有证据表明该技能修改其他技能或系统配置。
⚠ handler.js:169
检测到Shell命令执行(child_process)。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv0.0.12026/3/25
long-context-shell技能的初始版本发布。- 使用文件日志和截断预览运行长时间或连续的Shell命令。- 监控、peek、扫描和停止运行中的会话,以便更轻松地管理大型或实时Shell输出。- 紧凑的状态卡总结进度;避免转储原始命令输出。- 提供快速日志扫描以查找可能的错误、警告和故障。- 提供灵活的日志预览和基于时间戳的查询,以便高效检查。- 包含安全性和推荐的工作流程指导,以防止意外的破坏性操作。
● 可疑
安装命令 点击复制
官方npx clawhub@latest install long-context-shell
镜像加速npx clawhub@latest install long-context-shell --registry https://cn.clawhub-mirror.com
技能文档
当Shell命令可能产生大量输出、持续运行、持续刷新或需要结构化监控而非原始stdout时,请使用此技能。
调用时机
- 命令可能打印超过一屏的输出
- 命令可能运行很长时间
- 命令可能持续流式输出,例如
watch、top、tail -f、ping或日志跟随器 - 命令失败且您需要轻量级扫描而非手动查看大型日志
核心行为
- 始终将stdout和stderr写入带时间戳的日志文件
- 返回紧凑的状态卡而非原始完整输出
- 默认截断长预览并指向日志文件以进行深度检查
- 保留时间戳以便您可以检查最新状态或特定时间窗口
- 提供轻量级扫描步骤以定位可能的错误、警告和故障
工具
long_context_shell_run
使用文件日志在分离进程中运行Shell命令。
输入
command(string, 必填): 要运行的Shell命令waitMs(number, 可选): 返回初始状态卡前等待的时间background(boolean, 可选): 强制监控优先模式并快速返回以便后续peekheadLines(number, 可选): 从日志开头显示的行数tailLines(number, 可选): 从日志结尾显示的行数
行为
- 通过平台Shell启动命令
- 将stdout和stderr带时间戳写入日志文件
- 如果
background为true,优先短时间初始等待并快速返回控制 - 返回包含会话ID、日志路径、行数、字节数、状态、后台模式和截断预览的状态卡
- 如果命令仍在运行,稍后使用
long_context_shell_peek而非重新运行命令
long_context_shell_peek
读取现有会话或日志文件的最新状态。
输入
sessionId(string, 可选): 之前返回的会话IDlogPath(string, 可选): 如果会话ID不可用,直接指定日志文件路径headLines(number, 可选): 从开头显示的行数tailLines(number, 可选): 从结尾显示的行数timeQuery(string, 可选): 用于过滤行的时间戳片段,例如2026-03-24T10:15
行为
- 解析会话或日志文件
- 检测进程是否仍在运行或已退出
- 返回包含截断预览的紧凑状态卡
- 如果存在
timeQuery,返回与该时间戳片段匹配的行
long_context_shell_scan
扫描大型日志以查找可能的故障,而非手动阅读完整文件。
输入
sessionId(string, 可选): 之前返回的会话IDlogPath(string, 可选): 直接指定日志文件路径patterns(array of strings, 可选): 自定义匹配模式contextLines(number, 可选): 每个匹配周围包含的周围行数limit(number, 可选): 返回的最大匹配数
行为
- 在日志中搜索强烈的故障信号,如
error、exception、failed、fatal和timeout - 按严重性排序匹配,使可能的根本原因行出现在通用警告之前
- 返回最强匹配,包含行号、严重性和简短上下文
- 当输出很大时,优先使用此工具而非手动完整日志检查
long_context_shell_stop
当不再需要监控时停止运行中的会话。
输入
sessionId(string, 必填): 要停止的会话
推荐工作流程
- 对长时间或连续命令使用
long_context_shell_run - 如果状态为
running,使用long_context_shell_peek监控进度 - 如果状态为
failed或预览太短无法解释问题,使用long_context_shell_scan - 仅当扫描仍然留下重要歧义时手动阅读完整日志
调试技巧
- 从小的
waitMs开始并在增加复杂性前检查第一个状态卡 - 如果命令预期持续运行,设置
background: true并用重复的long_context_shell_peek观察 - 使用
startedAt时间戳前缀的timeQuery缩放到可疑的时间片,而无需阅读整个日志 - 如果
preview被截断,将logPath作为真实来源,并在打开整个文件前使用scan - 如果
scan遗漏了真正的问题,使用与您正在调试的工具链、框架或服务匹配的自定义patterns重试 - 当Shell引用变得棘手时,首先在终端中直接验证原始命令,然后将精确的命令字符串移入
long_context_shell_run - 调试跨Shell行为时,优先使用简短的自包含重放命令,如
node -e或小型脚本文件 - 请记住,Shell语法在Unix和Windows之间可能不同,因此使用管道、重定向或引用的命令可能需要特定于平台的形式
- 对于连续命令,始终用
long_context_shell_stop结束调试循环,以免旧会话在后台持续运行 - 要查看人类可读的端到端场景,请运行
node manual-flow-test.js并检查打印的状态卡和扫描输出
安全
- 未经用户明确批准,不要运行破坏性命令
- 在使用删除文件、重新格式化磁盘、重启机器或提权的命令之前请先询问
- 当输出很大时,优先使用
long_context_shell_scan而非手动完整日志检查 - 当连续命令不再需要时使用
long_context_shell_stop,特别是对于tail -f、watch或类似的监控会话
示例
- 长时间构建:
long_context_shell_run({ command: "npm run build", waitMs: 1500 })
- 连续输出:
long_context_shell_run({ command: "tail -f app.log", background: true, waitMs: 500 })
- 检查最新状态:
long_context_shell_peek({ sessionId: "..." })
- 检查特定时间戳:
long_context_shell_peek({ sessionId: "...", timeQuery: "2026-03-24T10:15" })
- 扫描故障:
long_context_shell_scan({ sessionId: "..." })
- 人类可读流程测试:
node manual-flow-test.js数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制