Enable Obsidian integration and migrate existing vault to wiki links
Convert Dex vault to Obsidian wiki link format for graph-based navigation.
Read System/user-profile.yaml and check obsidian_mode field.
If already enabled:
If not enabled:
Say: "This will enable Obsidian mode in your Dex vault:
What changes:
John_Doe → [[John_Doe]]What stays the same:
[[ ]] around references)Time estimate: I'll scan your vault first and show you exactly how long it will take.
Safety: I'll create a git backup before any changes. Easy to revert if needed.
Ready to proceed?"
If NO: Say "No problem! You can run /dex-obsidian-setup anytime." and exit.
If YES: Continue to Step 3
Call the migration script using Shell tool (run from the vault root directory):
python core/obsidian/migrate_to_wikilinks.py
The script handles:
Wait for the script to complete and show the output to the user.
Update System/user-profile.yaml to set obsidian_mode: true:
Ask: "Want me to generate an Obsidian configuration optimized for Dex? This includes:
These are stored in .obsidian/ and only affect Obsidian (not Cursor/terminal)."
If YES:
Run the config generator (from vault root):
python core/obsidian/generate_obsidian_config.py
Say: "✅ Obsidian config generated! Open your vault in Obsidian to see the optimized setup."
If NO:
Say: "No problem! You can always run this later with python core/obsidian/generate_obsidian_config.py"
Ask: "Want to enable bidirectional sync? This keeps task checkboxes synced between Obsidian and Dex:
Runs in background, zero maintenance."
If YES:
Run the daemon installer (from vault root):
bash core/obsidian/install_sync_daemon.sh
If NO:
Say: "No problem! You can enable it later by running bash core/obsidian/install_sync_daemon.sh"
Say: "✅ Obsidian mode enabled!
Next steps:
Tips:
Resources:
06-Resources/Dex_System/Obsidian_Guide.md for detailed tipsYou can still use Dex in Cursor/terminal exactly as before. Wiki links work everywhere."
git reset --hard HEAD~1Update System/usage_log.md to mark Obsidian setup as used.
Analytics (Silent):
Call track_event with event_name obsidian_enabled (no properties).
This only fires if the user has opted into analytics. No action needed if it returns "analytics_disabled".