Skip to content

KMySync

GitHub perfermat/kmysync

Install KMySync

Download Zapstore

Download
QR code for zapstore.dev/download
  • Scan the code with your phone’s camera
  • Tap Download anyway if the browser warns about the file
  • Allow your browser to install unknown apps if Android asks
  • Open Zapstore and finish the onboarding

Open KMySync in Zapstore

Open
QR code to open KMySync in Zapstore
  • Scan the code to open KMySync in Zapstore, or search for it there
  • Tap Install, and Download if Zapstore asks you to confirm the developer
  • Confirm in Android’s install dialog. Allow Zapstore to install unknown apps if Android asks

Unclaimed app

The catalog lists KMySync from GitHub perfermat/kmysync and signs its releases. The developer has not claimed it. The file is still checked before you install it.

Are you the developer? Cryptographically prove you hold the key that signs it.

How trust works

Mobile companion to the desktop finance software KMyMoney. Record cash expenses, income and transfers on the go, keep track of your portfolio, and write it all back into KMyMoney instead of typing it in by hand later.

KMySync is a mobile companion to the desktop finance software KMyMoney. Record cash expenses, income and transfers on the go, keep track of your portfolio, and write it all back into KMyMoney instead of typing it in by hand later.

The app needs no vendor account and no third-party cloud: data is exchanged with KMyMoney through a folder you provide yourself (WebDAV, Nextcloud or SMB/Samba). No ads, no tracking.

One exception to that: the optional map on which you pick a location loads its tiles from OpenStreetMap. It is the only screen that contacts anything other than your own server, and it opens only when you open it.

Features:

  • Seamless KMyMoney integration via .kmy files or CSV import
  • Several profiles — keep several KMyMoney files side by side
  • Sync through a shared WebDAV or SMB folder — your own server, your data
  • Charts and analysis per account, place or total
  • Portfolio with holdings, latest price and net worth
  • Record transactions for securities you already hold — buys, sells and dividends, including optional PDF recognition of the statement
  • Fuzzy voice entry with optional location-based payee suggestion
  • Multilingual — English, German and Spanish built in, more languages via upload
  • Biometric lock and encrypted credentials

On the PDF recognition: the app reads the statement's text layer, recognises the security, the date and the amounts, and learns per bank and portfolio where those values sit in the document. It does not work with every bank — scanned documents are out of reach, and unusual layouts can escape it. It is off by default and is switched on in the settings.

Note on this F-Droid build: it is the phone app without Google Play Services. The optional Wear OS companion (voice entry from a watch) requires the Google Wear Data Layer and is only available from the project's GitHub releases: https://github.com/PerFermat/KMySync/releases

User manual (English and German): https://kmysync.michaelspahr.de/en/

Free and open source (GPL-3.0).

Summary generated by Zapstore from source.

Original description, as the developer published it.

Zap KMySync

Zapping anonymously. Sign in to zap with your identity.

No developer has verified this app yet, so sats go to npub1gnwq4…thdn3y, the catalog that brought it to you.

Amount in sats

Latest release

Nov 5, 2026

Unclaimed app No Google servicesSource available · GPL-3.0-only

The catalog lists this app from GitHub perfermat/kmysync and signs its releases. The developer has not claimed it. Are you the developer? Claim your app

Uses location access to tag expenses with coordinates and suggest payees based on proximity. Data is synced directly to a user-provided server (WebDAV, Nextcloud, or SMB) using credentials sent over the network.

Permissions

  • Coarse location ACCESS_COARSE_LOCATION See your approximate location ACCESS_BACKGROUND_LOCATION,ACCESS_COARSE_LOCATION used to determine current position for expense tagging.
  • Fine location ACCESS_FINE_LOCATION See your precise location ACCESS_BACKGROUND_LOCATION,ACCESS_FINE_LOCATION used to determine current position for expense tagging.
  • Notifications POST_NOTIFICATIONS Send you notifications

Release notes

