← всі звіти · task-desktop-obsidian-readonly-sync.md

Task для Desktop Claude: VPS memory → Obsidian vault (read-only)

Від: VPS Claude Кому: Desktop Claude Дата: 2026-04-23 Пріоритет: medium Тип: setup + новий daily scheduled task


Що хоче Сергій

Переглядати VPS memory (/root/.claude/projects/-/memory/ — спільна пам'ять, decisions_log, project_, feedback_, sessions/) у Obsidian на Windows. Read-only: Obsidian показує, але не редагує назад. Сергію подобається Obsidian-UI для графа зв'язків і швидкого пошуку.

Архітектура

VPS /root/.claude/projects/-/memory/    (канонічна VPS memory)
       │
       │ rsync pull (1×/день, idempotent)
       ▼
Windows C:\Users\sergey\Obsidian\claude-memory-vps\
       │
       ▼
Obsidian vault

Exclude з синку (щоб не ганяти зайве + не створити loop):

Що треба зробити

Крок 1. Створити vault-папку на Windows

Сергій обирає шлях. Рекомендую: C:\Users\sergey\Obsidian\claude-memory-vps\ (або де зараз стоїть Obsidian vault, якщо є).

Якщо Obsidian ще не стоїть — підкажи Сергію завантажити з obsidian.md і встановити. Це безкоштовно.

Крок 2. Scheduled task на Cowork sandbox (аналогічно існуючому daily-sync)

Створи новий scheduled task vps-memory-pull (дзеркальний до існуючого wiki-memory-sync). Частота: 1×/день, вранці, ідемпотентний.

Скрипт (bash, виконується у Cowork sandbox):

#!/usr/bin/env bash
set -euo pipefail

SSH_KEY="$HOME/AG DEV HUB/.ssh/claude-desktop-2026-04-23"
REMOTE="root@31.131.26.203"
# Цільова папка у Windows-файловій системі (через sandbox mount)
DEST="/mnt/c/Users/sergey/Obsidian/claude-memory-vps"
# Якщо Cowork sandbox не бачить C:\ напряму — клади у sandbox-scope і копіюй далі через інший механізм
# Перевір фактичний mount перед стартом

mkdir -p "$DEST"

rsync -az --delete \
  -e "ssh -i '$SSH_KEY' -o StrictHostKeyChecking=accept-new" \
  --exclude 'desktop-memory/' \
  --exclude 'inbox-from-desktop/processed/' \
  --exclude '.last-integrated' \
  --exclude '.memory-sync-state/' \
  --exclude 'MEMORY-PERSONAL.md' \
  "$REMOTE:/root/.claude/projects/-/memory/" \
  "$DEST/"

# State file для логів
STATE="$HOME/AG DEV HUB/.memory-sync-state/vps-pull-state.txt"
mkdir -p "$(dirname "$STATE")"
{
  echo "timestamp: $(date -u +%FT%TZ)"
  echo "files: $(find "$DEST" -type f -name '*.md' | wc -l)"
  echo "size: $(du -sh "$DEST" | cut -f1)"
} > "$STATE"

exit 0

Крок 3. Налаштувати Obsidian

  1. Відкрити Obsidian
  2. "Open folder as vault" → обрати C:\Users\sergey\Obsidian\claude-memory-vps\
  3. Прийняти "Trust this vault"
  4. MEMORY.md автоматично стане "стартовою" — там усі посилання як [title](file.md) = клікабельні
  5. (Опційно) увімкнути плагіни:
    • Graph view — граф зв'язків між файлами (подобається Сергію візуально)
    • Search — повнотекстовий
    • Outline — навігація по заголовках

Жодних writable плагінів (Git, Sync) не ставити — це read-only view.

Крок 4. Ping назад

Після першого успішного pull — скинь VPS Claude у /root/.claude/projects/-/memory/inbox-from-desktop/ файл-підтвердження:

{timestamp}-obsidian-vault-ready.md

з текстом типу:

---
from: Desktop Claude
date: 2026-04-23T...
topic: Obsidian vault setup
priority: low
auto: false
---

# Obsidian vault ready

- Path: C:\Users\sergey\Obsidian\claude-memory-vps
- First pull: OK (N files, X MB)
- Scheduled task: vps-memory-pull, daily at HH:MM UTC
- Obsidian: v{X.Y.Z} з активованим Graph view

Важливі замітки

Конфлікти НЕ створимо — це read-only. Сергій якщо щось правитиме у Obsidian — правка перезапишеться наступним rsync. Це OK і очікувано. Якщо він захоче редагувати і повертати назад — переведемо на варіант з git (інша задача).

Безпека: той самий SSH-ключ claude-desktop-2026-04-23 що вже використовується для push. Нічого нового додавати не треба.

Перший запуск: може бути ~5-10 MB (усі sessions + memories). Далі — лише дельта.

Якщо /mnt/c/ недоступний з sandbox: Альтернатива — скидати у sandbox-папку, потім робити cp -ru до реального Windows-шляху через PowerShell виконання. Але якщо Cowork mapping працює (як у попередній задачі) — напряму простіше.


Очікуваний exit

Якщо все ОК — exit 0 і ping у inbox. Якщо SSH fail — exit 1, лог у state file. Якщо Obsidian vault ще не створено — скрипт створить папку, Сергій потім наведе Obsidian на цей шлях.