Kurir Push

New mail on your phone, Mac or not.

Kurir Push is a small client that keeps checking your mail and pushes new mail to your phone. It also sends scheduled mail, saves the daily backup of your settings and runs your AI rules.

Your Mac does this while Kurir runs on it. If the Mac sleeps or is off, run Kurir Push on a Linux server instead: a home server, a Raspberry Pi or a small VPS.

You need a Linux machine with Docker and systemd (Ubuntu 22.04 or later, or Debian 12 or later, on x86-64 or ARM64), root access on it, and Kurir on your iPhone or Mac.

  1. Copy the setup code

    In Kurir, open Settings > Devices > Add Kurir Push and tap Copy setup code. The code holds your mail password, or your Google sign-in for a Gmail account, the passwords of any calendar accounts you added and your encryption passphrase, so paste it into the installer and nowhere else.

  2. Run the installer

    On the server, run:

    docker run --rm ghcr.io/cfarvidson/kurir-push \
        install | sudo bash

    Paste the setup code when it asks; what you paste is not shown. The installer checks that it can log in to your mail, starts Kurir Push and keeps it running after a restart.

  3. See it in Devices

    Kurir Push shows up in Settings > Devices under the server's name, and the Notifications line says it sends them right away. The first sync of a large mailbox can take a few minutes.

Updates

Kurir Push updates itself once a day, to the version of the apps in the App Store, so both run the same Kurir. Update now in Settings > Devices fetches it right away.

Without a setup code

Press Enter when the installer asks for the code, and it asks for your mail account instead. If your settings are encrypted, Kurir Push then asks to pair: tap Pair in Settings > Devices and check that the code matches the one in its log.

Gmail signed in with Google

Kurir Push signs in with the Google sign-in in the setup code. If Google stops taking it and you sign in again in the app, Kurir Push needs a new code: copy one and run the installer again, asking it to take the account anew:

docker run --rm ghcr.io/cfarvidson/kurir-push \
    install | sudo bash -s -- --reconfigure

When something is wrong

cd /opt/kurir-push
docker compose logs -f
docker compose run --rm kurir-push --check

AI assistants

Kurir Push serves MCP on port 8790, so Claude Code and other assistants can read and file your mail, and read and change your calendar and contacts. Make a token under Settings > Devices > AI assistants (MCP) and add the server with it.

The calendars come with the setup code. A Kurir Push installed before the code carried them has none: copy a new setup code in the app and run the installer again with --reconfigure, the command under Gmail signed in with Google.

Remove it

cd /opt/kurir-push && sudo docker compose down -v
sudo systemctl disable --now \
    kurir-push-update.timer kurir-push-update.path
sudo rm -rf /opt/kurir-push \
    /etc/systemd/system/kurir-push-update.*

Then remove it from Settings > Devices.