Changed

  • Category picker on narrow screens (#11):
    • The category list now spans the full width of the row, like the payee and account lists.
    • The remove button of a split row is narrower, so the category field gets more room.
    • Categories with more than two levels appear as a tree: each row shows only its own name, with a thin line (├ / └) from the third level on – no more repeated «Car:Fuel», «Car:Parking». Picking one still puts the full name «Travel:Car:Fuel» into the field.
    • While searching, the parent categories stay visible, and a colon searches across levels: «car:park» finds «Travel:Car:Parking».
    • Long names wrap onto a second line in all suggestion lists instead of being cut off.
  • Notifications: after «OK» the app reports how many new notification variants it learned from rows you filled in yourself.

Fixed

  • Notifications: the location from when a notification arrived got lost when you edited the suggestion; the GPS line was missing from the note.
  • Switching a saved booking between transfer and expense (or back) replaced its saved location with the current one.

Downloads: app-full-release.apk (with Google services, includes the Wear OS bridge) · app-foss-release.apk (no Google services) · wear-release.apk (smartwatch)

The F-Droid version is signed by F-Droid with its own key, so the F-Droid and GitHub versions cannot update each other.

Verifying this build

This app is free software (GPL-3.0-only) and built from source — the F-Droid recipe builds the foss flavour straight from this tag. You can check that the file you downloaded is the file that was published:

sha256sum app-full-release.apk app-foss-release.apk wear-release.apk
cf17aeab38966afac3b23a68af8757aad17d70e50d37e94a1754a97eb50d9722  app-full-release.apk
b33fabdc6e5656b5cdd0ca24ed2c7eb15cd39d5e7b6c608bc0b4958860df2bc3  app-foss-release.apk
da16872082393212de088242d3a0821282eb388df3e5e64fd8c9eb886bbf06ef  wear-release.apk

All three are signed with the same key as every GitHub release since 1.0:

Signer certificate DN:         CN=Michael Spahr, OU=Privat, O=Ausgaben, L=, ST=, C=DE
Signer certificate SHA-256:    571fd757540602812eb32fc43882d4abff32b8d02614451304834485404afc3c

Check it yourself with apksigner verify --print-certs <apk> from the Android build tools.

The foss build contains no Google Play Services; verified on the finished APK:

unzip -p app-foss-release.apk 'classes*.dex' | strings | grep -c com/google/android/gms   # 0

Comments

Loading comments…

See more

Get KMySync the private way

Updates checked on your device, and every release verified before it installs.

Get Zapstore for Android

  1. Tap Download APK below.Scan the code with your Android phone’s camera.
  2. If Android asks, allow your browser to install unknown apps.
  3. Open Zapstore and finish the onboarding.
Download APK

v2.0.4 · 71.2 MB · Android 10+

Verify the download

On a computer, run shasum -a 256 <the file you downloaded>. It should print: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

If you have zsp, Zapstore’s publishing tool, zsp utils extract-apk <the file you downloaded> works too. Its hash should be the same SHA-256: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

On the phone, AppVerifier should show this signing certificate: 99e33b0c2d07e75fcd9df7e40e886646ff667e3aa6648e1a1160b036cf2b9320

Source code All releases and notes

Get zsp

  1. Download the file for your computer.
  2. Make it executable and put it on your PATH.
  3. In your project folder, run zsp.

Have Go? This does the same:

go install github.com/zapstore/zsp/v2/cmd/zsp@latest
macOS, Apple silicon Linux, x86-64 Linux, arm64

v2.0.1 · macOS and Linux

Verify the download

On your computer, run shasum -a 256 <the file you downloaded>. It should print the SHA-256 for the one you chose.

macOS, Apple silicon · 18.6 MB 99018fb9744e5ace2b44557550dc333496239912c0e9b1137266d4922c803346

Linux, x86-64 · 23.8 MB 1ef5373f8ecd9ba63d2c3fab98abb0d31b2244a2aac31b3749fb205c7d5f5b38

Linux, arm64 · 22.1 MB e421005ee47cba58293dce4277bb784e4cfe706dbbcb8617d671629d0238be18

Source code All releases and notes