Peter Steinberger – WhatsApp CLI: sync, search, send - Comments

Peter Steinberger – WhatsApp CLI: sync, search, send

recsv-heredoc

This is such a sorely needed point of integration. Cool to see Peter still shipping tools. It’s such a pity meta refuses to play ball like Telegram.

Either they’ll double-down and make this even harder -or- hopefully realise that WhatsApp is likely to be a really common control plane for AI systems in the next few years. Let’s hope the Llama energy strikes and it’s the latter.

How does WhatsMeow compare with Baileys?

dinakars777

WhatsMeow is stable unlike Baileys which faces challenges with maintainability.

3form

Don't they ban people using custom clients when discovered? I feel like I've read something on that note.

batuhanicoz

whatsmeow is built and maintained by Beeper's bridge architect, Tulir Asokan, and is used by many Beeper users every day with no issues. It's at the core of our WhatsApp bridge: https://github.com/mautrix/whatsapp

Baileys is also a great library with a big community and one of the primary maintainers of that is also helping us with the bridge/whatsmeow. WhatsApp integration in our old app, Texts, was built with it: https://github.com/textshq/platform-whatsapp

I would recommend whatsmeow over Baileys just because we are actively involved and incentivized to keep that working perfectly, and have a lot of data points to detect any issues with it at scale.

TZubiri

The thing is that their tight control is precisely what makes whatsapp a spam free environment. You can't have a libre federated protocol AND have it be spam free.

As soon as you open up the api floodgate, you'll start to see nigerian prince agents on openclaw speed.

faangguyindia

I just use telegram.

Just yesterday I setup a bot which is easy via botfather

And also, setup an app (claude built it but I had to fiddle with it, it works like pagerduty) but uses cloudflate worker to push downtime/errors (via fcm) in production (from graphana) via webhooks to "full screen, by pass dnd, alerts, with loud music, this one: https://www.youtube.com/watch?v=H0IQBWWabuU )

I named the app "Siren".

It's not straightforward to have durable hard to miss alerts about your production enviornment but good thing is this doesn't cost a cent.

Telegram group alerts are from my teammates (small team 3 members) via bot.

And Siren is for only me as I am responsible for the backend with 10 microservices, centralized logging via graphana, alloy, loki, and for metrics Prometheus.

It's all working reasonably well for me, this makes your life so much better as you fix the issues before they turn into nightmare.

taminka

it's really unfortunate that telegram doesn't do e2ee, bc it's hands down the best messenger otherwise :(

neya

Second this. Their API is such a breeze and it is so much more automation friendly than any other messenger platform. It has a good adoption % too, otherwise Signal is the real winner if we account for privacy.

jeanlucas

I personally don't use whatsapp because I like it, but because all my contacts in my country are over there. It is officially more used than SMS here. It is not optional in my case :/

risyachka

Be careful though - telegram is heavily compromised.

e.g. their backend just 2 days ago (and since at least start of the year) was replacing referral links to amex (and i bet many other banks etc) with custom referral codes from russian guys (so when I sent my friend my referral link - it showed another referral link in out chat history on both ends). and their security team says its all good.

so unless you are using it for useless info - better use something else.

PUSH_AX

> I just use telegram.

And how do you just get everyone you want to speak to use telegram?

andberx

The offline search with FTS5 is really nice. I have years of WhatsApp history and searching for anything in the app is painfully slow. Being able to just grep through everything locally would be a huge upgrade.

How far back does the backfill actually go? Does it pull your full history from the primary device or is there some limit?

m00dy

for some reason, I don't like this guy.

mechazawa

For some reason vibe coders with no development background consider him a god. But all he is is a charlitan at best

hathym

for context, he is the openclaw creator

BoppreH

I wish it mentioned how safe this is. Some years ago I got banned for just logging in with a third-party client, without sending any messages. Given how critical WhatsApp is for some people, and how permanent the bans are, that's a big risk.

watermelon0

You should use a separate WhatsApp account for bot purposes.

Recently, I used a separate WhatsApp account to interact with a group chat that I have with my friends. After about a week, they disabled the account, with no way to re-enable it.

