whatsapp

Rating: 
3.6
Your rating: None Average: 3.6 (10 votes)

i created a whatsapp app based on whatsmeow, which is written in go. unfortunately it is only possible to register as second device, like the browser. it only has minimal  saljail permissions out of the box, internet and secrets for  storing the registration. one  can add contacts permssions or meda files permissions through a command that can be copied to clipboard and  edits the desktop file to add or remove these optional permissions. for listening to voice messages you can put the phone to your ear, and sound comes through the earpiece and the display is turned off, if you remove the phone from your ear both are turned back, like in original whatsapp. i used claude "ai" to develop this app. sources are here: https://github.com/smatkovi/harbour-whatsapp i updated  whatsmeow and fixed the errors you reported. thanks for all your comments and  error reports.

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-whatsapp-0.9.183-1.armv7hl.rpm6.99 MB31/07/2026 - 18:56
File harbour-whatsapp-0.9.183-1.i486.rpm7.26 MB31/07/2026 - 18:56
File harbour-whatsapp-0.9.183-1.aarch64.rpm6.83 MB31/07/2026 - 18:56
File harbour-whatsapp-0.9.184-1.i486.rpm7.26 MB31/07/2026 - 19:09
File harbour-whatsapp-0.9.184-1.armv7hl.rpm6.99 MB31/07/2026 - 19:09
File harbour-whatsapp-0.9.184-1.aarch64.rpm6.83 MB31/07/2026 - 19:09
File harbour-whatsapp-0.9.188-1.aarch64.rpm6.84 MB31/07/2026 - 22:22
File harbour-whatsapp-0.9.188-1.armv7hl.rpm6.99 MB31/07/2026 - 22:22
File harbour-whatsapp-0.9.188-1.i486.rpm7.27 MB31/07/2026 - 22:22
File harbour-whatsapp-0.9.189-1.armv7hl.rpm7 MB31/07/2026 - 23:27
File harbour-whatsapp-0.9.189-1.i486.rpm7.27 MB31/07/2026 - 23:27
File harbour-whatsapp-0.9.189-1.aarch64.rpm6.84 MB31/07/2026 - 23:27
File harbour-whatsapp-0.9.193-1.i486.rpm7.28 MB01/08/2026 - 00:52
File harbour-whatsapp-0.9.193-1.armv7hl.rpm7.01 MB01/08/2026 - 00:52
File harbour-whatsapp-0.9.193-1.aarch64.rpm6.85 MB01/08/2026 - 00:52
File harbour-whatsapp-0.9.195-1.armv7hl.rpm7.02 MB01/08/2026 - 01:24
File harbour-whatsapp-0.9.195-1.i486.rpm7.29 MB01/08/2026 - 01:24
File harbour-whatsapp-0.9.195-1.aarch64.rpm6.86 MB01/08/2026 - 01:24
File harbour-whatsapp-0.9.196-1.i486.rpm7.29 MB01/08/2026 - 01:24
File harbour-whatsapp-0.9.196-1.armv7hl.rpm7.02 MB01/08/2026 - 01:24
File harbour-whatsapp-0.9.196-1.aarch64.rpm6.86 MB01/08/2026 - 01:24
File harbour-whatsapp-0.9.198-1.aarch64.rpm6.87 MB01/08/2026 - 10:39
File harbour-whatsapp-0.9.198-1.armv7hl.rpm7.03 MB01/08/2026 - 10:39
File harbour-whatsapp-0.9.198-1.i486.rpm7.3 MB01/08/2026 - 10:39
File harbour-whatsapp-0.9.199-1.i486.rpm7.3 MB01/08/2026 - 11:46
File harbour-whatsapp-0.9.199-1.armv7hl.rpm7.03 MB01/08/2026 - 11:46
File harbour-whatsapp-0.9.199-1.aarch64.rpm6.87 MB01/08/2026 - 11:46
File harbour-whatsapp-0.9.201-1.i486.rpm7.3 MB01/08/2026 - 14:33
File harbour-whatsapp-0.9.201-1.armv7hl.rpm7.03 MB01/08/2026 - 14:33
File harbour-whatsapp-0.9.201-1.aarch64.rpm6.88 MB01/08/2026 - 14:33
File harbour-whatsapp-0.9.206-1.i486.rpm7.31 MB01/08/2026 - 15:37
File harbour-whatsapp-0.9.206-1.armv7hl.rpm7.04 MB01/08/2026 - 15:37
File harbour-whatsapp-0.9.206-1.aarch64.rpm6.88 MB01/08/2026 - 15:37
File harbour-whatsapp-0.9.207-1.i486.rpm7.31 MB01/08/2026 - 20:12
File harbour-whatsapp-0.9.207-1.armv7hl.rpm7.04 MB01/08/2026 - 20:12
File harbour-whatsapp-0.9.207-1.aarch64.rpm6.88 MB01/08/2026 - 20:12
File harbour-whatsapp-0.9.214-1.i486.rpm9.66 MB02/08/2026 - 01:05
File harbour-whatsapp-0.9.214-1.armv7hl.rpm9.39 MB02/08/2026 - 01:05
File harbour-whatsapp-0.9.214-1.aarch64.rpm9.24 MB02/08/2026 - 01:05
File harbour-whatsapp-0.9.215-1.i486.rpm9.67 MB02/08/2026 - 04:55
File harbour-whatsapp-0.9.215-1.armv7hl.rpm9.39 MB02/08/2026 - 04:55
File harbour-whatsapp-0.9.215-1.aarch64.rpm9.24 MB02/08/2026 - 04:55
File harbour-whatsapp-0.9.217-1.armv7hl.rpm9.39 MB04/08/2026 - 17:55
File harbour-whatsapp-0.9.217-1.i486.rpm9.67 MB04/08/2026 - 17:55
File harbour-whatsapp-0.9.217-1.aarch64.rpm9.24 MB04/08/2026 - 17:55
File harbour-whatsapp-0.9.229-1.i486.rpm9.69 MB07/08/2026 - 19:24
File harbour-whatsapp-0.9.229-1.armv7hl.rpm9.42 MB07/08/2026 - 19:24
File harbour-whatsapp-0.9.229-1.aarch64.rpm9.26 MB07/08/2026 - 19:24
File harbour-whatsapp-0.9.230-1.i486.rpm9.7 MB07/08/2026 - 19:42
File harbour-whatsapp-0.9.230-1.armv7hl.rpm9.42 MB07/08/2026 - 19:42
File harbour-whatsapp-0.9.230-1.aarch64.rpm9.27 MB07/08/2026 - 19:42
Changelog: 

