sync-claude-sessions
Sync Claude Sessions
Export Claude Code conversations to Obsidian for observability and analysis.
Quick Reference
# Alias (add to ~/.zshrc)
alias cs="python3 ~/.claude/skills/sync-claude-sessions/scripts/claude-sessions"
# Common commands
cs list # Active sessions
cs list --all # All sessions
cs export --today # Export today's sessions
cs resume --pick # Interactive resume
cs note "got it working" # Add timestamped comment
cs close "done" # Mark session done
Commands
| Command | Description |
|---|---|
sync |
Sync session (hook or explicit) |
export |
Batch export (--today, --all, <file>) |
resume |
Resume session (--pick, --active, <file>) |
note |
Add timestamped comment |
close |
Mark done + optional comment |
list |
List sessions (--active, --all, --json) |
Workflow Routing
| Task | Workflow |
|---|---|
| Enable live sync hooks | workflows/setup.md |
| Log/annotate session | workflows/log-session.md |
Output
Sessions exported to Claude-Sessions/ with:
- Frontmatter:
type,date,session_id,title,summary,skills,messages,status,tags,rating,comments - Content: Summary, Skills Used (linked), Artifacts (wiki-linked), My Notes, Conversation
Preserved on Sync
## My Notessection- Frontmatter:
comments,related,status,tags,rating
Frontmatter Schema
See
Templates/Types/claude-session.mdfor the canonical template.
type: claude-session
date: YYYY-MM-DD
session_id: uuid
title: "..."
summary: "..." # auto-generated by Claude Code or haiku
skills: [skill1, skill2]
messages: 42
last_activity: ISO timestamp
status: active | done | blocked | handoff
tags: [] # see schema/tags.yaml
rating: null # 1-10
comments: |
[2026-02-05 14:30] Comment here
[2026-02-05 15:00] Another comment
related: []
Tags Schema
Tags are defined in schema/tags.yaml with descriptions, keywords, and examples.
Type tags: research, implementation, debugging, planning, brainstorm, admin, quick, video, automation, writing
Project tags: lab, openclaw, personal, client
Agent should read schema/tags.yaml to validate tags when logging sessions.
More from artemxtech/personal-os-skills
tasknotes
Manage tasks in Obsidian via TaskNotes plugin API. Use when user wants to create tasks, list tasks, query by status or project, update task status, delete tasks, or check what they need to do.
15recall
Load context from vault memory. Temporal queries (yesterday, last week, session history) use native JSONL timeline. Topic queries use QMD BM25 search. "recall graph" generates interactive temporal graph of sessions and files. Every recall ends with "One Thing" - the single highest-leverage next action synthesized from results. Use when user says "recall", "what did we work on", "load context about", "remember when we", "prime context", "yesterday", "what was I doing", "last week", "session history", "recall graph", "session graph".
12notebooklm
Turn expert podcasts into personalized protocols with cited experiments. Load 300 episodes from terminal, run an expert-informed interview, build experiments in your Obsidian morning routine. Use when user says \"notebooklm\", \"load channel\", \"expert interview\", \"notebooklm ask\", \"health protocol\", or wants to turn expert content into actionable experiments.
12granola
Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
9wispr-flow
Analyze Wispr Flow voice dictation data. Stats, search, export, visualizations. Use when user says "dictation history", "word counts", "voice analytics", "how much did I dictate", "search my dictation".
9notebooklm-import
Import NotebookLM notebooks into your Obsidian vault as linked knowledge graphs. Sources become wikilink-able files, Q&A answers get citations resolved to [[wikilinks]] with passage-level deep links. Use when user says "notebooklm import", "import notebook", "notebooklm sources", or wants to import NotebookLM data into vault files.
6