README file from
GithubMoving 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 [email protected]: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.