{
  "schemaVersion": "1.0",
  "item": {
    "slug": "exec-inspector",
    "name": "Exec Inspector",
    "source": "tencent",
    "type": "skill",
    "category": "其他",
    "sourceUrl": "https://clawhub.ai/zhengzk-bj/exec-inspector",
    "canonicalUrl": "https://clawhub.ai/zhengzk-bj/exec-inspector",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/exec-inspector",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=exec-inspector",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "QUICKSTART.md",
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/exec-inspector"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/exec-inspector",
    "agentPageUrl": "https://openagent3.xyz/skills/exec-inspector/agent",
    "manifestUrl": "https://openagent3.xyz/skills/exec-inspector/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/exec-inspector/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "exec-inspector",
        "body": "查看和分析 OpenClaw Agent 的 exec 工具执行历史和明细。"
      },
      {
        "title": "🎯 AI 自动使用指南",
        "body": "当用户提出以下需求时，AI 应该立即执行相应命令，而不是只告诉用户怎么做："
      },
      {
        "title": "触发关键词和对应动作",
        "body": "用户说什么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"
      },
      {
        "title": "🤖 AI 行为准则",
        "body": "主动执行，不要只解释 - 用户问历史记录时，直接运行命令并展示结果\n美化输出 - 将原始输出整理成易读的格式\n提供洞察 - 分析数据，给出有价值的观察\n记住脚本路径 - ~/.openclaw/scripts/exec-history.sh"
      },
      {
        "title": "示例对话",
        "body": "❌ 错误示例 (只告诉，不执行):\n\n用户: 我最近执行了哪些命令？\nAI: 你可以运行 exec-history.sh list 来查看...\n\n✅ 正确示例 (立即执行):\n\n用户: 我最近执行了哪些命令？\nAI: 让我查看一下... [运行命令]\n\n📋 最近 20 条 exec 命令：\n1. ls -la (今天 15:30)\n2. git status (今天 15:28)\n...\n\n看起来你今天主要在做 git 操作和文件管理。"
      },
      {
        "title": "功能",
        "body": "🔍 查看 session 中所有 exec 命令的执行历史\n📊 统计最常用的命令\n🕐 按时间筛选执行记录\n🔎 搜索特定命令的执行记录\n📈 分析命令执行频率和模式\n🔴 实时监控新执行的命令\n🚀 后台守护进程 - 自动捕获所有 exec 执行并实时输出"
      },
      {
        "title": "启动自动监控",
        "body": "# 启动后台守护进程\n~/.openclaw/scripts/exec-monitor-daemon.sh start\n\n# 查看实时输出\n~/.openclaw/scripts/exec-monitor-daemon.sh tail\n\n效果：从此刻起，OpenClaw 每次执行 exec 命令时，都会自动在日志中实时输出！"
      },
      {
        "title": "示例输出",
        "body": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n⚡ EXEC COMMAND DETECTED\n🕐 Time:     15:30:45\n🤖 Model:    gpt-4.1 (friday-aws)\n📋 Command:  ls -la\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n⚡ EXEC COMMAND DETECTED\n🕐 Time:     15:30:48\n🤖 Model:    gpt-4.1 (friday-aws)\n📋 Command:  git status\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
      },
      {
        "title": "守护进程命令",
        "body": "命令说明start启动后台监控守护进程stop停止守护进程restart重启守护进程status查看守护进程状态tail实时查看监控输出"
      },
      {
        "title": "使用流程",
        "body": "1. 启动守护进程\n\n~/.openclaw/scripts/exec-monitor-daemon.sh start\n\n2. 在另一个终端查看实时输出\n\n~/.openclaw/scripts/exec-monitor-daemon.sh tail\n\n3. 正常使用 OpenClaw\n\n在 OpenClaw 对话中执行任何命令\n监控终端会自动实时显示所有 exec 执行\n\n4. 停止监控\n\n~/.openclaw/scripts/exec-monitor-daemon.sh stop"
      },
      {
        "title": "设置别名（推荐）",
        "body": "# 添加到 ~/.zshrc 或 ~/.bashrc\nalias exec-monitor='~/.openclaw/scripts/exec-monitor-daemon.sh'\nalias exec-monitor-start='~/.openclaw/scripts/exec-monitor-daemon.sh start && ~/.openclaw/scripts/exec-monitor-daemon.sh tail'\nalias exec-monitor-stop='~/.openclaw/scripts/exec-monitor-daemon.sh stop'\n\n然后：\n\nexec-monitor-start    # 启动并立即查看输出\nexec-monitor status   # 查看状态\nexec-monitor-stop     # 停止"
      },
      {
        "title": "1. 查看最近的 exec 执行记录",
        "body": "# 查看最近 10 条 exec 执行记录\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | tail -10 | while read line; do echo \"$line\" | jq -r '.message.content[0].arguments.command'; done\n\n# 或者使用更详细的格式\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | tail -10 | jq -r '\"\\(.timestamp) | \\(.message.content[0].arguments.command)\"'"
      },
      {
        "title": "2. 统计命令使用频率",
        "body": "# 统计所有 exec 命令的使用频率\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r '.message.content[0].arguments.command' | sort | uniq -c | sort -rn"
      },
      {
        "title": "3. 查看特定 session 的执行历史",
        "body": "# 查看特定 session 的所有 exec 命令\nSESSION_ID=\"aa19ccb2-19ff-4458-84b4-d20e688fd797\"\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/${SESSION_ID}.jsonl | jq -r '\"\\(.timestamp) | \\(.message.content[0].arguments.command)\"'"
      },
      {
        "title": "4. 搜索特定命令",
        "body": "# 搜索包含特定关键字的命令执行记录\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r 'select(.message.content[0].arguments.command | contains(\"git\")) | \"\\(.timestamp) | \\(.message.content[0].arguments.command)\"'"
      },
      {
        "title": "5. 查看完整的 exec 工具调用详情",
        "body": "# 查看包含输入输出的完整记录\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -C '.'"
      },
      {
        "title": "6. 分析工具使用统计",
        "body": "# 统计所有工具的使用频率\ngrep -o '\"name\":\"[^\"]*\"' ~/.openclaw/agents/main/sessions/*.jsonl | sort | uniq -c | sort -rn"
      },
      {
        "title": "7. 按日期查看执行记录",
        "body": "# 查看今天的 exec 执行记录\nTODAY=$(date +%Y-%m-%d)\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r \"select(.timestamp | startswith(\\\"$TODAY\\\")) | \\\"\\(.timestamp) | \\(.message.content[0].arguments.command)\\\"\""
      },
      {
        "title": "8. 创建交互式查看器脚本",
        "body": "创建一个便捷的脚本来查看 exec 历史：\n\ncat > ~/.openclaw/scripts/exec-history.sh <<'EOF'\n#!/bin/bash\n# OpenClaw Exec History Viewer\n\nSESSION_DIR=\"$HOME/.openclaw/agents/main/sessions\"\n\ncase \"$1\" in\n  list|\"\")\n    echo \"📋 Recent exec commands (last 20):\"\n    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\n    ;;\n    \n  stats)\n    echo \"📊 Command usage statistics:\"\n    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\n    ;;\n    \n  search)\n    if [ -z \"$2\" ]; then\n      echo \"Usage: $0 search <keyword>\"\n      exit 1\n    fi\n    echo \"🔍 Searching for commands containing: $2\"\n    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\n    ;;\n    \n  today)\n    TODAY=$(date +%Y-%m-%d)\n    echo \"📅 Commands executed today ($TODAY):\"\n    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\n    ;;\n    \n  session)\n    if [ -z \"$2\" ]; then\n      echo \"Available sessions:\"\n      ls -1 \"$SESSION_DIR\"/*.jsonl | xargs basename -s .jsonl | nl\n      exit 0\n    fi\n    SESSION_FILE=\"$SESSION_DIR/$2.jsonl\"\n    if [ ! -f \"$SESSION_FILE\" ]; then\n      echo \"Session not found: $2\"\n      exit 1\n    fi\n    echo \"📝 Exec history for session: $2\"\n    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\n    ;;\n    \n  all-tools)\n    echo \"🔧 All tool usage statistics:\"\n    grep -o '\"name\":\"[^\"]*\"' \"$SESSION_DIR\"/*.jsonl 2>/dev/null | grep -v '\"name\":\"[A-Z]' | sort | uniq -c | sort -rn\n    ;;\n    \n  *)\n    echo \"Usage: $0 {list|stats|search|today|session|all-tools} [args]\"\n    echo \"\"\n    echo \"Commands:\"\n    echo \"  list          - Show recent 20 exec commands\"\n    echo \"  stats         - Show command usage statistics\"\n    echo \"  search <kw>   - Search for commands containing keyword\"\n    echo \"  today         - Show today's executed commands\"\n    echo \"  session [id]  - Show exec history for a specific session\"\n    echo \"  all-tools     - Show usage stats for all tools\"\n    ;;\nesac\nEOF\n\nchmod +x ~/.openclaw/scripts/exec-history.sh"
      },
      {
        "title": "AI 助手使用指南",
        "body": "当用户询问 exec 执行历史时，你应该：\n\n直接执行相应命令 - 不要只是告诉用户怎么做，直接帮他们查询\n美化输出 - 将结果整理成易读的格式\n提供洞察 - 分析执行模式，提供有价值的观察"
      },
      {
        "title": "示例对话",
        "body": "用户: \"我最近执行了哪些命令？\"\n\nAI 回复:\n\n让我查看一下你最近的 exec 执行记录...\n\n📋 最近 10 条 exec 命令：\n\n1. 2026-02-10 15:30:45 | ls -la\n2. 2026-02-10 15:28:12 | git status\n3. 2026-02-10 15:25:33 | npm install\n4. 2026-02-10 14:55:20 | grep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl\n5. 2026-02-10 14:50:10 | cat package.json\n6. 2026-02-10 14:45:05 | pwd\n7. 2026-02-10 14:40:22 | node --version\n8. 2026-02-10 14:35:15 | docker ps\n9. 2026-02-10 14:30:08 | tail -f logs/app.log\n10. 2026-02-10 14:25:45 | find . -name \"*.js\"\n\n📊 最常用的命令类型：\n- git (15次)\n- npm (12次)\n- ls (10次)\n- grep (8次)\n- docker (5次)"
      },
      {
        "title": "Session 文件格式",
        "body": "Session 文件存储在 ~/.openclaw/agents/main/sessions/ 目录下，每个 session 对应一个 .jsonl 文件。\n\nExec 工具调用记录结构:\n\n{\n  \"type\": \"message\",\n  \"id\": \"d3478fcf\",\n  \"parentId\": \"9631fadb\",\n  \"timestamp\": \"2026-02-05T12:15:25.206Z\",\n  \"message\": {\n    \"role\": \"assistant\",\n    \"content\": [\n      {\n        \"type\": \"toolCall\",\n        \"id\": \"call_2e8e8fa469e14f478aa15ae5\",\n        \"name\": \"exec\",\n        \"arguments\": {\n          \"command\": \"ls -la\"\n        }\n      }\n    ],\n    \"api\": \"openai-completions\",\n    \"provider\": \"friday-longcat\",\n    \"model\": \"LongCat-Flash-Chat\",\n    \"usage\": {\n      \"input\": 15688,\n      \"output\": 21,\n      \"totalTokens\": 15709\n    },\n    \"stopReason\": \"toolUse\",\n    \"timestamp\": 1770293723959\n  }\n}"
      },
      {
        "title": "关键字段说明",
        "body": "timestamp: ISO 8601 格式的执行时间\nmessage.content[0].name: 工具名称 (exec)\nmessage.content[0].arguments.command: 执行的命令\nmessage.provider: 使用的模型提供商\nmessage.model: 使用的具体模型\nmessage.usage: Token 使用统计"
      },
      {
        "title": "快速参考",
        "body": "# 创建便捷别名\nalias exec-history='~/.openclaw/scripts/exec-history.sh'\nalias exec-list='exec-history list'\nalias exec-stats='exec-history stats'\nalias exec-today='exec-history today'\n\n# 使用示例\nexec-list              # 查看最近执行的命令\nexec-stats             # 查看统计信息\nexec-search git        # 搜索 git 相关命令\nexec-today             # 查看今天执行的命令\nexec-history all-tools # 查看所有工具的使用统计"
      },
      {
        "title": "相关文件",
        "body": "Session 文件: ~/.openclaw/agents/main/sessions/*.jsonl\nGateway 日志: ~/.openclaw/logs/gateway.log\nAgent 配置: ~/.openclaw/agents/main/agent/"
      },
      {
        "title": "注意事项",
        "body": "隐私保护: Session 文件包含所有命令历史，请妥善保管\n文件大小: Session 文件会随时间增长，定期清理旧 session\n权限: 确保有读取 session 文件的权限\nJSON 格式: 使用 jq 工具处理 JSON 数据，请确保已安装"
      },
      {
        "title": "扩展功能",
        "body": "你可以基于这个 skill 创建：\n\n🎨 Web UI 可视化工具\n📊 命令执行时间线图表\n🔔 异常命令监控告警\n📝 自动生成操作日志报告\n🔐 命令审计和合规检查\n\n版本: 1.0.0\n作者: OpenClaw Community\n最后更新: 2026-02-10"
      }
    ],
    "body": "exec-inspector\n\n查看和分析 OpenClaw Agent 的 exec 工具执行历史和明细。\n\n🎯 AI 自动使用指南\n\n当用户提出以下需求时，AI 应该立即执行相应命令，而不是只告诉用户怎么做：\n\n触发关键词和对应动作\n用户说什么\tAI 应该做什么\t执行命令\n\"最近执行了哪些命令\"\t列出最近 20 条\t~/.openclaw/scripts/exec-history.sh list\n\"统计命令使用情况\"\t显示统计数据\t~/.openclaw/scripts/exec-history.sh stats\n\"查找/搜索 XXX 命令\"\t搜索特定命令\t~/.openclaw/scripts/exec-history.sh search XXX\n\"今天执行了什么\"\t显示今天的命令\t~/.openclaw/scripts/exec-history.sh today\n\"查看 session 列表\"\t列出所有 sessions\t~/.openclaw/scripts/exec-history.sh session\n\"查看所有工具使用\"\t统计所有工具\t~/.openclaw/scripts/exec-history.sh all-tools\n\"实时监控 exec\"\t启动实时监控\t~/.openclaw/scripts/exec-history.sh watch\n\"导出执行历史\"\t导出 JSON 文件\t~/.openclaw/scripts/exec-history.sh export\n🤖 AI 行为准则\n主动执行，不要只解释 - 用户问历史记录时，直接运行命令并展示结果\n美化输出 - 将原始输出整理成易读的格式\n提供洞察 - 分析数据，给出有价值的观察\n记住脚本路径 - ~/.openclaw/scripts/exec-history.sh\n示例对话\n\n❌ 错误示例 (只告诉，不执行):\n\n用户: 我最近执行了哪些命令？\nAI: 你可以运行 exec-history.sh list 来查看...\n\n\n✅ 正确示例 (立即执行):\n\n用户: 我最近执行了哪些命令？\nAI: 让我查看一下... [运行命令]\n\n📋 最近 20 条 exec 命令：\n1. ls -la (今天 15:30)\n2. git status (今天 15:28)\n...\n\n看起来你今天主要在做 git 操作和文件管理。\n\n功能\n🔍 查看 session 中所有 exec 命令的执行历史\n📊 统计最常用的命令\n🕐 按时间筛选执行记录\n🔎 搜索特定命令的执行记录\n📈 分析命令执行频率和模式\n🔴 实时监控新执行的命令\n🚀 后台守护进程 - 自动捕获所有 exec 执行并实时输出\n🔥 自动实时输出 - 守护进程模式\n启动自动监控\n# 启动后台守护进程\n~/.openclaw/scripts/exec-monitor-daemon.sh start\n\n# 查看实时输出\n~/.openclaw/scripts/exec-monitor-daemon.sh tail\n\n\n效果：从此刻起，OpenClaw 每次执行 exec 命令时，都会自动在日志中实时输出！\n\n示例输出\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n⚡ EXEC COMMAND DETECTED\n🕐 Time:     15:30:45\n🤖 Model:    gpt-4.1 (friday-aws)\n📋 Command:  ls -la\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n⚡ EXEC COMMAND DETECTED\n🕐 Time:     15:30:48\n🤖 Model:    gpt-4.1 (friday-aws)\n📋 Command:  git status\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n守护进程命令\n命令\t说明\nstart\t启动后台监控守护进程\nstop\t停止守护进程\nrestart\t重启守护进程\nstatus\t查看守护进程状态\ntail\t实时查看监控输出\n使用流程\n\n1. 启动守护进程\n\n~/.openclaw/scripts/exec-monitor-daemon.sh start\n\n\n2. 在另一个终端查看实时输出\n\n~/.openclaw/scripts/exec-monitor-daemon.sh tail\n\n\n3. 正常使用 OpenClaw\n\n在 OpenClaw 对话中执行任何命令\n监控终端会自动实时显示所有 exec 执行\n\n4. 停止监控\n\n~/.openclaw/scripts/exec-monitor-daemon.sh stop\n\n设置别名（推荐）\n# 添加到 ~/.zshrc 或 ~/.bashrc\nalias exec-monitor='~/.openclaw/scripts/exec-monitor-daemon.sh'\nalias exec-monitor-start='~/.openclaw/scripts/exec-monitor-daemon.sh start && ~/.openclaw/scripts/exec-monitor-daemon.sh tail'\nalias exec-monitor-stop='~/.openclaw/scripts/exec-monitor-daemon.sh stop'\n\n\n然后：\n\nexec-monitor-start    # 启动并立即查看输出\nexec-monitor status   # 查看状态\nexec-monitor-stop     # 停止\n\n命令\n1. 查看最近的 exec 执行记录\n# 查看最近 10 条 exec 执行记录\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | tail -10 | while read line; do echo \"$line\" | jq -r '.message.content[0].arguments.command'; done\n\n# 或者使用更详细的格式\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | tail -10 | jq -r '\"\\(.timestamp) | \\(.message.content[0].arguments.command)\"'\n\n2. 统计命令使用频率\n# 统计所有 exec 命令的使用频率\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r '.message.content[0].arguments.command' | sort | uniq -c | sort -rn\n\n3. 查看特定 session 的执行历史\n# 查看特定 session 的所有 exec 命令\nSESSION_ID=\"aa19ccb2-19ff-4458-84b4-d20e688fd797\"\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/${SESSION_ID}.jsonl | jq -r '\"\\(.timestamp) | \\(.message.content[0].arguments.command)\"'\n\n4. 搜索特定命令\n# 搜索包含特定关键字的命令执行记录\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r 'select(.message.content[0].arguments.command | contains(\"git\")) | \"\\(.timestamp) | \\(.message.content[0].arguments.command)\"'\n\n5. 查看完整的 exec 工具调用详情\n# 查看包含输入输出的完整记录\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -C '.'\n\n6. 分析工具使用统计\n# 统计所有工具的使用频率\ngrep -o '\"name\":\"[^\"]*\"' ~/.openclaw/agents/main/sessions/*.jsonl | sort | uniq -c | sort -rn\n\n7. 按日期查看执行记录\n# 查看今天的 exec 执行记录\nTODAY=$(date +%Y-%m-%d)\ngrep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl | jq -r \"select(.timestamp | startswith(\\\"$TODAY\\\")) | \\\"\\(.timestamp) | \\(.message.content[0].arguments.command)\\\"\"\n\n8. 创建交互式查看器脚本\n\n创建一个便捷的脚本来查看 exec 历史：\n\ncat > ~/.openclaw/scripts/exec-history.sh <<'EOF'\n#!/bin/bash\n# OpenClaw Exec History Viewer\n\nSESSION_DIR=\"$HOME/.openclaw/agents/main/sessions\"\n\ncase \"$1\" in\n  list|\"\")\n    echo \"📋 Recent exec commands (last 20):\"\n    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\n    ;;\n    \n  stats)\n    echo \"📊 Command usage statistics:\"\n    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\n    ;;\n    \n  search)\n    if [ -z \"$2\" ]; then\n      echo \"Usage: $0 search <keyword>\"\n      exit 1\n    fi\n    echo \"🔍 Searching for commands containing: $2\"\n    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\n    ;;\n    \n  today)\n    TODAY=$(date +%Y-%m-%d)\n    echo \"📅 Commands executed today ($TODAY):\"\n    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\n    ;;\n    \n  session)\n    if [ -z \"$2\" ]; then\n      echo \"Available sessions:\"\n      ls -1 \"$SESSION_DIR\"/*.jsonl | xargs basename -s .jsonl | nl\n      exit 0\n    fi\n    SESSION_FILE=\"$SESSION_DIR/$2.jsonl\"\n    if [ ! -f \"$SESSION_FILE\" ]; then\n      echo \"Session not found: $2\"\n      exit 1\n    fi\n    echo \"📝 Exec history for session: $2\"\n    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\n    ;;\n    \n  all-tools)\n    echo \"🔧 All tool usage statistics:\"\n    grep -o '\"name\":\"[^\"]*\"' \"$SESSION_DIR\"/*.jsonl 2>/dev/null | grep -v '\"name\":\"[A-Z]' | sort | uniq -c | sort -rn\n    ;;\n    \n  *)\n    echo \"Usage: $0 {list|stats|search|today|session|all-tools} [args]\"\n    echo \"\"\n    echo \"Commands:\"\n    echo \"  list          - Show recent 20 exec commands\"\n    echo \"  stats         - Show command usage statistics\"\n    echo \"  search <kw>   - Search for commands containing keyword\"\n    echo \"  today         - Show today's executed commands\"\n    echo \"  session [id]  - Show exec history for a specific session\"\n    echo \"  all-tools     - Show usage stats for all tools\"\n    ;;\nesac\nEOF\n\nchmod +x ~/.openclaw/scripts/exec-history.sh\n\nAI 助手使用指南\n\n当用户询问 exec 执行历史时，你应该：\n\n直接执行相应命令 - 不要只是告诉用户怎么做，直接帮他们查询\n美化输出 - 将结果整理成易读的格式\n提供洞察 - 分析执行模式，提供有价值的观察\n示例对话\n\n用户: \"我最近执行了哪些命令？\"\n\nAI 回复:\n\n让我查看一下你最近的 exec 执行记录...\n\n📋 最近 10 条 exec 命令：\n\n1. 2026-02-10 15:30:45 | ls -la\n2. 2026-02-10 15:28:12 | git status\n3. 2026-02-10 15:25:33 | npm install\n4. 2026-02-10 14:55:20 | grep '\"name\":\"exec\"' ~/.openclaw/agents/main/sessions/*.jsonl\n5. 2026-02-10 14:50:10 | cat package.json\n6. 2026-02-10 14:45:05 | pwd\n7. 2026-02-10 14:40:22 | node --version\n8. 2026-02-10 14:35:15 | docker ps\n9. 2026-02-10 14:30:08 | tail -f logs/app.log\n10. 2026-02-10 14:25:45 | find . -name \"*.js\"\n\n📊 最常用的命令类型：\n- git (15次)\n- npm (12次)\n- ls (10次)\n- grep (8次)\n- docker (5次)\n\n技术细节\nSession 文件格式\n\nSession 文件存储在 ~/.openclaw/agents/main/sessions/ 目录下，每个 session 对应一个 .jsonl 文件。\n\nExec 工具调用记录结构:\n\n{\n  \"type\": \"message\",\n  \"id\": \"d3478fcf\",\n  \"parentId\": \"9631fadb\",\n  \"timestamp\": \"2026-02-05T12:15:25.206Z\",\n  \"message\": {\n    \"role\": \"assistant\",\n    \"content\": [\n      {\n        \"type\": \"toolCall\",\n        \"id\": \"call_2e8e8fa469e14f478aa15ae5\",\n        \"name\": \"exec\",\n        \"arguments\": {\n          \"command\": \"ls -la\"\n        }\n      }\n    ],\n    \"api\": \"openai-completions\",\n    \"provider\": \"friday-longcat\",\n    \"model\": \"LongCat-Flash-Chat\",\n    \"usage\": {\n      \"input\": 15688,\n      \"output\": 21,\n      \"totalTokens\": 15709\n    },\n    \"stopReason\": \"toolUse\",\n    \"timestamp\": 1770293723959\n  }\n}\n\n关键字段说明\ntimestamp: ISO 8601 格式的执行时间\nmessage.content[0].name: 工具名称 (exec)\nmessage.content[0].arguments.command: 执行的命令\nmessage.provider: 使用的模型提供商\nmessage.model: 使用的具体模型\nmessage.usage: Token 使用统计\n快速参考\n# 创建便捷别名\nalias exec-history='~/.openclaw/scripts/exec-history.sh'\nalias exec-list='exec-history list'\nalias exec-stats='exec-history stats'\nalias exec-today='exec-history today'\n\n# 使用示例\nexec-list              # 查看最近执行的命令\nexec-stats             # 查看统计信息\nexec-search git        # 搜索 git 相关命令\nexec-today             # 查看今天执行的命令\nexec-history all-tools # 查看所有工具的使用统计\n\n相关文件\nSession 文件: ~/.openclaw/agents/main/sessions/*.jsonl\nGateway 日志: ~/.openclaw/logs/gateway.log\nAgent 配置: ~/.openclaw/agents/main/agent/\n注意事项\n隐私保护: Session 文件包含所有命令历史，请妥善保管\n文件大小: Session 文件会随时间增长，定期清理旧 session\n权限: 确保有读取 session 文件的权限\nJSON 格式: 使用 jq 工具处理 JSON 数据，请确保已安装\n扩展功能\n\n你可以基于这个 skill 创建：\n\n🎨 Web UI 可视化工具\n📊 命令执行时间线图表\n🔔 异常命令监控告警\n📝 自动生成操作日志报告\n🔐 命令审计和合规检查\n\n版本: 1.0.0\n作者: OpenClaw Community\n最后更新: 2026-02-10"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/zhengzk-bj/exec-inspector",
    "publisherUrl": "https://clawhub.ai/zhengzk-bj/exec-inspector",
    "owner": "zhengzk-bj",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/exec-inspector",
    "downloadUrl": "https://openagent3.xyz/downloads/exec-inspector",
    "agentUrl": "https://openagent3.xyz/skills/exec-inspector/agent",
    "manifestUrl": "https://openagent3.xyz/skills/exec-inspector/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/exec-inspector/agent.md"
  }
}