mcpField
S
session-scout

session-scout

github.com/evolv3-ai其他140 次安装14 周前更新
代码仓库

关于 session-scout

Session Scout 是一款脚本工具,可在 Windows、macOS 和 Linux 上查找 Claude Code、Claude Desktop 与 OpenCode 会话,展示会话信息并导出 CSV。

主要功能

  1. 01发现 Claude Code 会话
  2. 02查找 Claude Desktop 历史文件
  3. 03区分 OpenCode CLI 和桌面会话
  4. 04显示时间戳和项目路径
  5. 05将会话列表导出为 CSV

适用场景

  1. 01查看多个支持工具的近期会话
  2. 02查找会话关联的项目路径
  3. 03导出会话记录以便后续检查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/evolv3-ai/vibe-skills --skill session-scout

安装后在 Claude Code 中输入/session-scout确认已加载。

附带文件scripts/Session-Scout.ps1scripts/session-scout.sh

详细介绍

Session Scout

状态:已可用于生产环境 最后更新:2026-02-13 依赖项:PowerShell 7+(Windows)或 Bash 4+(macOS/Linux)

脚本路径解析:Claude Code 加载此文件时,会提供完整路径。下方所有 scripts/ 引用均相对于此文件所在目录。请根据此文件的路径推导出 SKILL_DIR,并在运行脚本时将其添加为前缀。


快速入门(1 分钟)

1. 运行脚本

macOS / Linux:

# Show recent sessions (default: top 12)
scripts/session-scout.sh

# Show more sessions
scripts/session-scout.sh --top 20

Windows(PowerShell):

# Show recent sessions (default: top 12)
pwsh -ExecutionPolicy Bypass -File scripts/Session-Scout.ps1

# Show more sessions
pwsh -ExecutionPolicy Bypass -File scripts/Session-Scout.ps1 -Top 20

输出列:

  • Tool - Claude Code(Windows/WSL)、Claude Desktop、OpenCode CLI/Desktop
  • When - 最后活动时间戳
  • ProjectPath - 工作目录路径
  • Project - 项目代号/标识符
  • SessionId - UUID(Claude Code)或时间戳(OpenCode)
2. 导出为 CSV

macOS / Linux:

# Export to default location (~/.admin/logs/session-scout-YYYY-MM-DD.csv)
scripts/session-scout.sh --csv

# Export to custom path
scripts/session-scout.sh --file ~/exports/sessions.csv

Windows(PowerShell):

# Export to default location (~/.admin/logs/session-scout-YYYY-MM-DD.csv)
pwsh -ExecutionPolicy Bypass -File scripts/Session-Scout.ps1 -Csv

# Export to custom path
pwsh -ExecutionPolicy Bypass -File scripts/Session-Scout.ps1 -File "D:\exports\sessions.csv"

可发现的内容

Claude Code 会话
  • Windows:%USERPROFILE%\.claude\projects\*\*.jsonl
  • WSL/Linux:~/.claude/projects/*/*.jsonl
  • macOS:~/.claude/projects/*/*.jsonl
  • 提取内容:cwd、项目代号、会话 UUID
Claude Desktop 会话
  • Windows:%APPDATA%\Claude 和 %LOCALAPPDATA%\Claude
  • macOS:~/Library/Application Support/Claude/ 和 ~/Library/Application Support/Anthropic/
  • Linux:~/.config/Claude/ 和 ~/.config/Anthropic/
  • 查找内容:聊天、对话、转录、历史记录文件
