Skip to main content

MeshBud (On Mesh)

MeshBud runs on the mesh and can be used in the #test, #bot, #meshbud channels.

Send a network flood advert to announce the bot's presence on the mesh network.

Usage:

advert

Response: Confirms that the advert was sent.

Note:

  • DM only command
  • 1-hour cooldown period between uses
  • Sends a flood advert to all nodes on the network

aqi <location>

Get Air Quality Index (AQI) information for a location.

Usage:

aqi <location>
aqi <city>
aqi <city>, <state>
aqi <city>, <country>
aqi <latitude>,<longitude>
aqi help

Examples:

aqi seattle
aqi greenwood
aqi vancouver canada
aqi 47.6,-122.3
aqi help

Response: Air quality data including:

  • US AQI value and category
  • European AQI (if available)
  • Pollutant concentrations (PM2.5, PM10, Ozone, etc.)
  • Health recommendations

channels

List and manage hashtag channels on the MeshCore network.

Usage:

  • channels - List general channels
  • channels list - List all channel categories
  • channels <category> - List channels in a specific category
  • channels #channel - Get information about a specific channel

Examples:

channels
channels list
channels emergency
channels #general

Response: Lists available channels with their descriptions and usage statistics.


dadjoke

Get a dad joke from icanhazdadjoke.com.

Usage:

dadjoke

Response: A random dad joke.


dice

Roll dice with various configurations.

Usage:

  • dice - Roll a standard 6-sided die (d6)
  • dice d<N> - Roll a die with N sides
  • dice <X>d<N> - Roll X dice with N sides each

Examples:

dice
dice d20
dice 2d6
dice 3d10

Response: Shows the dice roll result(s) and total.


feed

Manage RSS feed and API feed subscriptions (Admin only).

Usage:

feed <subcommand> [options]

Subcommands

  • subscribe <rss|api> <url> <channel> [name] - Subscribe to a feed
  • unsubscribe <id|url> <channel> - Unsubscribe from a feed
  • list [channel] - List all subscriptions
  • status <id> - Get status of a specific subscription
  • test <url> - Test a feed URL
  • enable <id> - Enable a subscription
  • disable <id> - Disable a subscription
  • update <id> [interval_seconds] - Update subscription interval

Examples:

feed subscribe rss https://alerts.example.com/rss emergency "Emergency Alerts"
feed subscribe api https://api.example.com/alerts emergency "API Alerts" '{"headers": {"Authorization": "Bearer TOKEN"}}'
feed list
feed status 1
feed test https://example.com/feed.xml

Response: Confirmation of the action or list of subscriptions.

Note: Admin access required. Feeds are automatically checked and posted to the specified channel.


help

Show available commands or get detailed help for a specific command.

Usage:

  • help - List all available commands
  • help <command> - Get detailed help for a specific command

Examples:

help
help wx
help repeater

Response: Lists commands or provides detailed information about the specified command.


hfcond

Get HF band conditions for amateur radio.

Usage:

hfcond

Response: HF band conditions including:

  • Band status (Open/Closed/Marginal)
  • Solar flux
  • A-index and K-index
  • Propagation conditions

hello

Greeting response. Also responds to various greeting keywords.

Usage:

hello
hi
hey
howdy
greetings

Response: Friendly greeting message.


joke

Get a random joke from various categories.

Usage:

  • joke - Get a random joke
  • joke <category> - Get a joke from a specific category

Examples:

joke
joke programming
joke pun

Response: A random joke from the selected category.


magic8 <question>

Magic 8 ball–style yes/no oracle. Ask any yes/no question after the command. (Available on MeshBud / on-mesh.)

Usage:

magic8 <question>

Examples:

magic8 will I win the lottery tomorrow?
magic8 is it going to rain?
magic8 should I deploy today?

Response: A random Magic 8 ball–style answer (e.g. "Yes, definitely", "Reply hazy try again", "Don't count on it").


moon

Get moon phase information and moonrise/moonset times for the bot's configured location.

Usage:

moon

Response: Current moon phase, moonrise/moonset times, and illumination percentage.

