Real-time sync between your GitHub projects and Obsidian Vault
If you're like me, you write documentation in your GitHub repos but manage your knowledge in Obsidian. The problem? Manually copying files breaks your wiki-links, and Obsidian can't read GitHub's relative links. Plus, pointing Obsidian directly at your GitHub folder? That creates serious lag with all those git files and large repositories.
ObsidianBridge runs quietly in your system tray and automatically keeps your Obsidian vault in sync with your GitHub projects. It:
- Watches for changes in your GitHub folders in real-time
- Rewrites wiki-links so they work perfectly in Obsidian
- Generates smart indexes that make folders show up as connected nodes in your graph
- Creates hierarchical navigation - main index → folder indexes → files
- Keeps your vault fast by only syncing processed markdown, not git history
GitHub/ ObsidianBridge Vault/
├── project-a/ (processes & copies) ├── project-a/
│ ├── README.md → │ ├── README.md → │ ├── README.md
│ └── docs/ │ └── docs/ │ └── docs/
│ └── guide.md → │ └── guide.md → │ └── guide.md
├── project-b/ │ └── notes.md → │ └── notes.md
│ └── notes.md → │ └── index.md (generated) │ └── index_project.md
└── .git/ (ignored) │ └── index_project_docs.md
(one-way sync only)
Key insight: Your vault contains processed copies, not live connections to GitHub. This keeps Obsidian fast while giving you all the knowledge management power.
# Clone or download
cd ObsidianBridge
# Install dependencies
pip install -r requirements.txt# Launch the app
python ObsidianBridge.pyOn first run, you'll see setup instructions if directories don't exist.
Right-click the tray icon → Settings (or edit config.json):
{
"SOURCE_DIRECTORY": "C:\\Users\\You\\Documents\\GitHub",
"DESTINATION_DIRECTORY": "C:\\Users\\You\\Documents\\Vault",
"PRESERVE_STRUCTURE": true,
"ENABLE_TAGGING": false,
"COLLISION_DELAY": 2,
"DEBOUNCE_DELAY": 5,
"OLLAMA_MODEL": "llama3.1:8b"
}The app runs in your system tray:
| Action | How |
|---|---|
| View status | Double-click tray icon or "Show Window" |
| Force sync | Right-click → "Force Sync All" |
| Pause sync | Right-click → "Toggle Watch" |
| Open vault | Right-click → "Open Vault" |
| Settings | Right-click → "Settings..." |
| Exit | Right-click → "Exit" |
Status Window:
The status window shows real-time sync activity, colored logs, and quick actions.
If you want automatic tagging:
# Install Ollama
# https://ollama.com/download
# Pull a model
ollama pull llama3.1:8b
# Start Ollama server
ollama serveThen enable in Settings: ENABLE_TAGGING = true
You edit file.md in GitHub repo
↓
watchdog detects change
↓
Debounce wait (5s default)
↓
Check collision prevention
↓
Create backup
↓
Rewrite WikiLinks
↓
Generate AI tags (optional)
↓
Write to Vault
↓
Update index.md
↓
Clean up backup
I built this not just for syncing files, but to create a contextual brain for my AI IDE. Here's how I use it:
When working on multiple projects, AI assistants lose context between sessions. I needed a way to:
- Persist knowledge across conversations
- Search my entire codebase before answering questions
- Maintain project memory without re-explaining everything
- Connect ideas across different repositories
By syncing all my GitHub projects to Obsidian, I get:
1. Persistent Memory
- Every project, every note, every decision lives in the vault
- AI can read the vault via MCP (Model Context Protocol)
- Context survives across sessions and tools
2. Connected Knowledge
- The graph view shows relationships between projects
- Folder indexes create hierarchical structure
- Wiki-links connect related concepts automatically
3. Searchable Context
- Before answering, AI can search the entire vault
- Find relevant files, past decisions, technical notes
- No more "I don't have context about your project"
GitHub Repos → ObsidianBridge → Vault → AI IDE (via MCP)
↑ ↓
└────────────── Context Memory ←───────────────────┘
- Sync all projects to the vault automatically
- Connect Obsidian MCP to my AI IDE
- AI reads vault for context before responding
- I write memory notes in Obsidian during work
- Start a new session with AI
- AI queries vault: "What do I know about this project?"
- Finds:
index_project.md→docs/→architecture.md - AI has full context: tech stack, decisions, current status
- We continue work without re-explaining
Your vault becomes a second brain that:
- Survives across AI sessions
- Connects all your projects visually
- Provides instant context retrieval
- Grows smarter as you work
This isn't just file syncing - it's building a knowledge infrastructure for AI-assisted development.
What the connected graph looks like:
Each hub represents a project, with folder indexes creating the structure that connects everything together.
| Method | Command | Best For |
|---|---|---|
| Python | python ObsidianBridge.py |
Development |
| Batch | Launch ObsidianBridge.bat |
Quick start |
| Shortcuts | python create_shortcuts.py |
Desktop/Start Menu |
| EXE | python build_exe.py |
Sharing with others |
One-Way Sync Only:
- Edit in GitHub → Appears in Obsidian
- Edit in Obsidian → Does NOT sync back
Vault Contains Processed Copies:
- Vault files are copies, not live connections
- No git history or version control in vault
- Links are rewritten for Obsidian compatibility
- Index files are auto-generated for navigation
This prevents conflicts and keeps GitHub as the source of truth.
File Safety:
- Backups created before every change (kept last 5)
- Automatic rollback on sync failure
- File size limits (10MB default) skip huge files
| Issue | Solution |
|---|---|
| App won't start | Check sync_log.txt for errors |
| "Python not found" | Add Python to PATH or use EXE version |
| Ollama errors | Set ENABLE_TAGGING: false or start ollama serve |
| High CPU | Normal during initial sync; idle after |
| Links broken | Enable PRESERVE_STRUCTURE: true |
MIT License - Use, modify, distribute freely.

