Backup of conversations to Obsidian

Automatic conversation backup system for Obsidian with incremental snapshots, hourly breakdowns, and formatted chat-style markdown. Use when setting up conversation archival, preve…

Laserducktales

@laserducktales

What This Skill Does

Automatically backs up AI conversation history to an Obsidian vault with hourly incremental snapshots, formatted chat-style markdown using colored callouts and timestamps, and on-demand full snapshots. Runs via cron for hands-free archival.

Replaces manual copy-pasting or losing conversations on /new resets by providing automatic, incremental backups directly into an Obsidian vault with no LLM token cost.

When to Use It

  • Prevent data loss when resetting a conversation with /new
  • Archive daily chat history into Obsidian with hourly breakdowns
  • Save a full conversation snapshot with a custom topic name for later reference
  • Set up hands-free hourly backups via cron for ongoing conversations
  • Organize chat history by clock hour for end-of-day review
  • Recover messages from a specific time window without manual searching

Install

$ openclaw skills install @laserducktales/obsidian-conversation-backup

Obsidian Conversation Backup

Automatically backs up Clawdbot conversations to Obsidian with beautiful chat-style formatting. Prevents data loss from /new resets with hourly incremental snapshots.

Features

  • Incremental backups: Hourly snapshots of new messages only (no duplication)
  • Chat formatting: Obsidian callouts with emojis, timestamps, proper multi-paragraph support
  • Hourly breakdowns: Organize conversations by clock hour for easy reference
  • Zero token cost: Pure shell scripting, no LLM calls
  • Smart filtering: Skips empty messages and system notifications

Quick Setup

Installation

# Extract the skill (if downloaded as .skill file)
unzip obsidian-conversation-backup.skill
cd obsidian-conversation-backup

# Run installer (interactive)
chmod +x install.sh
./install.sh

The installer will ask for:

  • Obsidian vault path
  • Session directory location
  • Tracking files location

Or manual setup:

  1. Copy config.example to config
  2. Edit config with your paths
  3. Make scripts executable: chmod +x scripts/*.sh

Enable Automatic Backups

Add to crontab for hourly backups:

crontab -e

# Add this line (runs every hour at :00)
0 * * * * /path/to/obsidian-conversation-backup/scripts/monitor_and_save.sh

Customize Chat Appearance (Optional)

Edit scripts/format_message_v2.jq to change:

  • User emoji (default: 🐉)
  • Assistant emoji (default: 🦞)
  • Callout types (default: [!quote] for user, [!check] for assistant)

Usage

Automatic Incremental Backups

Once configured in cron, the system runs automatically:

Every hour:

  • Checks for new messages (≥10 lines)
  • Creates incremental snapshot if found
  • Saves to: YYYY-MM-DD-HHmm-incremental.md
  • Skips if no new conversation

Example output:

2026-01-20-1500-incremental.md (messages from last save to now)
2026-01-20-1600-incremental.md (new messages since 15:00)
2026-01-20-1700-incremental.md (new messages since 16:00)

Protection: Max conversation loss = 1 hour

On-Demand Full Snapshot

Save complete conversation anytime:

scripts/save_full_snapshot.sh [topic-name]

Examples:

scripts/save_full_snapshot.sh important-decisions
scripts/save_full_snapshot.sh bug-fix-discussion
scripts/save_full_snapshot.sh  # uses "full-conversation" as default

Hourly Breakdown (Organization)

Create organized breakdown by clock hour:

scripts/create_hourly_snapshots.sh YYYY-MM-DD

Example:

scripts/create_hourly_snapshots.sh 2026-01-20

Output:

2026-01-20-1500-hourly.md (15:00-15:59 messages)
2026-01-20-1600-hourly.md (16:00-16:59 messages)
2026-01-20-1700-hourly.md (17:00-17:59 messages)

Use case: End-of-day organization for easy reference

Chat Format

Messages appear as colored Obsidian callouts:

User messages (blue [!quote] callout):

> [!quote] 🐉 User · 15:30
> This is my message

Assistant messages (green [!check] callout):

> [!check] 🦞 Zoidbot · 15:31  
> This is the response

Features:

  • Timestamps (HH:MM format)
  • Multi-paragraph support (uses <br><br> for paragraph breaks)
  • Proper line wrapping (all lines prefixed with > )
  • Empty messages filtered out
  • System notifications excluded

Token Monitoring

The monitor_and_save.sh script also tracks token usage:

Warnings via Telegram:

  • 800k tokens (80%): "Consider /new soon"
  • 900k tokens (90%): "Run /new NOW"

Implementation:

# Sends warning only when crossing threshold (one-time)
# No repeated warnings
# Resets when back under 800k

File Structure

scripts/
├── monitor_and_save.sh           # Hourly incremental backup + token monitoring
├── save_full_snapshot.sh         # On-demand full conversation save
├── create_hourly_snapshots.sh    # Organize by clock hour
└── format_message_v2.jq          # Chat formatting logic

Configuration

Tracking Files

The system uses hidden files to track state:

/root/clawd/.last_save_line_count       # For token monitoring
/root/clawd/.last_snapshot_timestamp    # For incremental saves
/root/clawd/.token_warning_sent         # For warning deduplication

Note: Do not delete these files or incremental backups may duplicate content

Session File Location

Default: /root/.clawdbot/agents/main/sessions/*.jsonl

If your session files are elsewhere, update the SESSION_FILE path in each script.

Troubleshooting

No snapshots being created

  1. Check cron is running: crontab -l
  2. Verify script has execute permission: chmod +x scripts/*.sh
  3. Check logs: Run manually to see errors

Messages breaking out of callouts

  • Ensure format_message_v2.jq has the gsub("\n\n"; "<br><br>") line
  • Check that all lines have > prefix
  • Verify jq is installed: jq --version

Duplicated content in snapshots

  • Delete tracking files and let system reset:
    rm /root/clawd/.last_snapshot_timestamp
    

Empty callout boxes appearing

  • Update format_message_v2.jq to filter empty messages
  • Check for the if ($text_content | length) > 0 condition

Requirements

  • jq: JSON parsing (apt-get install jq)
  • cron: For automatic backups
  • Obsidian vault: Target directory for markdown files

Advanced Customization

Change Backup Frequency

Edit crontab:

# Every 2 hours
0 */2 * * * /path/to/monitor_and_save.sh