- whatsmeow updated to 2026-08-06 (e277b766), ten commits on from the
previous build, among them proto v1044440921. Protocol updates are the
ones that eventually stop being optional: a client speaking an outdated
protocol looks like a broken one to the server, which is what draws
account restrictions. Dependencies were unchanged, but the API was not -
SetStatusMessage now takes a types.SetStatusInput rather than a string,
the server having gained emoji and expiry for the About text. Only the
text is set, through a pointer, so that clearing it stays distinguishable
from leaving it alone. go vet caught it before the build did

Comments

aviarus's picture

Feature is a good joke here.^^ i hope it is now visible if a message is edited

rdomschk's picture

Here are my false protocoll:
>Python module failed to load:
Function not found: 'start_backend.installed_version' (Traceback (most recent call last):

File "", line 1, in

NameError: name 'start_backend' is not defined
)
Please report this text.<

aviarus's picture

Okay it seems that you are still on 0.9.95 and 0.9.96 should fix this exact issue. Once you're on 0.9.96: either it just works, or the message that appears after ~6 seconds is the real cause — that one would be interesting.

kempertom's picture

Is this an issue with the deamon. Had the same Problem this morning. I'll try to run it without daenom...

aviarus's picture

Probably not the daemon itself — the likely culprit for "stopped working this morning" (especially after a reboot) is a desktop-file key from 0.9.90 that broke launching from the app icon; 0.9.91+ removes it automatically during the update. Just update to the latest version, then start the app normally — no need to disable the daemon. If it still won't start from the icon afterwards, tell me and we'll dig.

rdomschk's picture