Note: Uses the bot's configured default location (bot_latitude and bot_longitude in config.ini), not the user's location from their advert.


multitest or mt

Listen for 6 seconds and collect all unique paths from incoming messages.

Usage:

multitest
mt

Response: List of all unique routing paths discovered during the 6-second listening period.


path or decode or route

Decode and display the routing path of a message.

Usage:

path
decode
route

Response: Shows the complete routing path the message took through the mesh network, including all intermediate nodes.


ping

Simple ping/pong response to test bot responsiveness.

Usage:

ping

Response: Pong!


prefix <XX>

Look up repeaters by two-character prefix.

Usage:

  • prefix <XX> - Look up repeaters with the specified prefix
  • prefix <XX> all - Include all repeaters (not just active ones)
  • prefix refresh - Refresh the prefix cache
  • prefix free or prefix available - Show available prefixes

Examples:

prefix 1A
prefix 2B all
prefix refresh
prefix free

Response: List of repeaters matching the prefix, including:

  • Repeater name
  • Status (active/inactive)
  • Last seen time
  • Location (if available)

repeater or repeaters or rp

Note: Management commands are only available via Direct Message (DM) and may require ACL permissions.

Manage repeater contacts and contact list capacity.

Usage:

repeater <subcommand> [options]
repeaters <subcommand> [options]
rp <subcommand> [options]

Repeater Management Subcommands

  • scan - Scan current contacts and catalog new repeaters
  • list - List repeater contacts (use --all to show purged ones)
  • locations - Show location data status for repeaters
  • update-geo - Update missing geolocation data (state/country) from coordinates
    • update-geo dry-run - Preview what would be updated without making changes
    • update-geo <N> - Update up to N repeaters (default: 10)
    • update-geo dry-run <N> - Preview updates for up to N repeaters
  • purge all - Purge all repeaters
  • purge all force - Force purge all repeaters (uses multiple removal methods)
  • purge <days> - Purge repeaters older than specified days
  • purge <name> - Purge specific repeater by name
  • restore <name> - Restore a previously purged repeater
  • stats - Show repeater management statistics

Contact List Management Subcommands

  • status - Show contact list status and limits
  • manage - Manage contact list to prevent hitting limits
  • manage --dry-run - Show what management actions would be taken
  • add <name> [key] - Add a discovered contact to contact list
  • auto-purge - Show auto-purge status and controls
  • auto-purge trigger - Manually trigger auto-purge
  • auto-purge enable/disable - Enable/disable auto-purge
  • purge-status - Show detailed purge status and recommendations
  • test-purge - Test the improved purge system
  • discover - Discover companion contacts
  • auto <on|off> - Toggle manual contact addition setting
  • test - Test meshcore-cli command functionality

Examples:

repeater scan
repeater status
repeater manage
repeater manage --dry-run
repeater add "John"
repeater discover
repeater auto-purge
repeater auto-purge trigger
repeater purge-status
repeater purge all
repeater purge 30
repeater stats

Response: Varies by subcommand. Provides information about repeater contacts, contact list capacity, and management actions.

Note: This system helps manage both repeater contacts and overall contact list capacity. It automatically removes stale contacts and old repeaters when approaching device limits.

Automatic Features:

  • NEW_CONTACT events are automatically monitored
  • Repeaters are automatically cataloged when discovered
  • Contact list capacity is monitored in real-time
  • auto_manage_contacts = device: Device handles auto-addition, bot manages capacity
  • auto_manage_contacts = bot: Bot automatically adds companion contacts and manages capacity
  • auto_manage_contacts = false: Manual mode - use !repeater commands to manage contacts

roll

Roll a random number within a specified range.

Usage:

  • roll - Roll a number between 1 and 100
  • roll <max> - Roll a number between 1 and max

Examples:

roll
roll 50
roll 1000

Response: Shows the random number result.


satpass <NORAD>

Get satellite pass information for a satellite by NORAD ID.

Usage:

  • satpass <NORAD> - Get radio passes (all passes above horizon)
  • satpass <NORAD> visual - Get visual passes only (must be visually observable)
  • satpass <shortcut> - Use predefined shortcuts