# Every 30 minutes
*/30 * * * * /path/to/monitor_and_save.sh

# Specific times only (9am, 12pm, 6pm, 9pm)
0 9,12,18,21 * * * /path/to/monitor_and_save.sh

Change Minimum Message Threshold

Edit monitor_and_save.sh:

# Change from 10 to 5 messages minimum
if [[ $new_lines -lt 5 ]]; then

Add More Callout Styles

Obsidian callout types:

  • [!quote] - Blue
  • [!check] - Green
  • [!note] - Cyan
  • [!tip] - Purple
  • [!warning] - Orange
  • [!danger] - Red

Customize Telegram Notifications

Edit monitor_and_save.sh to change warning text or add custom notifications.

Best Practices

  1. Run hourly breakdown at end of day - Use as organizational tool, not backup
  2. Keep incremental backups running - This is your safety net
  3. Test scripts after setup - Run manually first to verify output
  4. Backup tracking files - Include .last_snapshot_timestamp in vault backups
  5. Use descriptive topic names - For full snapshots, use meaningful names

Example Workflow

Daily routine:

  1. Automatic incremental backups run hourly (no action needed)
  2. At end of day: scripts/create_hourly_snapshots.sh 2026-01-20
  3. Review organized hourly files in Obsidian
  4. Delete old incrementals if desired (hourly breakdown covers them)

Before /new reset:

  1. Optional: scripts/save_full_snapshot.sh before-reset
  2. Run /new safely - conversation is backed up
  3. Continue chatting - incrementals resume automatically

Integration with Clawdbot

This skill works with:

  • HEARTBEAT.md: Automatic token monitoring
  • MEMORY.md: Conversation archival system
  • Telegram integration: Warning notifications
  • Any Obsidian vault: Works with existing vaults

Credits

Created by the Clawdbot community for reliable conversation backup and beautiful Obsidian formatting.

Top skills in this category

Proactive Agent Lite

@bestrocky

Transform AI agents from task-followers into proactive partners with memory architecture, reverse prompting, and self-healing patterns. Lightweight version f...

6241k

腾讯文档 TENCENT DOCS

@liyang58

腾讯文档(docs.qq.com)-在线云文档平台,是创建、编辑、管理文档的首选 skill。涉及"新建/创建/编辑/读取/查看/搜索文档"、"保存文件"、"云文档"、"腾讯文档"、"docs.qq.com"等操作,请优先使用本 skill。支持能力:(1) 创建各类在线文档(文档/Word/Excel/幻灯片/...

1919k

Figma

@maddiedreese

Professional Figma design analysis and asset export. Use for extracting design data, exporting assets in multiple formats, auditing accessibility compliance, analyzing design systems, and generating comprehensive design documentation. Read-only analysis of Figma files with powerful export and reporting capabilities.

1610.0k

Smart Model Switching

@millibus

Auto-route tasks to the cheapest Claude model that works correctly. Three-tier progression: Haiku → Sonnet → Opus. Classify before responding. HAIKU (default): factual Q&A, greetings, reminders, status checks, lookups, simple file ops, heartbeats, casual chat, 1-2 sentence tasks. ESCALATE TO SONNET: code >10 lines, analysis, comparisons, planning, reports, multi-step reasoning, tables, long writing >3 paragraphs, summarization, research synthesis, most user conversations. ESCALATE TO OPUS: architecture decisions, complex debugging, multi-file refactoring, strategic planning, nuanced judgment, deep research, critical production decisions. Rule: If a human needs >30 seconds of focused thinking, escalate. If Sonnet struggles with complexity, go to Opus. Save 50-90% on API costs by starting cheap and escalating only when needed.

216.8k

AI Daily Briefing

@jeffjhunter

Start every day focused. Get a morning briefing with overdue tasks, today's priorities, calendar overview, and context from recent meetings. Works with ai-meeting-notes to-do list. No setup. Just say 'briefing'.

206.8k