OpenClaw 的智能 Shell 命令检测与执行器,自动识别终端命令(系统内置命令、$PATH 可执行文件、历史匹配…)
终端杀手 QQ 智能命令路由器, 直接执行 shell 命令, 绕过 LLM 进行即时终端操作是一项面向实际任务的技能,主要用于XQQ 快速启动;终端杀手在用户输入时自动激活。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
🚀 智能命令路由工具,直接执行 Shell 命令,绕过 LLM,实现终端操作的即时响应。
当用户输入匹配命令模式时,Terminal Killer 会自动激活。无需特殊语法——只需自然地输入命令即可:
ls -la # → 直接执行 git status # → 直接执行 npm install # → 直接执行 "help me code" # → 交由 LLM 正常处理
用户输入 → 命令检测器 → 决策
├── 命令 → exec(直接执行)
└── 任务 → LLM(正常处理)
Terminal Killer 在执行命令前会自动加载您的 Shell 环境:
~/.zshrc、~/.bash_profile、~/.bashrc 等)export VAR=value 设置均生效这确保了 adb、kubectl、docker 等命令的行为与您在终端中完全一致!
$PATH 中是否存在匹配的可执行文件将输入与当前操作系统已知的内置命令进行比对:
| macOS/Linux | Windows(PowerShell) | Windows(CMD) |
|---|---|---|
cd、pwd、ls |
cd、pwd、ls |
cd、dir、cls |
echo、cat |
echo、cat |
echo、type |
mkdir、rm、cp |
mkdir、rm、cp |
mkdir、del、copy |
grep、find |
grep、find |
findstr |
git、npm、node |
git、npm、node |
git、npm、node |
完整列表请参阅 references/builtins/。
扫描 $PATH 目录,验证首词是否为可执行文件:
# 使用 `which`(Unix)或 `Get-Command`(PowerShell) which# 若存在则返回路径
将输入与近期 Shell 历史记录(~/.zsh_history、~/.bash_history、PowerShell 历史)进行比对:
基于命令特征进行启发式评分:
| 模式 | 分值 | 示例 |
|---|---|---|
| 以已知命令开头 | +3 | git status |
| 包含 Shell 操作符 | +2 | `ls |
| 包含路径引用 | +2 | cd ~/projects |
| 包含标志/参数 | +1 | npm install --save |
包含 $ 变量 |
+2 | echo $HOME |
| 包含重定向 | +2 | cat file > out |
| 形似自然语言 | -3 | "please help me" |
| 包含问号 | -2 | "how do I...?" |
分值 >= 5 → 执行(高置信度命令) 分值 3–4 → 询问(不确定,需用户确认) 分值 < 3 → 交由 LLM 处理(大概率是任务/请求)
满足以下任一条件时,Terminal Killer 将自动触发:
Terminal Killer 自动识别并处理交互式 Shell 命令:
已识别的模式:
adb shell —— 在新终端中启动 adb shellssh user@host —— 在新窗口中打开 SSH 会话docker exec -it container bash —— 在容器内启动 Shellmysql -u root -p —— 启动 MySQL 客户端python、node、bash —— 在新窗口中启动 REPL行为特性:
~/.zshrc 等)强制执行命令:
!ls -la # 即使置信度不足也强制执行
强制交由 LLM 处理:
?? explain git # 即使形似命令也强制交由 LLM
自动标记潜在高危操作:
rm -rf / 或类似破坏性模式sudo 命令(需显式批准)dd、mkfs、chmod 777检测到危险命令! 命令:rm -rf ./important-folder 风险等级:HIGH —— 递归删除 [批准] [拒绝] [编辑]
所有已执行命令均记录至:
~/.openclaw/logs/terminal-killer.log
日志格式:
{
"timestamp": "2026-02-28T12:00:00Z",
"command": "ls -la",
"confidence": 8,
"execution_time_ms": 45,
"output_lines": 12,
"status": "success"
}
在您的 OpenClaw 配置中添加:
terminal-killer:
enabled: true
confidence_threshold: 5
require_approval_for:
- "rm -rf"
- "sudo"
- "dd"
- "mkfs"
log_executions: true
max_history_check: 100 # 检查的历史记录条目数
自动检测操作系统并动态调整检测规则:
# 运行时自动检测 uname -s # Darwin、Linux 等
主检测逻辑见 scripts/detect-command.js。
scripts/check-path.js —— 验证 PATH 中是否存在可执行文件scripts/check-history.js —— 与 Shell 历史记录比对scripts/score-command.js —— 计算置信度得分scripts/safety-check.js —— 检测危险模式完整测试指南请参阅 references/TESTING.md。
快速测试:
# 运行测试套件 node scripts/test-detector.js # 测试特定命令 node scripts/detect-command.js "ls -la" node scripts/detect-command.js "help me write code"
如需为您的平台新增内置命令,请按以下步骤操作:
references/builtins/.txt scripts/test-detector.js 进行测试作者: Cosper
联系邮箱: cosperypf@163.com
许可证: MIT
对该能力感兴趣?欢迎提出建议、报告问题,或参与协作开发!
本项目专为 OpenClaw 社区构建。感谢所有为生态建设贡献力量的开发者!
🎯 核心改进:
✅ 忠实命令执行
🪟 交互式 Shell 检测
adb shell、ssh、docker exec -it 等)~/.zshrc 等)📜 长输出处理
📦 更新文件:
scripts/index.js —— 新增长输出检测与交互式命令处理逻辑scripts/interactive.js —— 新 Terminal 窗口启动器SKILL.md —— 文档更新README.md —— 补充使用示例clawhub.json —— 版本号升级至 1.1.0初始发布:
~/.zshrc 等)版本: 1.1.0
创建时间: 2026-02-28
最后更新: 2026-02-28
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章