Shortcuts:

  • Weather Satellites: noaa15, noaa18, noaa19, metop-a, metop-b, metop-c, goes16, goes17, goes18
  • Space Stations: iss, tiangong, tiangong1, tiangong2
  • Telescopes: hst, hubble
  • Other: starlink

Examples:

satpass 25544
satpass iss
satpass iss visual
satpass noaa19
satpass hubble visual

Response: Upcoming satellite passes including:

  • Pass start/end times
  • Maximum elevation
  • Duration
  • Azimuth at start/end
  • Visual pass indicator (if applicable)

Note: Requires n2yo_api_key to be configured in config.ini.


solar

Get solar conditions and HF band status.

Usage:

solar

Response: Solar activity information including:

  • Solar flux
  • Sunspot number
  • A-index and K-index
  • HF band conditions (Open/Closed/Marginal)
  • Solar activity summary

solarforecast or sf

Get solar panel production forecast for a location.

Usage:

sf <location|repeater_name|coordinates|zipcode> [panel_size] [azimuth] [angle]
solarforecast <location> [panel_size] [azimuth] [angle]

Parameters:

  • location - Location name, repeater name, coordinates (lat,lon), or zipcode
  • panel_size - Panel size in watts (optional, default: 100W)
  • azimuth - Panel azimuth in degrees, 0=south (optional, default: 180)
  • angle - Panel tilt angle in degrees (optional, default: 30)

Examples:

sf seattle
sf seattle 200
sf seattle 200 180 45
sf 47.6,-122.3 150
sf repeater1 100 180 30

Response: Solar panel production forecast including:

  • Daily production estimate
  • Hourly production breakdown
  • Peak production time
  • Total daily kWh estimate

stats

Show bot usage statistics for the past 24 hours.

Usage:

  • stats - Overall statistics
  • stats messages - Message statistics
  • stats channels - Channel statistics
  • stats paths - Path statistics

Examples:

stats
stats messages
stats channels
stats paths

Response: Usage statistics including:

  • Total messages processed
  • Commands executed
  • Channel activity
  • Routing path information

sun

Get sunrise and sunset times for the bot's configured location.

Usage:

sun

Response: Sunrise and sunset times, day length, and solar noon.

Note: Uses the bot's configured default location (bot_latitude and bot_longitude in config.ini), not the user's location from their advert.


test or t

Test message response to verify bot connectivity and functionality.

Usage:

  • test - Basic test response
  • test <phrase> - Test with optional phrase

Examples:

test
t hello world

Response: Confirms message receipt with connection information.


wx <zipcode>

Get weather information for a US zip code using NOAA data.

Aliases: weather, wxa, wxalert

Usage:

wx <zipcode>
weather <zipcode>
wxa <zipcode>
wxalert <zipcode>

Examples:

wx 98101
weather 90210
wxa 10001

Response: Current weather conditions, forecast for tonight/tomorrow, and active weather alerts. Includes:

  • Current conditions (temperature, humidity, wind, etc.)
  • Short-term forecast (tonight, tomorrow)
  • Weather alerts if any are active

Note: Weather alerts are automatically included when available.


Additional Notes

Prefix

Commands can be used with or without the ! prefix:

  • test or !test - Both work
  • wx 98101 or !wx 98101 - Both work

Direct Messages

Some commands work in both public channels and direct messages, while management commands typically require direct messages for security.

Rate Limiting

The bot implements rate limiting to prevent spam. If you send commands too quickly, you may receive a rate limit message. Wait a few seconds before trying again.

Case Sensitivity

Most commands are case-insensitive:

  • TEST and test work the same
  • WX 98101 and wx 98101 work the same

Getting Help

Use the help command to get more information:

  • help - List all commands
  • help <command> - Get detailed help for a specific command

Location Requirements

Some commands use location data:

  • sun and moon - Use the bot's configured default location (bot_latitude and bot_longitude in config.ini), not the user's location from their advert
  • solar - Does not require location (provides global solar conditions)
  • solarforecast - Requires a location parameter (location name, repeater name, coordinates, or zipcode)
  • wx - Requires a zipcode parameter
  • aqi - Requires a location parameter