OpenCode 会话
  • Windows:%USERPROFILE%\.local\share\opencode\log\*.log
  • macOS/Linux:~/.local/share/opencode/log/*.log
  • 区分方式:桌面版(多个目录)与 CLI(单个目录)

重要规则

始终执行
  • Windows:使用 pwsh(PowerShell 7+)运行,而不是 Windows PowerShell 5.1
  • Windows:直接运行时使用 -ExecutionPolicy Bypass
  • macOS/Linux:使用 session-scout.sh(关联数组需要 Bash 4+)
  • 如果未找到 WSL 会话,请检查 WSL 是否正在运行(仅限 Windows)
切勿执行
  • 不要直接修改会话 .jsonl 文件
  • 不要假设所有会话都包含可提取的路径(有些会显示为空)
  • 不要在 WSL 内运行 PowerShell 脚本(请改用 Bash 脚本)

防范已知问题

此技能可防范 3 个已记录的问题:

问题 #1:找不到基于 UUID 的文件名

错误:即使正在使用 Claude Code,也找不到会话 原因:Claude Code 已从 chat_*.jsonl 改为使用基于 UUID 的文件名 防范措施:脚本使用 *.jsonl 模式(排除 agent-*.jsonl)

问题 #2:WSL 发行版名称包含空字节

错误:未检测到 WSL 会话,发行版名称显示为 U b u n t u 原因:wsl.exe -l -q 输出的内容采用 UTF-16LE 编码并包含空字节 防范措施:Get-WSLDistros 函数会正确剔除空字节

问题 #3:混淆 OpenCode 桌面版与 CLI

错误:所有 OpenCode 会话都显示为同一类型 原因:桌面版会打开多个项目,而 CLI 会打开一个项目 防范措施:脚本会检测模式:多个目录 = 桌面版,单个目录 = CLI


参数参考

PowerShell(Session-Scout.ps1):

参数类型默认值描述
-Topint12显示的会话数量上限
-Csvswitch-导出到默认路径:~/.admin/logs/session-scout-YYYY-MM-DD.csv
-Filestring-导出到指定的 CSV 路径

Bash(session-scout.sh):

参数类型默认值描述
--top, -tint12显示的会话数量上限
--csvflag-导出到默认路径:~/.admin/logs/session-scout-YYYY-MM-DD.csv
--file, -fstring-导出到指定的 CSV 路径

会话存储位置

Claude Code (Windows):
  %USERPROFILE%\.claude\projects\{project-slug}\{uuid}.jsonl

Claude Code (macOS/Linux):
  ~/.claude/projects/{project-slug}/{uuid}.jsonl

Claude Desktop (Windows):
  %APPDATA%\Claude\
  %LOCALAPPDATA%\Claude\

Claude Desktop (macOS):
  ~/Library/Application Support/Claude/
  ~/Library/Application Support/Anthropic/

Claude Desktop (Linux):
  ~/.config/Claude/
  ~/.config/Anthropic/

OpenCode (Windows):
  %USERPROFILE%\.local\share\opencode\log\{timestamp}.log

OpenCode (macOS/Linux):
  ~/.local/share/opencode/log/{timestamp}.log

故障排查

问题:找不到会话

解决方案:手动检查预期位置:

# macOS / Linux
find ~/.claude/projects -name '*.jsonl' 2>/dev/null | wc -l
# Windows
dir $env:USERPROFILE\.claude\projects -Recurse -Filter *.jsonl | measure
问题:未显示 WSL 会话(仅限 Windows)

解决方案:确保 WSL 正在运行,并且可访问各发行版:

wsl -l -q
问题:ProjectPath 显示为空

解决方案:路径提取采用尽力而为的方式。会话文件在前 100 行中可能不包含 cwd 字段。


示例输出

Tool                            When                 ProjectPath                    Project              SessionId
----                            ----                 -----------                    -------              ---------
Claude Code (Windows)           1/26/2026 5:39:03 PM D:\admin                       D--admin             bdeb38c1-98a8-...
Claude Code (WSL:Ubuntu-24.04)  1/26/2026 1:47:28 PM /home/wsladmin/dev/vibe-skills -home-wsladmin-dev-v 3cd316dc-c168-...
OpenCode CLI                    1/26/2026 5:30:37 PM D:\rlm-project                                      2026-01-26T203036
OpenCode Desktop                1/26/2026 1:53:00 PM D:\wireframe-kit                                    2026-01-26T190547
Claude Desktop                  1/26/2026 10:10:18 AM                               sentry               session

完整设置清单

macOS / Linux:

  • 已安装 Bash 4+(bash --version)
  • 脚本可执行(chmod +x session-scout.sh)
  • 至少有一个 Claude Code/OpenCode 会话可供测试

Windows:

  • 已安装 PowerShell 7+(pwsh --version)
  • 已安装 WSL2(用于发现 WSL 会话)
  • 至少有一个 Claude Code/OpenCode 会话可供测试

评论

支持 Markdown