Now I could test it:
[defaultuser@Xperia10III ~]$ cat /etc/sailfish-release
NAME="Sailfish OS"
ID=sailfishos
VERSION="5.0.0.76 (Tampella)"
VERSION_ID=5.0.0.76
PRETTY_NAME="Sailfish OS 5.0.0.76 (Tampella)"
SAILFISH_BUILD=76
SAILFISH_FLAVOUR=release
HOME_URL="https://sailfishos.org/"
[defaultuser@Xperia10III ~]$ python3 -c "import ast; ast.parse(open('/usr/share/harbour-whatsapp/start_backend.py').read()); print('syntax ok on', __import__('sys').version)"
syntax ok on 3.8.18 (default, Mar 19 2024, 00:00:00)
[GCC 10.3.1 20210621 (Sailfish OS gcc 10.3.1-1)]
[defaultuser@Xperia10III ~]$ devel-su zypper se -si 'python3*' pyotherside\* | grep -i chum
Password:
i | python3-brotli | Paket | 1.0.9+git9-1.1.1.bso | aarch64 | sailfishos-chum
i | python3-cairocffi | Paket | 1.3.0-1.1.1.bso | noarch | sailfishos-chum
i+ | python3-cairosvg | Paket | 2.5.2+git2-1.2.1.bso | noarch | sailfishos-chum
i | python3-cssselect2 | Paket | 0.4.1-1.1.1.bso | noarch | sailfishos-chum
i | python3-defusedxml | Paket | 0.7.1+git1-1.1.1.bso | noarch | sailfishos-chum
i+ | python3-html5lib | Paket | 1:1.1-1.1.1.bso | noarch | sailfishos-chum
i+ | python3-mpmath | Paket | 1.2.1-1.2.1.bso | noarch | sailfishos-chum
i+ | python3-mutagen | Paket | 1.47.0-1.1.1.bso | noarch | sailfishos-chum
i | python3-numpy | Paket | 1.18.5-1.1.1.bso | aarch64 | sailfishos-chum
i+ | python3-opencv | Paket | 4.8.1-1.2.1.bso | aarch64 | sailfishos-chum
i+ | python3-packaging | Paket | 21.3+master.20230409154829.4.gd515213-1.2.1.bso | noarch | sailfishos-chum
i+ | python3-pycryptodomex | Paket | 3.23.0-1.2.1.bso | aarch64 | sailfishos-chum
i | python3-pyparsing | Paket | 2.4.7+master.20230409155124.3.g503310b-1.2.1.bso | noarch | sailfishos-chum
i | python3-tinycss2 | Paket | 1.1.1+git1-1.1.1.bso | noarch | sailfishos-chum
i | python3-webencodings | Paket | 0.5.1+git1-1.1.1.bso | noarch | sailfishos-chum
i+ | python3-websockets | Paket | 13.1-1.1.1.bso | aarch64 | sailfishos-chum
i+ | python3-yt-dlp | Paket | 2023.12.30+obs2-1.4.1.bso | noarch | sailfishos-chum
[defaultuser@Xperia10III ~]$

aviarus's picture

Thank you — that output helps a lot, and no trouble at all, enjoy your holiday first! Your system Python parses the app's module fine, and your Chum list contains only add-on libraries (none of which the app uses) — so my earlier Chum theory is weakened. Better yet: the NameError in your terminal log turned out to be a startup race in the app itself (fast devices won it, your 10 III lost it) — fixed in 0.9.96. Whatever the remaining blocker on your device is, 0.9.96 will show the exact error on the pairing screen, and tapping the message copies it to the clipboard. Whenever you're back: update, start the app, and paste whatever it shows. No rush.

rdomschk's picture

Thank youvery much and sorry for the trouble with me. I will test it but I am in holiday and can make it only later with my notbook.

rdomschk's picture

Ter inal:
[D] unknown:0 - Using Wayland-EGL
library "libui_compat_layer.so" not found
library "libutils.so" not found
library "libcutils.so" not found
library "libhardware.so" not found
library "android.hardware.graphics.mapper@2.0.so" not found
library "android.hardware.graphics.mapper@2.1.so" not found
library "android.hardware.graphics.mapper@3.0.so" not found
library "android.hardware.graphics.mapper@4.0.so" not found
library "libc++.so" not found
library "libhidlbase.so" not found
library "libgralloctypes.so" not found
library "android.hardware.graphics.common@1.2.so" not found
library "libion.so" not found
library "libz.so" not found
library "libhidlmemory.so" not found
library "android.hidl.memory@1.0.so" not found
library "vendor.qti.qspmhal@1.0.so" not found
[D] unknown:0 - Got library name: "/usr/lib64/qt5/qml/io/thp/pyotherside/libpyothersideplugin.so"
[W] NemoConfigurationValuePlugin::registerTypes:52 - org.nemomobile.configuration import is deprecated. Suggest migrating to Nemo.Configuration
[W] unknown:134 - file:///usr/lib64/qt5/qml/Sailfish/Silica/PullDownMenu.qml:134: ReferenceError: lipstickSettings is not defined
[D] unknown:0 - "PyOtherSide error: Traceback (most recent call last):\n\n File \"\", line 1, in \n\nNameError: name 'start_backend' is not defined\n"
[D] onError:78 - Python error: Function not found: 'start_backend.installed_version' (Traceback (most recent call last):

File "", line 1, in

NameError: name 'start_backend' is not defined
)
[D] :59 - Backend failed to start
[D] rescanBackendPort:434 - Backend lost entirely - respawning child backend
[D] :59 - Backend failed to start
[defaultuser@Xperia10III ~]$

