Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
查看和分析 OpenClaw Agent exec 工具的执行历史,支持查询、搜索、统计和实时监控命令使用详情。
查看和分析 OpenClaw Agent exec 工具的执行历史,支持查询、搜索、统计和实时监控命令使用详情。
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
查看和分析 OpenClaw Agent 的 exec 工具执行历史和明细。
当用户提出以下需求时,AI 应该立即执行相应命令,而不是只告诉用户怎么做:
用户说什么AI 应该做什么执行命令"最近执行了哪些命令"列出最近 20 条~/.openclaw/scripts/exec-history.sh list"统计命令使用情况"显示统计数据~/.openclaw/scripts/exec-history.sh stats"查找/搜索 XXX 命令"搜索特定命令~/.openclaw/scripts/exec-history.sh search XXX"今天执行了什么"显示今天的命令~/.openclaw/scripts/exec-history.sh today"查看 session 列表"列出所有 sessions~/.openclaw/scripts/exec-history.sh session"查看所有工具使用"统计所有工具~/.openclaw/scripts/exec-history.sh all-tools"实时监控 exec"启动实时监控~/.openclaw/scripts/exec-history.sh watch"导出执行历史"导出 JSON 文件~/.openclaw/scripts/exec-history.sh export
主动执行,不要只解释 - 用户问历史记录时,直接运行命令并展示结果 美化输出 - 将原始输出整理成易读的格式 提供洞察 - 分析数据,给出有价值的观察 记住脚本路径 - ~/.openclaw/scripts/exec-history.sh
❌ 错误示例 (只告诉,不执行): 用户: 我最近执行了哪些命令? AI: 你可以运行 exec-history.sh list 来查看... ✅ 正确示例 (立即执行): 用户: 我最近执行了哪些命令? AI: 让我查看一下... [运行命令] 📋 最近 20 条 exec 命令: 1. ls -la (今天 15:30) 2. git status (今天 15:28) ... 看起来你今天主要在做 git 操作和文件管理。
🔍 查看 session 中所有 exec 命令的执行历史 📊 统计最常用的命令 🕐 按时间筛选执行记录 🔎 搜索特定命令的执行记录 📈 分析命令执行频率和模式 🔴 实时监控新执行的命令 🚀 后台守护进程 - 自动捕获所有 exec 执行并实时输出
# 启动后台守护进程 ~/.openclaw/scripts/exec-monitor-daemon.sh start # 查看实时输出 ~/.openclaw/scripts/exec-monitor-daemon.sh tail 效果:从此刻起,OpenClaw 每次执行 exec 命令时,都会自动在日志中实时输出!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚡ EXEC COMMAND DETECTED 🕐 Time: 15:30:45 🤖 Model: gpt-4.1 (friday-aws) 📋 Command: ls -la ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚡ EXEC COMMAND DETECTED 🕐 Time: 15:30:48 🤖 Model: gpt-4.1 (friday-aws) 📋 Command: git status ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
命令说明start启动后台监控守护进程stop停止守护进程restart重启守护进程status查看守护进程状态tail实时查看监控输出
1. 启动守护进程 ~/.openclaw/scripts/exec-monitor-daemon.sh start 2. 在另一个终端查看实时输出 ~/.openclaw/scripts/exec-monitor-daemon.sh tail 3. 正常使用 OpenClaw 在 OpenClaw 对话中执行任何命令 监控终端会自动实时显示所有 exec 执行 4. 停止监控 ~/.openclaw/scripts/exec-monitor-daemon.sh stop
# 添加到 ~/.zshrc 或 ~/.bashrc alias exec-monitor='~/.openclaw/scripts/exec-monitor-daemon.sh' alias exec-monitor-start='~/.openclaw/scripts/exec-monitor-daemon.sh start && ~/.openclaw/scripts/exec-monitor-daemon.sh tail' alias exec-monitor-stop='~/.openclaw/scripts/exec-monitor-daemon.sh stop' 然后: exec-monitor-start # 启动并立即查看输出 exec-monitor status # 查看状态 exec-monitor-stop # 停止
# 查看最近 10 条 exec 执行记录 grep '"name":"exec"' ~/.openclaw/agents/main/sessions/*.jsonl | tail -10 | while read line; do echo "$line" | jq -r '.message.content[0].arguments.command'; done # 或者使用更详细的格式 grep '"name":"exec"' ~/.openclaw/agents/main/sessions/*.jsonl | tail -10 | jq -r '"\(.timestamp) | \(.message.content[0].arguments.command)"'
# 统计所有 exec 命令的使用频率 grep '"name":"exec"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r '.message.content[0].arguments.command' | sort | uniq -c | sort -rn
# 查看特定 session 的所有 exec 命令 SESSION_ID="aa19ccb2-19ff-4458-84b4-d20e688fd797" grep '"name":"exec"' ~/.openclaw/agents/main/sessions/${SESSION_ID}.jsonl | jq -r '"\(.timestamp) | \(.message.content[0].arguments.command)"'
# 搜索包含特定关键字的命令执行记录 grep '"name":"exec"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r 'select(.message.content[0].arguments.command | contains("git")) | "\(.timestamp) | \(.message.content[0].arguments.command)"'
# 查看包含输入输出的完整记录 grep '"name":"exec"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -C '.'
# 统计所有工具的使用频率 grep -o '"name":"[^"]*"' ~/.openclaw/agents/main/sessions/*.jsonl | sort | uniq -c | sort -rn
# 查看今天的 exec 执行记录 TODAY=$(date +%Y-%m-%d) grep '"name":"exec"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r "select(.timestamp | startswith(\"$TODAY\")) | \"\(.timestamp) | \(.message.content[0].arguments.command)\""
创建一个便捷的脚本来查看 exec 历史: cat > ~/.openclaw/scripts/exec-history.sh <<'EOF' #!/bin/bash # OpenClaw Exec History Viewer SESSION_DIR="$HOME/.openclaw/agents/main/sessions" case "$1" in list|"") echo "📋 Recent exec commands (last 20):" grep '"name":"exec"' "$SESSION_DIR"/*.jsonl 2>/dev/null | tail -20 | jq -r '"\(.timestamp | split("T")[0]) \(.timestamp | split("T")[1] | split(".")[0]) | \(.message.content[0].arguments.command)"' | nl ;; stats) echo "📊 Command usage statistics:" grep '"name":"exec"' "$SESSION_DIR"/*.jsonl 2>/dev/null | jq -r '.message.content[0].arguments.command' | awk '{print $1}' | sort | uniq -c | sort -rn | head -20 ;; search) if [ -z "$2" ]; then echo "Usage: $0 search <keyword>" exit 1 fi echo "🔍 Searching for commands containing: $2" grep '"name":"exec"' "$SESSION_DIR"/*.jsonl 2>/dev/null | jq -r "select(.message.content[0].arguments.command | contains(\"$2\")) | \"\(.timestamp | split(\"T\")[0]) \(.timestamp | split(\"T\")[1] | split(\".\")[0]) | \(.message.content[0].arguments.command)\"" | nl ;; today) TODAY=$(date +%Y-%m-%d) echo "📅 Commands executed today ($TODAY):" grep '"name":"exec"' "$SESSION_DIR"/*.jsonl 2>/dev/null | jq -r "select(.timestamp | startswith(\"$TODAY\")) | \"\(.timestamp | split(\"T\")[1] | split(\".\")[0]) | \(.message.content[0].arguments.command)\"" | nl ;; session) if [ -z "$2" ]; then echo "Available sessions:" ls -1 "$SESSION_DIR"/*.jsonl | xargs basename -s .jsonl | nl exit 0 fi SESSION_FILE="$SESSION_DIR/$2.jsonl" if [ ! -f "$SESSION_FILE" ]; then echo "Session not found: $2" exit 1 fi echo "📝 Exec history for session: $2" grep '"name":"exec"' "$SESSION_FILE" 2>/dev/null | jq -r '"\(.timestamp | split("T")[0]) \(.timestamp | split("T")[1] | split(".")[0]) | \(.message.content[0].arguments.command)"' | nl ;; all-tools) echo "🔧 All tool usage statistics:" grep -o '"name":"[^"]*"' "$SESSION_DIR"/*.jsonl 2>/dev/null | grep -v '"name":"[A-Z]' | sort | uniq -c | sort -rn ;; *) echo "Usage: $0 {list|stats|search|today|session|all-tools} [args]" echo "" echo "Commands:" echo " list - Show recent 20 exec commands" echo " stats - Show command usage statistics" echo " search <kw> - Search for commands containing keyword" echo " today - Show today's executed commands" echo " session [id] - Show exec history for a specific session" echo " all-tools - Show usage stats for all tools" ;; esac EOF chmod +x ~/.openclaw/scripts/exec-history.sh
当用户询问 exec 执行历史时,你应该: 直接执行相应命令 - 不要只是告诉用户怎么做,直接帮他们查询 美化输出 - 将结果整理成易读的格式 提供洞察 - 分析执行模式,提供有价值的观察
Session 文件存储在 ~/.openclaw/agents/main/sessions/ 目录下,每个 session 对应一个 .jsonl 文件。 Exec 工具调用记录结构: { "type": "message", "id": "d3478fcf", "parentId": "9631fadb", "timestamp": "2026-02-05T12:15:25.206Z", "message": { "role": "assistant", "content": [ { "type": "toolCall", "id": "call_2e8e8fa469e14f478aa15ae5", "name": "exec", "arguments": { "command": "ls -la" } } ], "api": "openai-completions", "provider": "friday-longcat", "model": "LongCat-Flash-Chat", "usage": { "input": 15688, "output": 21, "totalTokens": 15709 }, "stopReason": "toolUse", "timestamp": 1770293723959 } }
timestamp: ISO 8601 格式的执行时间 message.content[0].name: 工具名称 (exec) message.content[0].arguments.command: 执行的命令 message.provider: 使用的模型提供商 message.model: 使用的具体模型 message.usage: Token 使用统计
# 创建便捷别名 alias exec-history='~/.openclaw/scripts/exec-history.sh' alias exec-list='exec-history list' alias exec-stats='exec-history stats' alias exec-today='exec-history today' # 使用示例 exec-list # 查看最近执行的命令 exec-stats # 查看统计信息 exec-search git # 搜索 git 相关命令 exec-today # 查看今天执行的命令 exec-history all-tools # 查看所有工具的使用统计
Session 文件: ~/.openclaw/agents/main/sessions/*.jsonl Gateway 日志: ~/.openclaw/logs/gateway.log Agent 配置: ~/.openclaw/agents/main/agent/
隐私保护: Session 文件包含所有命令历史,请妥善保管 文件大小: Session 文件会随时间增长,定期清理旧 session 权限: 确保有读取 session 文件的权限 JSON 格式: 使用 jq 工具处理 JSON 数据,请确保已安装
你可以基于这个 skill 创建: 🎨 Web UI 可视化工具 📊 命令执行时间线图表 🔔 异常命令监控告警 📝 自动生成操作日志报告 🔐 命令审计和合规检查 版本: 1.0.0 作者: OpenClaw Community 最后更新: 2026-02-10
Long-tail utilities that do not fit the current primary taxonomy cleanly.
Largest current source with strong distribution and engagement signals.