This describes my current settings for syncing my Logseq graph between devices. I’ve been quite enthousiastic about Logseq, and now several friends are also starting to using it. This post would benefit them, as well as perhaps you, the reader.
Preface
I’ve been using Logseq for a couple of months now, and I’m enthusiastic about it. From past note taking I have big collections of notes in Obsidian, OneNote, Google Keep and plain markdown. So far I enjoy Logseq the most. One aspect which I miss is consistent and worry free syncing between devices. Logseq offers a paid sync service, but I am frugal and overthinking costs nothing.
Below I will outline my current setup for the past months, and write down what my setup will be in the future. This post will be updated in the future to document my experiences.
Motivation for these setups
Sync issues immediately invalidate the trust I had
when I am writing down thoughts persistently.A sync issue removes me from the thoughts I had
and forces me to solve the sync.In the past I’ve lost notes due to shitty syncs.
I prefer trust in persistent notes, and not
wonder about syncs fucking up
Current setup (it works!)
To make sure there are no (or at least minimal) sync issues, I use one graph per device. That graph syncs one-way to storage. In the sync options, I overwrite the sink file upon conflicts.
This means I have three different graphs in my personal storage and one in my work storage. I cannot access my work graph from personal devices.
I take different types of notes on different devices, which in most cases make the graphs organically form to their topics.
With these setting I can read all the graphs on each device, since Logseq allows you to open multiple graphs at the same time (open graph selector, shift-click on a second graph)
The graph on my phone is used as a link and thoughts dump, my personal laptop graph is for projects, my work laptop is mainly used for my work graph and sometimes to retrieve thoughts about work which I dumped in the evening/night.
I use this folder structure:
logseq
├── droidseq
├── macseq
└── thinkseq
Sync tools used:
- Android: FolderSync (playstore)
- Folder pair: one-way to OneDrive, overwrite on sync conflict, sync at 02:00AM daily
- Outgoing sync: droidseq
- incoming sync: macseq, thinkseq
- Linux: Multiple options to sync to OneDrive, but they are not great
- I am still trying to find a good option to sync reliably from Linux to Onedrive, but so far they are not perfect, so not recommending anything here. My experience with desktop Linux syncing to Microsoft desktop product is not great.
- Outgoing sync: thinkseq
- Incoming sync: droidseq, macseq
- MacOS: Microsoft Onedrive
- It works really well, it syncs my whole onedrive storage, and thus also sync my logseq notes without issues.
- No configuration on the OneDrive client necessary, it syncs in the background.
Disadvantage
I started with four different note libraries (Obsidian, OneNote, Google Keep and plain markdown) and to solve that I now have seven different note libraries.

At this point I can imagine you would like to comment on my (lack of) intelligence, but you should know I’m already well aware.
“On a good day I’m smart enough to realize how stupid I am.”
~ Joris
💡 Solution: Git 💡
I think this would work! Git is great, I use it daily, and it gives a great way to merge conflicts in text files, which allows me to solve a sync conflict regardless of the device.
Logseq desktop clients (Linux and MacOS for sure) have the ability to commit on a regular basis, and also commit upon file closure. Side note: This instantly enables the history option in the client, which is quite cool.
Steps:
- Initialize a bare git repo somewhere suitable for you (can be github, gitlab, azure, aws, local network)
- Note: Ubuntu names the branch “master”, while Android and Mac asume it’s called “main”.
- Tip: Make sure you align branch names.
- Clone on your device
- Open this graph location in Logseq
- Git-hooks: Configure pre-commit and post-commit git-hooks as described in https://github.com/CharlesChiuGit/Logseq-Git-Sync-101/
- Direct link to post-commit
- Direct link to pre-commit
The Logseq client commits regularly, when monitoring git log I can see entries being added while I’m typing and also upon file closure. Due to the git-hooks it pulls and pushed changes immediately,
I created git conflicts, and these pop up in Logseq self when it tries to commit!
This means upon conflict I will know as soon as possible, in turn that means the “fail fast” principle is adhered to! ♥️
Status on March 1st 2025
I’ve configured this on Mac and Ubuntu, and it’s working well! When monitoring the bare git repo I can see commits from my devices.
So far the only workflow change I did is to make sure I close the Logseq application when I’m done for the day.
TO-DO
CRAP! On phone the git sync option is not available!
I found Git-Sync on Play Store, but I don’t trust that (yet), the application requests storage access and monitoring which I’m not comfortable with. Also I can’t really much about find the software delivery process for this app, and if it would be overtaken by malicious actors they could insert stuff on my phone which monitors storage AND activities due to the rights.
So that ain’t happening.
In line with a slight tendency of extreme overthinking I am now planning on using Termux on Android. Termux allows you to access your Android phone as the Linux device it is. To me this is equally great and terrible, a feeling which tickles my fancy. (Did I mention I am stupid?)
I can then use the same git-hooks, which again is great, because it makes this solution simpler. This is the moment where it is allowed to start yelling at me, as the contradiction of a simpler complex solution is equally proof of my stubborn stupidity and tendency to overthink.
“File storage monitoring sucks on battery powered devices”
Constant file storage monitoring will prevent my phone from going into sleep mode, which drains the battery. You could limit the monitoring to once every hour, but then your sync sucks. It’s choosing between two suckages; battery drain and shitsync, and whatever interval you choose; it will suck to begin with, as you can lose written down thoughts for the duration of the sync interval. And trusting the sync was the whole motivation I started this stuff.
To solve this my phone will need to monitor Logseq app opening and closure. Those will be the moment for pulling and pushing to the repo. And closing all apps on my phone is something I do almost immediately before locking it.
I’ll keep you posted 🙂