aviarus's picture

Thanks for the report — your Chum hint is the best lead: the app's Python module fails to load, so the backend never starts and the deleted folder is never recreated. But I don't know for certain yet what exactly broke on your device — let's find out before fixing anything. Please post the output of these three lines:
cat /etc/sailfish-release
python3 -c "import ast; ast.parse(open('/usr/share/harbour-whatsapp/start_backend.py').read()); print('syntax ok on', __import__('sys').version)"
devel-su zypper se -si 'python3*' pyotherside\* | grep -i chum
The first tells me your OS release, the second whether your Python can read the app's module at all, the third whether any Python/pyotherside packages come from Chum. Even easier: update the app to 0.9.95 — it now shows the exact error on the pairing screen, and tapping the message copies it to the clipboard, so you can paste it here directly.
IF the third command lists Chum packages, a clean way to recover (no version change) is the sfos-upgrade tool from OpenRepos: run sfos-upgrade --verify — it verifies and re-aligns your installed packages with your current release — then reboot. Afterwards the app starts and you can pair freshly. But diagnosis first — one paste from you and we'll know instead of guessing.

rdomschk's picture

Hey aviarus, today I updated some pytbon respos from Chum an now your nice app not work. What can I do? I delete also the share folder but red test if I will new pair. No new folder under share.

rob_k's picture

Hey, you're faster than your shadow :) Yes, this works again!

aviarus's picture

Thanks. Glad to read

rob_k's picture

Latest version 0.9.90-1 crashes on my Xiii on Pispala 5.1.0.11

aviarus's picture

yes for me it didn't even start. it should be fixed now, if  not just tell me .

kempertom's picture

How to unarchive chats?

aviarus's picture

I thought i have to program again^^, but this is already implemented thankfully. Archived chats are not hidden — they move to the very bottom of the chat list, dimmed and marked "· archived". Scroll down to find them, then long-press the chat and choose "Unarchive" from the menu (the same long-press menu also has Archive, Pin and Mute). The state syncs to your other WhatsApp devices via app state, so unarchiving here unarchives everywhere.

kempertom's picture

It gets more and more perfect. Thank you !!!

rob_k's picture

Idea: add empty file .nomedia to Whatsapp folders, or the content will clutter the Gallery. I'm really happy that this app exists, AAS is now off by default and this saves battery! Thanks again!

aviarus's picture

It's a good suggestion, if media access is enabled you have the option to put .nomedia files for different media types

kempertom's picture

Sorry, but all permissions are granted. I did the process. But the mic doesn't turn into a timer and on the main page is a message saying: Recording failed ([Errno 13] no permission: 'gst-launch-1.0) grant the microphone permission in Settings and restsart the app
I did before and reststarted the app...even SFOS>Settings>Apps>whatsapp is showing that it has mic permission .... Very strange.
Your App is a micrometer away from being perfect!!!

aviarus's picture

Okay it could be that gstreamer1.0-tools wasn't installed. I added it as a dependency and it should install now if you update

kempertom's picture

Permissions are granted, but returning to main screen a message is shown, that says that it has no permission

kempertom's picture

How to record a voice note?

kempertom's picture

I just turned my Motorola G7 Power into my daily driver with SFOS - without Android - because of your work. Only thing missing are Voicenotes

rdomschk's picture

Hello, it works perfect. Thanks, Thanks, Thanks. The one problem is, I have to open all Chats separate to reset the counter. I have manny chats, maybe you can made later a menu point to set all chats at readed... But no pressure. A other question is, its possible to activat a notification at the evenscreen to see new messages. BR

aviarus's picture

You can activate notifications in settings now and Mark all as read is also available now per chat

rdomschk's picture

Hello - you are very diligent every day. Thanks for it. The pin function now works afte restart. One question, how can I see which chat had new messages. I miss a highlighting at the chat names or a othe sign. But no pressure it works perfect in the moment and I could switch off the AppSuport. 

aviarus's picture

Your wish is my command^^ i made a red counter with unread messages

rdomschk's picture

Hello, a big Thanks only 1 day later so many changes - now the first pairing work from desktop file and the new statuspage is also very nice. I have only problems with videos. I cannot open a video with the gallerie. I gave all right for contacts and media in Terminal but the gallery shows 0 byte for each video? What I make false? The contacts names the status header after the command. The pin function for chats lost after reopen the app but this is not so importand.

Pages