tenor/kosync

tenor/kosync

Scroll down

koreader sync server

Sync your reading position across devices

Hello. This is my gift to people who love books: a free KOReader progress sync server, KOSync compatible. Read on below if you want to know more.

calls to the official server hung and timed out, no sync possible
14/14
median of 30 measurements from Vietnam, 11 Sep 2026
0.359 s
this server sits in a large data centre, sync is fast
Ho Chi Minh City

Read to a page on this device, open the other one, and you are on that page

01. Why I built this

KOReader's own KOSync server has been in trouble. The European server still works but is flaky, and as far as I know Vietnamese readers had no shared KOSync server of their own.

As someone who loves books and e-readers, I run this free server for the reading community in Vietnam so we have a place of our own to sync. It sits in a data centre in Ho Chi Minh City, so the data stays in the country instead of going abroad and back. Undersea cable outages do not touch your reading.

02. How to use it

  1. Open KOReader on your e-reader, or KOReader sync on an XTEINK device.
  2. Find the reading progress sync section. Its name and place vary by device and KOReader version. Look for something like sync reading position.
  3. Find where to change the server address. Enter exactly: https://kosync.tenor.vn
  4. Choose register. Pick a username and a separate password. No email, no verification step. Write both down, because there is no way to recover them, not even for me.
  5. On the second device, open the same sync section. Enter the same server address, username and password.

    Do not register again. On the second device, log in with the exact account and password you used on the first. Creating a new account makes the two devices keep separate progress that never syncs.

  6. Set the same book matching method on every device.

    Match by book content. On each device, find the setting for how books are recognised or matched. The name varies. If there is a choice, pick matching by content and set it the same everywhere. If even one device differs, it still reports a successful sync with no error, but the positions will never line up. This is where the most time gets lost.

Step 3 is usually the slowest. The address is 25 characters and e-reader keyboards are slow. Type it carefully and check before moving on.

That is it. When you open a book, KOReader fetches the latest position. When you close it, KOReader sends yours up. If two devices are at different places, KOReader asks whether to jump to the other one. Just answer yes or no.

03. Synced, but the position is still off

Check that every device matches by book content. Both devices must also use the very same book file. Two editions of the same title can count as two books.

If you matched by filename before, the server treats the new method as a different book. Old progress stays with the old method and does not carry over. Note your position before switching so you can set it by hand if needed.

To test, open the same file on the first device, go to a memorable spot, and sync. Then sync the second device and see whether that spot comes across.

04. Your password and account

The server does not ask for an email, so there is no password recovery. If you forget it, register a new name and set it up on your devices again. The old progress stays in the old account, which you will not be able to open.

The way KOReader sends passwords to the server is old and outdated. It is part of the sync protocol, so the server cannot change it. The server stores the password check data in a stronger form, but you should still use a password unique to KOReader. Do not reuse one from email, social media, banking or other services.

Accounts with no sync activity for 3 months are deleted without notice, because there is no way to contact you. An account that has not synced a single book one month after creation is deleted too. Those resources go to serving more people.

05. What our server sees from you

The server receives and stores:

  • Your username.
  • Data used to check your password.
  • A 32-character string that stands for the book.
  • Your reading position.
  • Your device name.
  • The time of each sync.
  • Your IP address.

The server also sees the IP address of the sending device, like any website.

Nothing sent contains the book's title or contents.