一个独立的 Claude Code 会话同步脚本,用来把本机 Claude Code 对话日志持续同步到 Obsidian Markdown 笔记。
它不是 Claude Code skill,也不需要在对话里手动调用。只要脚本保持运行,它就会监听 Claude Code 本地项目会话 JSONL 文件,并自动刷新 Obsidian 中对应的 Markdown 文件。
- 自动监听 Claude Code 本地会话日志:
%USERPROFILE%\.claude\projects\**\*.jsonl - 自动选择最近更新的会话文件
- 提取
user和assistant消息 - 默认过滤工具调用、tool result、skill 注入内容和环境 bootstrap
- 每个 Claude Code session 对应一个稳定 Markdown 文件
- 会话继续更新时,覆盖刷新同一个文件
- 使用 UTF-8 with BOM 写入,兼容 Windows 和 Obsidian 中文显示
克隆仓库:
git clone https://github.com/Zeon814/claude-obsidian-sync.git
cd claude-obsidian-sync脚本只依赖 Python 标准库,不需要安装额外依赖。
推荐设置环境变量:
[Environment]::SetEnvironmentVariable("OBSIDIAN_VAULT", "D:\Documents\Obsidian Vault", "User")当前 PowerShell 窗口立即生效:
$env:OBSIDIAN_VAULT = "D:\Documents\Obsidian Vault"也可以运行时显式传入:
python scripts\watch_claude_sessions.py --vault "D:\Documents\Obsidian Vault"持续同步最近的 Claude Code 会话:
python scripts\watch_claude_sessions.py保持这个 PowerShell 窗口打开。你继续和 Claude Code 聊天时,脚本会自动更新 Obsidian 笔记。
只同步一次,用于测试:
python scripts\watch_claude_sessions.py --once指定某个 Claude Code 会话文件:
python scripts\watch_claude_sessions.py --session-file "C:\Users\Administrator\.claude\projects\F--shushu\535fa878-acf8-4c18-9532-694f342e66b1.jsonl"调整轮询间隔:
python scripts\watch_claude_sessions.py --interval 5包含工具结果、skill 注入和 bootstrap 类记录:
python scripts\watch_claude_sessions.py --include-synthetic默认输出到:
<OBSIDIAN_VAULT>\claude-code\YYYY-MM-DD\<对话标题> [session-id].md
例如:
D:\Documents\Obsidian Vault\claude-code\2026-05-20\Java开发工程师 [535fa878].md
文件名带短 session id,因此同一段 Claude Code 对话会稳定覆盖同一个 Markdown 文件。
- 这是外部 watcher,不是 Claude Code 内置后台功能。
- 脚本运行时才会同步;关闭 PowerShell 窗口后同步停止。
- Claude Code 如果未来修改 project JSONL 格式,脚本可能需要更新。
- 当前脚本默认过滤工具输出,避免 Obsidian 笔记被大量命令日志淹没。
当前仓库暂未添加许可证。