zarzavat

Beware that if this does not use a real web browser then it's likely to get your whatsapp account suspended. Don't use it with any account you care about, you will lose all your data.

Hell, I got my whatsapp account suspended (appealed and reversed) just for using the official web client too soon after creating a new account.

worldsavior

Right now I see many bots on WhatsApp.

adaptit

[dead]

e7h4nz

If AI agents can proficiently use whatsapp I would assume that two-thirds of the people chatting with me in my contacts are actually just bots messaging me.

psychoslave

People are just a device that LLMs use to interact with the physical world now. That's far more safe for them, staying in the sweet datacenter while the meat puppets take all the risk of dirty jobs out there. Why create terminators or even use them as battery à la Matrix when all you need to do to make them work for you is to inject the right prompts in their phone. They will pay to be thus treated.

nkzd

What is the best way to get a throwaway phone number to try this? Is it possible to get one online?

miroljub

In most of the EU dictatorships, there's no legal way to obtain a phone number without registering with your real identity.

Chloride8387

I've used textverified in the past, maybe you could check it out (small cost per verification)

mawax

You can get a prepaid eSIM online, depending on your country. It's cheap and you don't have a monthly fee

e7h4nz

[dead]

whilenot-dev

OT#1, but I don't endorse the editorial choice to put the name of the "original" author in the submission title.

OT#2: Is it typical to put a package.json in a go project as replacement for a {Make,Just}file?

exitb

It strikes me as odd that we've got so many agent harnesses, orchestrators, sandboxes, yet no one made a communicator for AIs yet.

joshwarwick15

