首页龙虾技能列表 › long-context-shell — 长上下文Shell

long-context-shell — 长上下文Shell

v0.0.1

运行长时间或连续的Shell命令,支持文件日志记录、截断预览和快速日志扫描。当Shell输出可能很大、持续运行或难以直接检查时调用此技能。

1· 89·0 当前·0 累计
by @qipengguo (QipengGuo)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/3/25
安全扫描
VirusTotal
可疑
查看报告
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)。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

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时,请使用此技能。

调用时机

  • 命令可能打印超过一屏的输出
  • 命令可能运行很长时间
  • 命令可能持续流式输出,例如 watchtoptail -fping 或日志跟随器
  • 命令失败且您需要轻量级扫描而非手动查看大型日志

核心行为

  • 始终将stdout和stderr写入带时间戳的日志文件
  • 返回紧凑的状态卡而非原始完整输出
  • 默认截断长预览并指向日志文件以进行深度检查
  • 保留时间戳以便您可以检查最新状态或特定时间窗口
  • 提供轻量级扫描步骤以定位可能的错误、警告和故障

工具

long_context_shell_run

使用文件日志在分离进程中运行Shell命令。

输入

  • command (string, 必填): 要运行的Shell命令
  • waitMs (number, 可选): 返回初始状态卡前等待的时间
  • background (boolean, 可选): 强制监控优先模式并快速返回以便后续peek
  • headLines (number, 可选): 从日志开头显示的行数
  • tailLines (number, 可选): 从日志结尾显示的行数

行为

  • 通过平台Shell启动命令
  • 将stdout和stderr带时间戳写入日志文件
  • 如果 background 为true,优先短时间初始等待并快速返回控制
  • 返回包含会话ID、日志路径、行数、字节数、状态、后台模式和截断预览的状态卡
  • 如果命令仍在运行,稍后使用 long_context_shell_peek 而非重新运行命令

long_context_shell_peek

读取现有会话或日志文件的最新状态。

输入

  • sessionId (string, 可选): 之前返回的会话ID
  • logPath (string, 可选): 如果会话ID不可用,直接指定日志文件路径
  • headLines (number, 可选): 从开头显示的行数
  • tailLines (number, 可选): 从结尾显示的行数
  • timeQuery (string, 可选): 用于过滤行的时间戳片段,例如 2026-03-24T10:15

行为

  • 解析会话或日志文件
  • 检测进程是否仍在运行或已退出
  • 返回包含截断预览的紧凑状态卡
  • 如果存在 timeQuery,返回与该时间戳片段匹配的行

long_context_shell_scan

扫描大型日志以查找可能的故障,而非手动阅读完整文件。

输入

  • sessionId (string, 可选): 之前返回的会话ID
  • logPath (string, 可选): 直接指定日志文件路径
  • patterns (array of strings, 可选): 自定义匹配模式
  • contextLines (number, 可选): 每个匹配周围包含的周围行数
  • limit (number, 可选): 返回的最大匹配数

行为

  • 在日志中搜索强烈的故障信号,如 errorexceptionfailedfataltimeout
  • 按严重性排序匹配,使可能的根本原因行出现在通用警告之前
  • 返回最强匹配,包含行号、严重性和简短上下文
  • 当输出很大时,优先使用此工具而非手动完整日志检查

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 -fwatch 或类似的监控会话

示例

  • 长时间构建:
- 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 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务