All posts
9 October 2026 · Andy

Blocking spam: the easy way in the MeshOS app, and for good on your repeater

The MeshOS app's Path screen with a red Block button beside the entry repeater, and a MeshOS Repeater's Channels tab with the same repeater blocked

Every so often someone decides the Public channel needs their prize draw, their bot, or the same message forty times an hour. MeshCore has no central server that can switch them off, which is rather the point of it, but it does mean the tools have to live on the mesh itself: on your phone and on your repeaters. MeshOS now has both, and they work the same way, so this post starts with the quick fix in the app and then moves on to the repeater side.

The trick: block the entry repeater, not the channel

Every channel message carries its path, the list of repeaters it went through on its way to you. The first one in that list is the repeater the sender reached the mesh through, which I call the entry repeater. Someone spamming from home goes in through the same nearby repeater every time, so their messages always start with the same ID.

Block that entry repeater and their channel messages stop, without blocking Public for everyone else. Messages from further away that only pass through that repeater are not affected, and neither are direct messages, acks or adverts.

One thing worth knowing: anyone else whose first repeater is the same one is blocked too, and with 1-byte IDs (there are only 256 of them) a few repeaters can share an ID. So it is a tool for a real nuisance, not something to hand out lightly.

The easy way: the MeshOS app

In the MeshOS app (1.0.25 or later) it takes a couple of taps, straight from the spam itself:

  1. Long-press one of their messages and tap Path, the route icon in the bar at the top.
  2. The Path screen lists every hop from the sender to you, and the first repeater after the sender is the entry repeater. Tap the red Block beside it, then Block again to confirm.
  3. Their messages disappear straight away, and the button changes to Blocked.
A spam message selected in the MeshOS app, with the Path icon in the bar at the top
1. Long-press, then Path
The message's path: the sender, then Repeater 07 marked as the entry repeater with a red Block button, then the other hops
2. Block the entry repeater
The app explains what the block does and how to undo it before you confirm
3. Confirm
The entry repeater now shows Blocked, with an Undo button at the bottom
4. Done

It works whether the message reached you through your radio or over AirLink from nearby phones, and it also stops your phone passing those messages on to other AirLink phones.

What it does not do is stop the spam on the mesh. Your phone hides it, but the repeaters around you still repeat it for everyone else. That is why I think of the app as the quick fix: perfect for shutting out a nuisance for an evening, and just as easy to undo. Tap Blocked to remove it, or find it in Settings.

Spam Blocker in Settings

Everything lives together in Settings, under Spam Blocker:

  • Blocked users hides messages by name. Wildcards work: * for anything, ? for one character and # for one digit, so ######## hides those random eight-digit names that turn up from time to time.
  • Blocked repeaters and routes lists your entry repeater blocks, with a bin to remove each one. You can type in an ID yourself, or a route: two repeaters one after the other, written 45>A1.
  • Blocked channels are channels your phone will not pass on over AirLink. To stop seeing a channel yourself, just leave it.
The Spam Blocker section in the app's Settings: Blocked users, Blocked repeaters and routes with 1 blocked, and Blocked channels
Settings, Spam Blocker
Blocked repeaters and routes: a box to type an ID or a route, and entry repeater 07 in the list with a bin to remove it
Blocked repeaters and routes

For good: on your MeshOS Repeater

If you run a repeater you can stop the spam at the source, for everyone who listens to it. MeshOS Repeater 1.6.1 has the same entry repeater block, and its web page shows you exactly where the junk is coming from. (The screenshots below come from a demo setup, so the repeaters and their names are made up.)

Channels tab: what is busy, and where it comes in

The Channels tab has two lists. The top one is every channel the repeater has heard, by hash, busiest first. The bottom one, Entry repeaters, counts channel messages by the repeater they got onto the mesh through. A spammer stands out a mile: here, nearly all of that Public traffic is coming in through 07.

The Channels tab: channel hashes with Public the busiest, then the Entry repeaters list where 07, Moorland Edge, has ten times more channel messages than any other repeater

One click to block it

Press Block on that row. The page tells you exactly what will happen before it does anything:

The confirmation: block channel messages that got onto the mesh through repeater 07 (Moorland Edge)? This repeater will not repeat them or pass them to AirLink phones. Everyone whose messages come in through 07 is blocked too. Direct messages, acks and adverts still go through.

Once it is blocked the bar turns red, and the block keeps a running count of the messages it has kept off the air. Unblock, or the cross on the block, undoes it.

Entry repeater 07 blocked: its bar is red with an Unblock button, and the block reads entry 07, Moorland Edge, 184 not repeated

Packets tab: watch it work

On the Packets tab the live log marks every message the block holds back, while everyone else's messages carry on being repeated. You can start a block from here too: click the first hop of any channel message (it is underlined) and you get the same question.

The live packet log: messages arriving through 07 are marked blocked and are not sent on, while messages from other repeaters are heard and then repeated

Phones on AirLink are covered too

If your repeater runs the AirLink bridge, blocked messages are not passed to the phones on it either, and the AirLink card on the Overview counts them.

The AirLink bridge card: 2 phones connected, with 186 messages from blocked entry repeaters not passed on

Blocking a whole channel

Sometimes the channel itself is the problem, a chatty bot channel for example. Type its #name or hash into the box at the top of the Channels tab, or press Block on its row, and the repeater stops repeating it. If you ever need to do that for Public, untick Repeat public channel.

Or from the command line

All of this works from the Console tab too, from Manage a repeater in the app, over USB, or over LoRa when you are logged in as admin:

The Console tab: block.entry 07 answered with OK, channel messages entering via 07 are not repeated (Moorland Edge)
block.entry 07        stop repeating channel messages that came in through 07
get blocked.entry     list your blocks, and how many messages each has held back
unblock.entry 07      remove the block
block.channel #name   stop repeating a channel

The full list is on the new MeshOS Repeater Commands page in the user guide.

nRF52 repeaters: MeshOS Repeater Lite

Running a RAK, a T114, a T-Echo or another nRF52 board? MeshOS Repeater Lite is the standard MeshCore repeater with these same filters added. It has no web page, so you use the commands over USB or over LoRa, and chanstats and entrystats show you the busiest channels and entry repeaters. The user guide has the details.

Which should I use?

  • The app when you want the spam gone from your own screen, right now. A couple of taps, it only changes your phone, and it is just as quick to undo.
  • Your repeater when you want it stopped for everyone who uses your repeater. It stays until you remove it, so check the path first and use the longest ID you can see.

How to get it

The Spam Blocker is in the MeshOS app from 1.0.25, which you can get from meshcore.co.uk/app. The entry repeater block is in MeshOS Repeater 1.6.1 and MeshOS Repeater Lite 1.0, both in the configurator, and a MeshOS Repeater that is online can update itself from its Update tab.

Hopefully this keeps your local channels a nice place to be. If a spammer finds a way round it, let me know!

See you on the mesh!
Andy
73 de M6JKA

Back to all posts