(Caveat I’m the founder of https://wassist.app - The WhatsApp Agent Platform)

Please be very careful using this tool to automate your WhatsApp - if you send too many messages, too quickly, you are going to get banned.

This is NOT an officially supported api by WhatsApp and the risk of ban is relatively high

batuhanicoz

The way I would put it as someone who works at Beeper is: only use messaging automations for personal use, and don't use it to spam anyone or do anything you wouldn't do yourself within the app.

As long as you don't abuse and keep your usage within the parameters of any human, you'll be fine.

swyx

just so we know the consequences - is ban permanent? is there an appeals processes?

asim

I don't know why in 2026 I'm still surprised CLIs are taking off. But here's the difference today. It's for real world end user platforms like WhatsApp and Claude. That's the difference. Previously it was only Dev and infrastructure focused. Today we're saying you know what, I need programmatic access to this real world thing. It's fascinating because I rarely open my laptop now or try not to.

Who are these people using the cli?

psychoslave

People that prefer to use CLI I guess.

Obviously it helps that one can pipe as it might see fit in the flow of an ad hoc filled need, and so leverage on mastered composable tools.

That will never be for everyone, but it will be for no one only the day it becomes logistically unsustainable to reach some endpoint though a CLI.

duskdozer

Devs are often also users. cli is nice because

- automation - sometimes avoid enshittified, privacy-invading services - fast, responsive, keyboard-friendly, debloated but non-minimized, stabler interface

pmxi

These CLIs are for AI agents. If I have a CLI to WhatsApp, then I can direct an agent (such as OpenClaw) to manage my messages for me.

superfa

[dead]

intheitmines

The lifting/interfacing with whatsapp is handled by https://github.com/tulir/whatsmeow

eisbaw

Matrix

jannes

Jabber/XMPP was designed around persistent TCP connections. Push notification support came too late.

taminka

they do have encryption, just not e2ee, and in fairness to them, it doesn't make sense to have e2ee on a channel or a group with 100k ppl in it, also device sync is possible with e2ee, it's just a slower

sixhobbits

I'd be curious to know how many numbers were burned/banned during the development of this library

jillesvangurp

Cool.

I spun up a self hosted matrix server a few days ago using codex, docker compose, and ansible. Stupidly easy to do now. I'm running it in Hetzner on a 3.99 euro/month vm. It backs up every few hours to a bucket and I have a few integrity scripts to monitor the backups actually happen. I did that because I was getting a bit frustrated with the flaky integration with Whatsapp and Slack in openclaw. I had it up and running in half an hour with only minimal prompting.

Whatsapp kind of works but you end up chatting with yourself and then open claw posts messages as you. Not ideal. You can't easily create new users (or bot users) in Whatsapp. It probably has some kind of bot api of course but I did not explore that much.

I never quite managed to get Slack working with open claw. I tried for a few hours. I think the Slack team is asleep at the wheel snoozing through this whole AI thing. If somebody there is still paying attention to things like this, maybe make some noise internally. Anyway, they made it stupidly hard to do anything productive via their APIs. The UI for managing permissions is a disgraceful hell of complexity. Add permission. UI freezes for fifteen seconds. Reloads automatically. Unfreezes. Add the next. And whatever you do, there's always one more permission you forgot. end rant

Relative to Whatsapp and Slack, Matrix is stupidly easy to integrate with open claw, codex, or whatever. We're retiring Slack now as I see uses for agent driven chat bots everywhere now and I want to get rid of any kind of friction around bot related plumbing. I have no use for platforms that intentionally cripple that or treat as a toll booth.

With Matrix, you just create a bot user manually or via an API. Set a password, get an access token and do whatever. No API limits. No faff with QR codes. No permission hell (Slack). It just works. Well documented API. End to end encryption. Etc. Create as many bot users as you need. Nobody is bean counting API calls, numbers of users, etc. Refreshingly easy.

Other OSS messaging platforms are available of course. I do not have a strong opinion as to which is better yet. But now I want a Matrix cli that can do admin, message sending, and all the rest. Probably already exists. But if it doesn't I might end up generating one. Macli might be a good name.

mentalgear

Reading a lot about people getting banned here for not using the official client, but doesn't Whatsapp have to be interoperable now (at least in the EU due to new legislation) ?

At least Whatsapp itself shows ad banners that you can now connect other messaging clients into Whatsapp, so it should be normal that other clients can equally access Whatsapp.

lxgr

Officially interoperating with them is extremely onerous, to the point where their mechanism borders malicious compliance, as far as I remember.

In any case, official interoperability is only for third-party messengers communicating with WhatsApp users, not for automation or bots, as I understand, so it's not a replacement for things like this project.

stavros

So I don't need my primary device any more? I can just shut that phone down forever?

lxgr

No, I think you need it to be online once every 30 days or so. That's a much weaker requirement than what you were disputing, though.

saberience

As someone that's written some apps using official WA for Business accounts, I would strongly advise against any 3rd party tools for automating WA.

Whatsapp has some really stringent requirements on any kind of automation. E.g. Not messaging anyone automatically unless they messaged you with 24 hours, in fact, this is explicitly blocked if you use Meta's API. You have to use message templates in this case.

Also, any bots need to be verified with Meta etc.

And the TOS has gotten more strict recently, not less strict. So buyer beware here, Meta is really protective over reverse engineering WA protocol or automating it, so you can easily get yourself blocked or banned here.

JimmaDaRustla

I tried creating a whatsapp "bot" which would just send notifications for my Jellyfin server. It was a bureaucratic nightmare - creating dev accounts, creating some sort of "project", then it was requiring I register it as a business as though the only valid use case for creating an app for WhatsApp is a business, then it required me to verify my identify and upload documents.

I just switched to Signal.

alex-nikitin

There's a whole cottage industry around WhatsApp that exists to provide tools and services to commodity brokers and traders, primarily for compliance and bulk messaging existing customers. Meta has nerfed bulk forwarding on their desktop app, and the industry moved to third party tools to work around this. The reality is, no-one is spamming, everyone is consenting to this, everyone understands the risks, but a lot of markets live on the WhatsApp network, and despite there being compliant chat solutions, the existing network effects keep the status quo. Prior to WhatsApp, the markets operated on Yahoo Messenger, and the only reason there was a move was because Yahoo shut it down in 2016.

If anyone from Meta is reading this - we've spoken to some of your managers and there's zero appetite from your side to address this market because it's too small. I would go out of my way to help you design this for free to solve the market need.

recsv-heredoc

This is such a sorely needed point of integration. Cool to see Peter still shipping tools. It’s such a pity meta refuses to play ball like Telegram.

Either they’ll double-down and make this even harder -or- hopefully realise that WhatsApp is likely to be a really common control plane for AI systems in the next few years. Let’s hope the Llama energy strikes and it’s the latter.

How does WhatsMeow compare with Baileys?

dinakars777

WhatsMeow is stable unlike Baileys which faces challenges with maintainability.

3form

Don't they ban people using custom clients when discovered? I feel like I've read something on that note.

batuhanicoz

whatsmeow is built and maintained by Beeper's bridge architect, Tulir Asokan, and is used by many Beeper users every day with no issues. It's at the core of our WhatsApp bridge: https://github.com/mautrix/whatsapp

Baileys is also a great library with a big community and one of the primary maintainers of that is also helping us with the bridge/whatsmeow. WhatsApp integration in our old app, Texts, was built with it: https://github.com/textshq/platform-whatsapp

I would recommend whatsmeow over Baileys just because we are actively involved and incentivized to keep that working perfectly, and have a lot of data points to detect any issues with it at scale.

TZubiri

The thing is that their tight control is precisely what makes whatsapp a spam free environment. You can't have a libre federated protocol AND have it be spam free.

As soon as you open up the api floodgate, you'll start to see nigerian prince agents on openclaw speed.

faangguyindia

I just use telegram.

Just yesterday I setup a bot which is easy via botfather

And also, setup an app (claude built it but I had to fiddle with it, it works like pagerduty) but uses cloudflate worker to push downtime/errors (via fcm) in production (from graphana) via webhooks to "full screen, by pass dnd, alerts, with loud music, this one: https://www.youtube.com/watch?v=H0IQBWWabuU )

I named the app "Siren".

It's not straightforward to have durable hard to miss alerts about your production enviornment but good thing is this doesn't cost a cent.

Telegram group alerts are from my teammates (small team 3 members) via bot.

And Siren is for only me as I am responsible for the backend with 10 microservices, centralized logging via graphana, alloy, loki, and for metrics Prometheus.

It's all working reasonably well for me, this makes your life so much better as you fix the issues before they turn into nightmare.

taminka

it's really unfortunate that telegram doesn't do e2ee, bc it's hands down the best messenger otherwise :(

neya

Second this. Their API is such a breeze and it is so much more automation friendly than any other messenger platform. It has a good adoption % too, otherwise Signal is the real winner if we account for privacy.

jeanlucas

I personally don't use whatsapp because I like it, but because all my contacts in my country are over there. It is officially more used than SMS here. It is not optional in my case :/

risyachka

Be careful though - telegram is heavily compromised.

e.g. their backend just 2 days ago (and since at least start of the year) was replacing referral links to amex (and i bet many other banks etc) with custom referral codes from russian guys (so when I sent my friend my referral link - it showed another referral link in out chat history on both ends). and their security team says its all good.

so unless you are using it for useless info - better use something else.

PUSH_AX

> I just use telegram.

And how do you just get everyone you want to speak to use telegram?

andberx

The offline search with FTS5 is really nice. I have years of WhatsApp history and searching for anything in the app is painfully slow. Being able to just grep through everything locally would be a huge upgrade.

How far back does the backfill actually go? Does it pull your full history from the primary device or is there some limit?

m00dy

for some reason, I don't like this guy.

mechazawa

For some reason vibe coders with no development background consider him a god. But all he is is a charlitan at best

hathym

for context, he is the openclaw creator

BoppreH

I wish it mentioned how safe this is. Some years ago I got banned for just logging in with a third-party client, without sending any messages. Given how critical WhatsApp is for some people, and how permanent the bans are, that's a big risk.

watermelon0

You should use a separate WhatsApp account for bot purposes.

Recently, I used a separate WhatsApp account to interact with a group chat that I have with my friends. After about a week, they disabled the account, with no way to re-enable it.

zarzavat

Beware that if this does not use a real web browser then it's likely to get your whatsapp account suspended. Don't use it with any account you care about, you will lose all your data.

Hell, I got my whatsapp account suspended (appealed and reversed) just for using the official web client too soon after creating a new account.

worldsavior

Right now I see many bots on WhatsApp.

adaptit

[dead]

e7h4nz

If AI agents can proficiently use whatsapp I would assume that two-thirds of the people chatting with me in my contacts are actually just bots messaging me.

psychoslave

People are just a device that LLMs use to interact with the physical world now. That's far more safe for them, staying in the sweet datacenter while the meat puppets take all the risk of dirty jobs out there. Why create terminators or even use them as battery à la Matrix when all you need to do to make them work for you is to inject the right prompts in their phone. They will pay to be thus treated.

nkzd

What is the best way to get a throwaway phone number to try this? Is it possible to get one online?

miroljub

In most of the EU dictatorships, there's no legal way to obtain a phone number without registering with your real identity.

Chloride8387

I've used textverified in the past, maybe you could check it out (small cost per verification)

mawax

You can get a prepaid eSIM online, depending on your country. It's cheap and you don't have a monthly fee

e7h4nz

[dead]

whilenot-dev

OT#1, but I don't endorse the editorial choice to put the name of the "original" author in the submission title.

OT#2: Is it typical to put a package.json in a go project as replacement for a {Make,Just}file?

exitb

It strikes me as odd that we've got so many agent harnesses, orchestrators, sandboxes, yet no one made a communicator for AIs yet.

joshwarwick15

(Caveat I’m the founder of https://wassist.app - The WhatsApp Agent Platform)

Please be very careful using this tool to automate your WhatsApp - if you send too many messages, too quickly, you are going to get banned.

This is NOT an officially supported api by WhatsApp and the risk of ban is relatively high

batuhanicoz

The way I would put it as someone who works at Beeper is: only use messaging automations for personal use, and don't use it to spam anyone or do anything you wouldn't do yourself within the app.

As long as you don't abuse and keep your usage within the parameters of any human, you'll be fine.

swyx

just so we know the consequences - is ban permanent? is there an appeals processes?

asim

I don't know why in 2026 I'm still surprised CLIs are taking off. But here's the difference today. It's for real world end user platforms like WhatsApp and Claude. That's the difference. Previously it was only Dev and infrastructure focused. Today we're saying you know what, I need programmatic access to this real world thing. It's fascinating because I rarely open my laptop now or try not to.

Who are these people using the cli?

psychoslave

People that prefer to use CLI I guess.

Obviously it helps that one can pipe as it might see fit in the flow of an ad hoc filled need, and so leverage on mastered composable tools.

That will never be for everyone, but it will be for no one only the day it becomes logistically unsustainable to reach some endpoint though a CLI.

duskdozer

Devs are often also users. cli is nice because

- automation - sometimes avoid enshittified, privacy-invading services - fast, responsive, keyboard-friendly, debloated but non-minimized, stabler interface

pmxi

These CLIs are for AI agents. If I have a CLI to WhatsApp, then I can direct an agent (such as OpenClaw) to manage my messages for me.

superfa

[dead]

intheitmines

The lifting/interfacing with whatsapp is handled by https://github.com/tulir/whatsmeow

eisbaw

Matrix

jannes

Jabber/XMPP was designed around persistent TCP connections. Push notification support came too late.

taminka

they do have encryption, just not e2ee, and in fairness to them, it doesn't make sense to have e2ee on a channel or a group with 100k ppl in it, also device sync is possible with e2ee, it's just a slower

sixhobbits

I'd be curious to know how many numbers were burned/banned during the development of this library

jillesvangurp

Cool.

I spun up a self hosted matrix server a few days ago using codex, docker compose, and ansible. Stupidly easy to do now. I'm running it in Hetzner on a 3.99 euro/month vm. It backs up every few hours to a bucket and I have a few integrity scripts to monitor the backups actually happen. I did that because I was getting a bit frustrated with the flaky integration with Whatsapp and Slack in openclaw. I had it up and running in half an hour with only minimal prompting.

Whatsapp kind of works but you end up chatting with yourself and then open claw posts messages as you. Not ideal. You can't easily create new users (or bot users) in Whatsapp. It probably has some kind of bot api of course but I did not explore that much.

I never quite managed to get Slack working with open claw. I tried for a few hours. I think the Slack team is asleep at the wheel snoozing through this whole AI thing. If somebody there is still paying attention to things like this, maybe make some noise internally. Anyway, they made it stupidly hard to do anything productive via their APIs. The UI for managing permissions is a disgraceful hell of complexity. Add permission. UI freezes for fifteen seconds. Reloads automatically. Unfreezes. Add the next. And whatever you do, there's always one more permission you forgot. end rant

Relative to Whatsapp and Slack, Matrix is stupidly easy to integrate with open claw, codex, or whatever. We're retiring Slack now as I see uses for agent driven chat bots everywhere now and I want to get rid of any kind of friction around bot related plumbing. I have no use for platforms that intentionally cripple that or treat as a toll booth.

With Matrix, you just create a bot user manually or via an API. Set a password, get an access token and do whatever. No API limits. No faff with QR codes. No permission hell (Slack). It just works. Well documented API. End to end encryption. Etc. Create as many bot users as you need. Nobody is bean counting API calls, numbers of users, etc. Refreshingly easy.

Other OSS messaging platforms are available of course. I do not have a strong opinion as to which is better yet. But now I want a Matrix cli that can do admin, message sending, and all the rest. Probably already exists. But if it doesn't I might end up generating one. Macli might be a good name.

mentalgear

Reading a lot about people getting banned here for not using the official client, but doesn't Whatsapp have to be interoperable now (at least in the EU due to new legislation) ?

At least Whatsapp itself shows ad banners that you can now connect other messaging clients into Whatsapp, so it should be normal that other clients can equally access Whatsapp.

lxgr

Officially interoperating with them is extremely onerous, to the point where their mechanism borders malicious compliance, as far as I remember.

In any case, official interoperability is only for third-party messengers communicating with WhatsApp users, not for automation or bots, as I understand, so it's not a replacement for things like this project.

stavros

So I don't need my primary device any more? I can just shut that phone down forever?

lxgr

No, I think you need it to be online once every 30 days or so. That's a much weaker requirement than what you were disputing, though.

saberience

As someone that's written some apps using official WA for Business accounts, I would strongly advise against any 3rd party tools for automating WA.

Whatsapp has some really stringent requirements on any kind of automation. E.g. Not messaging anyone automatically unless they messaged you with 24 hours, in fact, this is explicitly blocked if you use Meta's API. You have to use message templates in this case.

Also, any bots need to be verified with Meta etc.

And the TOS has gotten more strict recently, not less strict. So buyer beware here, Meta is really protective over reverse engineering WA protocol or automating it, so you can easily get yourself blocked or banned here.

JimmaDaRustla

I tried creating a whatsapp "bot" which would just send notifications for my Jellyfin server. It was a bureaucratic nightmare - creating dev accounts, creating some sort of "project", then it was requiring I register it as a business as though the only valid use case for creating an app for WhatsApp is a business, then it required me to verify my identify and upload documents.

I just switched to Signal.

alex-nikitin

There's a whole cottage industry around WhatsApp that exists to provide tools and services to commodity brokers and traders, primarily for compliance and bulk messaging existing customers. Meta has nerfed bulk forwarding on their desktop app, and the industry moved to third party tools to work around this. The reality is, no-one is spamming, everyone is consenting to this, everyone understands the risks, but a lot of markets live on the WhatsApp network, and despite there being compliant chat solutions, the existing network effects keep the status quo. Prior to WhatsApp, the markets operated on Yahoo Messenger, and the only reason there was a move was because Yahoo shut it down in 2016.

If anyone from Meta is reading this - we've spoken to some of your managers and there's zero appetite from your side to address this market because it's too small. I would go out of my way to help you design this for free to solve the market need.