Obsidian plugin for bidirectional synchronization of documentation between Obsidian vault and AI development projects (Claude Code, Cursor AI, VS Code with AI assistants).
When working with AI coding assistants, documentation gets scattered:
- AI agents create technical docs in
project/docs/ - You write specs and PRDs in Obsidian
- Manual copying leads to outdated docs and context fragmentation
EVC Local Sync automatically synchronizes docs/ folders between your AI projects and Obsidian, ensuring a single source of truth with minimal context overhead.
- Bidirectional sync between AI projects and Obsidian vault
- Multiple sync modes: Manual, on-change, on-startup, scheduled
- Smart conflict resolution: Newer wins, AI wins, Obsidian wins, or always ask
- File deletion sync — deleted files can be synced across locations (v1.0.1)
- Per-mapping settings — override conflict resolution and file types per project (v1.0.1)
- Dry-run preview to see changes before syncing
- File watching with configurable debounce
- Symlink support for complex project structures
- Detailed logging with filtering and CSV export
- Backup creation before overwriting files
- Import/Export configuration for portability
- Supports .md, .canvas, .excalidraw.md files
- Open Obsidian Settings → Community Plugins
- Disable Safe Mode if prompted
- Click Browse and search for "EVC Local Sync"
- Install and enable the plugin
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create folder
.obsidian/plugins/evc-local-sync/in your vault - Copy downloaded files to this folder
- Enable plugin in Settings → Community Plugins
- Install BRAT plugin
- Add beta plugin:
entire-vc/evc-local-sync-plugin - Enable the plugin
- Open Settings → EVC Local Sync
- Click "Add Mapping"
- Configure:
- Name: e.g., "My Project"
- AI Project Path:
/Users/you/Projects/my-appor~/Projects/my-app - Obsidian Folder: Folder in your vault for this project
- Docs Subfolder: Usually
docs
- Use the ribbon icon (left sidebar) for quick sync
- Or Command Palette →
EVC Sync: Sync All Projects - Or enable auto-sync in settings
| Command | Description |
|---|---|
EVC Sync: Sync All Projects |
Sync all enabled mappings |
EVC Sync: Sync Current Project |
Sync mapping for active file |
EVC Sync: Dry Run |
Preview changes without syncing |
EVC Sync: View Logs |
View sync history |
EVC Sync: Open Settings |
Open plugin settings |
| Setting | Default | Description |
|---|---|---|
| Sync Mode | Manual | Manual, on-change, on-startup, scheduled |
| Scheduled Interval | 30 min | Interval for scheduled sync |
| Debounce | 3000ms | Delay before on-change sync triggers |
| Conflict Resolution | Newer wins | How to handle file conflicts |
| Create Backups | Enabled | Backup files before overwriting |
| Follow Symlinks | Disabled | Follow symbolic links during sync |
| Sync Deletions | Disabled | Sync file deletions between locations (v1.0.1) |
| Confirm Deletions | Enabled | Confirm before deleting files (v1.0.1) |
| File Types | .md, .canvas, .excalidraw.md | File extensions to sync |
| Log Retention | 7 days | How long to keep sync logs |
Each mapping can override global settings in the "Advanced settings" section:
- Conflict resolution — Use different strategy per project
- File types — Sync different file types per project
- Exclude patterns — Custom exclusions per project
| Strategy | Description |
|---|---|
| Newer wins | File with latest modification time wins |
| AI wins | Always prefer AI project version |
| Obsidian wins | Always prefer Obsidian version |
| Always ask | Prompt for each conflict |
These paths are automatically excluded from sync:
node_modules/.git/.obsidian/.DS_Store.space/attachments/(optional)
Custom exclusion patterns can be added in settings.
- Obsidian: 1.4.0+
- Platforms: macOS, Windows, Linux
- Works with: Claude Code, Cursor AI, VS Code + AI assistants
- Compatible plugins: Obsidian Sync, Obsidian Git, Self-hosted LiveSync
# Clone the repository
git clone https://github.com/entire-vc/evc-local-sync-plugin.git
cd evc-local-sync-plugin
# Install dependencies
npm install
# Development build (watch mode)
npm run dev
# Production build
npm run build
# Lint
npm run lintsrc/
├── main.ts # Plugin entry point
├── settings.ts # Settings tab UI
├── sync-engine.ts # Core sync logic
├── file-watcher.ts # File change detection
├── mapping-manager.ts # Project mappings CRUD
├── conflict-resolver.ts # Conflict handling
├── logger.ts # Sync logging
└── ui/
├── status-bar.ts # Status bar indicator
├── ribbon-icon.ts # Ribbon quick action
└── modals/ # UI modals
- Ensure the path exists and is accessible
- Use absolute paths:
/Users/you/Projects/my-app - Home directory shortcut works:
~/Projects/my-app
- Check if file type is enabled in settings
- Verify the file is not in an excluded folder
- Ensure the mapping is enabled
- Run Dry Run to see what would be synced
- Verify sync mode is set to "On Change"
- Check if file watcher is active (status bar shows watching icon)
- Increase debounce time if changes are too rapid
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -am 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Open a Pull Request
MIT © Entire VC
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with ❤️ for seamless AI-assisted development workflows.