Moving Note
approvedby Yusen
Sync your notes via Git on desktop and GitHub API on mobile. Simple, reliable, cross-device. - This plugin has not been manually reviewed by Obsidian staff.
Moving Note
中文 | English
A simple Obsidian sync plugin: Git on desktop, GitHub API on mobile. Full read-write support on both platforms.
Moving Note is a cross-device note sync plugin for Obsidian. On desktop, it leverages system Git for automatic commit and push. On Android, it uses the GitHub API for pulling and pushing changes — no local Git required. Simple to configure, one-click sync, keeping your notes consistent across devices.
✨ Features
- Desktop: Automatic commit & push to GitHub via system Git
- Android: Sync via GitHub API — pull remote changes and push local edits
- One-click sync: Pull → detect local changes → push, all in one step
- Auto-sync: Scheduled sync and sync-on-startup
- Conflict handling: Desktop generates conflict report files; mobile uses remote as source of truth
- Flexible config: Custom repo URL, branch name, commit message template
📦 Installation
- Download
main.js,manifest.json, andstyles.css - Create a folder
moving-noteunder.obsidian/plugins/in your vault - Place the files in that folder
- Enable Moving Note in Obsidian Settings → Community Plugins
⚙️ Configuration
Desktop
- Enter the Repository URL in settings (HTTPS or SSH)
https://github.com/user/repo git@github.com:user/repo.git - Set the Branch name (default:
main) - Ensure Git is installed and credentials are configured (SSH key or credential manager)
Android
- Enter the Repository URL in settings
- Click "Open GitHub to Create Token" — permissions are pre-filled, just confirm
- Paste the token and click "Verify & Login"
- Set the Branch name (must match the branch used on desktop)
🔄 Sync Logic
Desktop (full read/write)
Pull remote changes
↓
Commit local changes
↓
Push to remote
- Automatically ensures the current branch matches settings
- Stashes uncommitted changes before switching branches
- Skips pull if remote branch doesn't exist (e.g., first push)
Android (read + write via API)
- First sync: Downloads all files from remote
- Subsequent syncs: Detects local changes → pulls remote updates → pushes local edits via GitHub Git Data API
📋 Commands
| Command | Description |
|---|---|
Moving Note: Sync | Full sync (pull → detect changes → push) |
Moving Note: Pull | Pull remote updates only |
Moving Note: Commit & Push | Commit and push local changes only |
Moving Note: Show Sync Status | View current repo and sync info |
There's also a sync button in the sidebar ribbon for quick access.
📝 Commit Message Template
Available placeholders:
| Placeholder | Replaced with |
|---|---|
{{date}} | Current time, format: 2026-06-13 12:00:00 |
{{hostname}} | Repository owner name from settings |
Default template: vault backup: {{date}}
⚡ Auto-sync
| Setting | Description |
|---|---|
| Sync on startup | Automatically sync once when Obsidian starts |
| Auto-sync interval | Scheduled sync (minutes), set to 0 to disable |
❓ FAQ
Q: Do I need to log in to GitHub? A: Optional on desktop, required on mobile.
Q: Can Android push changes? A: Yes. Android supports both pull and push via GitHub API.
Q: What about conflicts?
A: On desktop, a conflict-files-moving-note.md file is generated listing conflicting files. Resolve them manually and sync again.
Q: Can I use GitLab / Gitea? A: Desktop supports any Git remote. Android currently only supports GitHub API.
🛠️ Development
npm install
npm run dev
npm run build
🙏 Acknowledgments
- obsidian-git — The inspiration behind this plugin.
📄 License
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.