2.3 KiB
2.3 KiB
Obsidian Coupling (Second-Brain 2.0)
This integrates an Obsidian vault with Second-Brain via two cron tasks:
cron_tasks/ingest_obsidian.py(vault → Second-Brain)cron_tasks/export_obsidian.py(Second-Brain → vault)
All settings live in second-brain/data/obsidian_config.json.
1) Install / Sync the vault to the server
You need a local folder on the server that contains an Obsidian vault (it must contain a .obsidian/ directory), e.g.:
/srv/obsidian/MyVault/data/obsidian/MyVault/root/Obsidian/MyVault
How you sync it is up to you (Syncthing, rsync, SMB mount, etc.).
2) Set vault_path in config (auto or manual)
Auto-discover (only writes if unambiguous)
python3 second-brain/scripts/discover_obsidian_vault.py
python3 second-brain/scripts/discover_obsidian_vault.py --write
If multiple vaults are detected, it prints them and refuses to write.
Manual
Edit second-brain/data/obsidian_config.json and set:
vault_pathto the vault directory (the parent of.obsidian/)
3) Enable ingest/export
In second-brain/data/obsidian_config.json:
- Set
enabled.ingesttotrueto ingest vault markdown into Second-Brain - Set
enabled.exporttotrueto export Second-Brain engrams into the vault
4) Enable timers (systemd)
This repo ships unit files in systemd/:
systemd/openclaw-secondbrain-ingest-obsidian.servicesystemd/openclaw-secondbrain-ingest-obsidian.timersystemd/openclaw-secondbrain-export-obsidian.servicesystemd/openclaw-secondbrain-export-obsidian.timer
Install them (copy or symlink) to /etc/systemd/system/, then:
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-secondbrain-ingest-obsidian.timer
sudo systemctl enable --now openclaw-secondbrain-export-obsidian.timer
5) Verify
Run once manually:
python3 openclaw_cron_wrapper.py ingest_obsidian
python3 openclaw_cron_wrapper.py export_obsidian
What to expect:
- If
vault_pathis missing/invalid, both tasks skip safely (no writes to random paths). - Ingest creates/updates
second-brain/data/obsidian_ingest_state.json. - Export writes markdown files to
<vault_path>/<export.subdir>/(default:SecondBrain/) and tracks state insecond-brain/data/obsidian_export_state.json.