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-backupObsidian 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:
- Copy
config.exampletoconfig - Edit
configwith your paths - 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
- Check cron is running:
crontab -l - Verify script has execute permission:
chmod +x scripts/*.sh - Check logs: Run manually to see errors
Messages breaking out of callouts
- Ensure
format_message_v2.jqhas thegsub("\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.jqto filter empty messages - Check for the
if ($text_content | length) > 0condition
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
- Run hourly breakdown at end of day - Use as organizational tool, not backup
- Keep incremental backups running - This is your safety net
- Test scripts after setup - Run manually first to verify output
- Backup tracking files - Include
.last_snapshot_timestampin vault backups - Use descriptive topic names - For full snapshots, use meaningful names
Example Workflow
Daily routine:
- Automatic incremental backups run hourly (no action needed)
- At end of day:
scripts/create_hourly_snapshots.sh 2026-01-20 - Review organized hourly files in Obsidian
- Delete old incrementals if desired (hourly breakdown covers them)
Before /new reset:
- Optional:
scripts/save_full_snapshot.sh before-reset - Run
/newsafely - conversation is backed up - 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
@bestrockyTransform AI agents from task-followers into proactive partners with memory architecture, reverse prompting, and self-healing patterns. Lightweight version f...
腾讯文档 TENCENT DOCS
@liyang58腾讯文档(docs.qq.com)-在线云文档平台,是创建、编辑、管理文档的首选 skill。涉及"新建/创建/编辑/读取/查看/搜索文档"、"保存文件"、"云文档"、"腾讯文档"、"docs.qq.com"等操作,请优先使用本 skill。支持能力:(1) 创建各类在线文档(文档/Word/Excel/幻灯片/...
Figma
@maddiedreeseProfessional 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.
Smart Model Switching
@millibusAuto-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.
AI Daily Briefing
@jeffjhunterStart 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'.