whatsapp

Rating: 
3.5
Your rating: None Average: 3.5 (6 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. 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.2.1-1.aarch64.rpm9.07 MB03/12/2025 - 11:43
File harbour-whatsapp-0.3.0-1.aarch64.rpm5.59 MB12/07/2026 - 11:39
File harbour-whatsapp-0.4.2-1.aarch64.rpm5.59 MB12/07/2026 - 12:01
File harbour-whatsapp-0.4.2-1.armv7hl.rpm5.73 MB12/07/2026 - 12:01
File harbour-whatsapp-0.4.3-1.aarch64.rpm5.6 MB12/07/2026 - 12:17
File harbour-whatsapp-0.4.3-1.armv7hl.rpm5.73 MB12/07/2026 - 12:17
File harbour-whatsapp-0.4.5-1.aarch64.rpm5.6 MB12/07/2026 - 13:03
File harbour-whatsapp-0.4.5-1.armv7hl.rpm5.73 MB12/07/2026 - 13:03
File harbour-whatsapp-0.4.6-1.aarch64.rpm5.6 MB12/07/2026 - 13:03
File harbour-whatsapp-0.4.6-1.armv7hl.rpm5.73 MB12/07/2026 - 13:03
File harbour-whatsapp-0.4.8-1.armv7hl.rpm5.73 MB12/07/2026 - 13:08
File harbour-whatsapp-0.4.8-1.aarch64.rpm5.6 MB12/07/2026 - 13:08
File harbour-whatsapp-0.4.9-1.armv7hl.rpm5.74 MB12/07/2026 - 17:23
File harbour-whatsapp-0.4.9-1.aarch64.rpm5.6 MB12/07/2026 - 17:23
File harbour-whatsapp-0.4.11-1.aarch64.rpm5.61 MB12/07/2026 - 18:58
File harbour-whatsapp-0.4.11-1.armv7hl.rpm5.74 MB12/07/2026 - 18:58
File harbour-whatsapp-0.4.14-1.armv7hl.rpm5.74 MB12/07/2026 - 22:33
File harbour-whatsapp-0.4.14-1.aarch64.rpm5.61 MB12/07/2026 - 22:33
File harbour-whatsapp-0.7.4-1.aarch64.rpm5.74 MB12/07/2026 - 22:33
File harbour-whatsapp-0.7.4-1.armv7hl.rpm5.87 MB12/07/2026 - 22:33
File harbour-whatsapp-0.7.6-1.armv7hl.rpm5.88 MB13/07/2026 - 09:33
File harbour-whatsapp-0.7.6-1.aarch64.rpm5.74 MB13/07/2026 - 09:33
File harbour-whatsapp-0.7.8-1.armv7hl.rpm5.88 MB13/07/2026 - 09:56
File harbour-whatsapp-0.7.8-1.aarch64.rpm5.75 MB13/07/2026 - 09:56
File harbour-whatsapp-0.8.0-1.armv7hl.rpm5.89 MB13/07/2026 - 10:09
File harbour-whatsapp-0.8.0-1.aarch64.rpm5.76 MB13/07/2026 - 10:09
File harbour-whatsapp-0.8.4-1.armv7hl.rpm5.91 MB13/07/2026 - 10:55
File harbour-whatsapp-0.8.4-1.aarch64.rpm5.77 MB13/07/2026 - 10:55
File harbour-whatsapp-0.8.21-1.aarch64.rpm5.78 MB14/07/2026 - 00:43
File harbour-whatsapp-0.8.21-1.armv7hl.rpm5.92 MB14/07/2026 - 00:43
File harbour-whatsapp-0.8.29-1.armv7hl.rpm5.93 MB14/07/2026 - 01:39
File harbour-whatsapp-0.8.29-1.aarch64.rpm5.79 MB14/07/2026 - 01:39
File harbour-whatsapp-0.9.5-1.armv7hl.rpm5.96 MB14/07/2026 - 11:06
File harbour-whatsapp-0.9.5-1.aarch64.rpm5.82 MB14/07/2026 - 11:06
File harbour-whatsapp-0.9.6-1.armv7hl.rpm5.96 MB14/07/2026 - 11:42
File harbour-whatsapp-0.9.6-1.aarch64.rpm5.82 MB14/07/2026 - 11:42
File harbour-whatsapp-0.9.6-1.i486.rpm6.19 MB14/07/2026 - 11:50
File harbour-whatsapp-0.9.19-1.armv7hl.rpm5.98 MB14/07/2026 - 14:41
File harbour-whatsapp-0.9.19-1.aarch64.rpm5.84 MB14/07/2026 - 14:41
File harbour-whatsapp-0.9.19-1.i486.rpm6.21 MB14/07/2026 - 14:46
File harbour-whatsapp-0.9.29-1.aarch64.rpm5.85 MB14/07/2026 - 16:42
File harbour-whatsapp-0.9.29-1.armv7hl.rpm5.99 MB14/07/2026 - 16:42
File harbour-whatsapp-0.9.29-1.i486.rpm6.22 MB14/07/2026 - 16:59
File harbour-whatsapp-0.9.31-1.armv7hl.rpm5.99 MB14/07/2026 - 17:48
File harbour-whatsapp-0.9.31-1.aarch64.rpm5.86 MB14/07/2026 - 17:48
File harbour-whatsapp-0.9.34-1.armv7hl.rpm6 MB15/07/2026 - 08:57
File harbour-whatsapp-0.9.34-1.aarch64.rpm5.86 MB15/07/2026 - 08:57
File harbour-whatsapp-0.9.37-1.armv7hl.rpm6 MB15/07/2026 - 09:14
File harbour-whatsapp-0.9.37-1.aarch64.rpm5.87 MB15/07/2026 - 09:14
File harbour-whatsapp-0.9.38-1.aarch64.rpm5.87 MB15/07/2026 - 21:54
File harbour-whatsapp-0.9.38-1.armv7hl.rpm6.01 MB15/07/2026 - 21:54
File harbour-whatsapp-0.9.43-1.armv7hl.rpm6.01 MB16/07/2026 - 09:43
File harbour-whatsapp-0.9.43-1.aarch64.rpm5.87 MB16/07/2026 - 09:43
File harbour-whatsapp-0.9.45-1.aarch64.rpm5.88 MB16/07/2026 - 16:39
File harbour-whatsapp-0.9.45-1.armv7hl.rpm6.01 MB16/07/2026 - 16:39
File harbour-whatsapp-0.9.46-1.armv7hl.rpm6.02 MB16/07/2026 - 18:41
File harbour-whatsapp-0.9.46-1.aarch64.rpm5.88 MB16/07/2026 - 18:41
File harbour-whatsapp-0.9.56-1.armv7hl.rpm6.03 MB16/07/2026 - 20:27
File harbour-whatsapp-0.9.56-1.aarch64.rpm5.89 MB16/07/2026 - 20:27
File harbour-whatsapp-0.9.60-1.armv7hl.rpm6.04 MB16/07/2026 - 20:54
File harbour-whatsapp-0.9.60-1.aarch64.rpm5.9 MB16/07/2026 - 20:54
File harbour-whatsapp-0.9.63-1.aarch64.rpm5.9 MB16/07/2026 - 23:10
File harbour-whatsapp-0.9.63-1.armv7hl.rpm6.04 MB16/07/2026 - 23:10
File harbour-whatsapp-0.9.73-1.armv7hl.rpm6.05 MB17/07/2026 - 02:14
File harbour-whatsapp-0.9.73-1.aarch64.rpm5.91 MB17/07/2026 - 02:14
File harbour-whatsapp-0.9.79-1.aarch64.rpm5.91 MB17/07/2026 - 09:41
File harbour-whatsapp-0.9.79-1.armv7hl.rpm6.05 MB17/07/2026 - 09:41
File harbour-whatsapp-0.9.9-1.aarch64.rpm5.82 MB17/07/2026 - 13:43
File harbour-whatsapp-0.9.84-1.armv7hl.rpm6.82 MB17/07/2026 - 13:43
File harbour-whatsapp-0.9.85-1.aarch64.rpm6.67 MB17/07/2026 - 14:12
File harbour-whatsapp-0.9.85-1.armv7hl.rpm6.82 MB17/07/2026 - 14:12
File harbour-whatsapp-0.9.86-1.aarch64.rpm6.67 MB17/07/2026 - 14:56
File harbour-whatsapp-0.9.86-1.armv7hl.rpm6.82 MB17/07/2026 - 14:56
File harbour-whatsapp-0.9.86-1.i486.rpm7.1 MB17/07/2026 - 15:14
File harbour-whatsapp-0.9.87-1.aarch64.rpm6.67 MB17/07/2026 - 15:45
File harbour-whatsapp-0.9.87-1.armv7hl.rpm6.82 MB17/07/2026 - 15:45
File harbour-whatsapp-0.9.87-1.i486.rpm7.1 MB17/07/2026 - 15:45
File harbour-whatsapp-0.9.89-1.i486.rpm7.1 MB17/07/2026 - 20:57
File harbour-whatsapp-0.9.89-1.armv7hl.rpm6.83 MB17/07/2026 - 20:57
File harbour-whatsapp-0.9.89-1.aarch64.rpm6.67 MB17/07/2026 - 20:57
File harbour-whatsapp-0.9.90-1.aarch64.rpm6.68 MB17/07/2026 - 21:59
File harbour-whatsapp-0.9.90-1.armv7hl.rpm6.83 MB17/07/2026 - 21:59
File harbour-whatsapp-0.9.90-1.i486.rpm7.1 MB17/07/2026 - 21:59
File harbour-whatsapp-0.9.93-1.i486.rpm7.11 MB18/07/2026 - 10:16
File harbour-whatsapp-0.9.93-1.armv7hl.rpm6.83 MB18/07/2026 - 10:16
File harbour-whatsapp-0.9.93-1.aarch64.rpm6.68 MB18/07/2026 - 10:16
File harbour-whatsapp-0.9.95-1.i486.rpm7.11 MB18/07/2026 - 11:04
File harbour-whatsapp-0.9.95-1.armv7hl.rpm6.83 MB18/07/2026 - 11:04
File harbour-whatsapp-0.9.95-1.aarch64.rpm6.68 MB18/07/2026 - 11:04
File harbour-whatsapp-0.9.96-1.i486.rpm7.11 MB18/07/2026 - 13:34
File harbour-whatsapp-0.9.96-1.armv7hl.rpm6.83 MB18/07/2026 - 13:34
File harbour-whatsapp-0.9.96-1.aarch64.rpm6.68 MB18/07/2026 - 13:34
File harbour-whatsapp-0.9.97-1.i486.rpm7.11 MB18/07/2026 - 15:10
File harbour-whatsapp-0.9.97-1.armv7hl.rpm6.83 MB18/07/2026 - 15:10
File harbour-whatsapp-0.9.97-1.aarch64.rpm6.68 MB18/07/2026 - 15:10
Changelog: 

- Message edits (OpenRepos report): the receive pipeline existed
end to end (backend replaces text and sets the edited flag, the
chat shows "edited" next to the time) - but the edit handler
ignored the update result and logged nothing, so a non-matching
message ID vanished without a trace. Every received edit now
leaves a log line (found or not, or unhandled shape), and edited
image/video captions are extracted too. If the reported case
recurs, the backend log will name the reason verbatim

Comments

rob_k's picture

I came across an interesting feature: an edited message.

In a group, someone asked "Can I borrow...?"
Ten minutes later, he has edited the message. The original question is still there, but in strike-through. He added new lines to the message: "Thanks...!"

Strike-through is not shown in the app, the added lines neither. The new, edited time is correct, the mark "Edited" isn't there. So, I still see the original question in the app.

I'd say this is an edge case, normal stuff is great.

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

Pages