Skip to content

Instantly share code, notes, and snippets.

Last active April 22, 2024 09:33
Show Gist options
  • Save agmm/ea97a3c2b5bf713567aad89672116e12 to your computer and use it in GitHub Desktop.
Save agmm/ea97a3c2b5bf713567aad89672116e12 to your computer and use it in GitHub Desktop.
How to sync Obsidian Notes on iOS

⚠️ To prevent data loss make sure you understand how rclone sync and rclone copy work.

How to sync Obsidian Notes on iOS

  1. Download iSH from the AppStore

  2. Open iSH and install rclone and nano with the following command:

apk add rclone nano
  1. Create a new remote using
rclone config
  1. Open your .profile file to add the push and pull commands
nano ~/.profile
  1. Add the following lines to your profile
pull() {
    rclone sync -P "REMOTE_NAME:NOTES_PATH" ~/Notes

push() {
    rclone copy -P ~/Notes "REMOTE_NAME:NOTES_PATH"
  1. Create a directory to mount your notes on iSH
mkdir ~/Notes
  1. Mount the Obsidian folder on iOS to the iSH app. After running the following command a file selection dialog will appear, select your local Obsidian vault.
mount -t ios . ~/Notes
  1. Restart the shell by quitting the iSH app or executing exit.

  2. Run pull to sync the notes from your remote machine to the iOS device. Run push to upload the files on the iOS device to the remote machine.


Note that the pull command will perform an rclone sync action instead of an rclone copy. An rclone sync will make the iOS vault identical to the remote, this means that it will delete any file on the local vault that is not present on the remote.

Copy link

I recommend a step before 4, to install nano as it isn't included in the linux alpine in the iSH app.

apk add nano

Copy link

agmm commented Mar 8, 2022

I modified the first command to take your suggestion into account. Thanks.

Copy link

ashishbhateja commented Mar 24, 2022

Thanks for this. After completing the setup, does the sync happen in the background? Or push/pull has to be done each time to copy the changes?

Copy link

im not expert but i think you need do this manually E>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment