Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/permissionlesstech/bitchat/llms.txt

Use this file to discover all available pages before exploring further.

Bitchat’s composer supports an IRC-style command interface. Every command begins with a / character. Commands are the primary way to open private chats, manage groups, inspect the mesh, and interact with peers — without leaving the keyboard.
Type / in the composer to open the autocomplete panel. It shows every command available in the current context, with a short description for each. The panel hides once you start typing arguments, and reappears on a fresh /. Typing /help prints the full command reference as a local system message.

Available Commands

Some commands are context-sensitive. Commands that interact with the Bluetooth mesh (/ping, /trace, /fav, /unfav, /group) are only suggested and accepted in the #mesh channel. The /pay command is suppressed in public geohash location channels because Cashu tokens are bearer instruments — anyone reading the channel could redeem one before your intended recipient.
Block a peer. Stops their messages from appearing in your timelines and purges any of their cached public messages from your device. Works for both mesh peers (identified by Noise key fingerprint) and geohash channel participants (identified by Nostr public key).Running /block with no arguments prints your current block list, separated into mesh blocks and geohash blocks.Syntax: /block <nickname>Example:
/block alice
blocked alice. you will no longer receive messages from them
Unblock a previously blocked peer. Reverses the effect of /block. The peer’s future messages will appear normally; previously purged messages are not restored.Syntax: /unblock <nickname>Example:
/unblock alice
unblocked alice
Clear the current chat timeline. In the public mesh channel, clears the local message history. In a private chat, clears that conversation. The action is local only — other peers’ timelines are not affected.Syntax: /clear
Drop a location note at your current position. Posts a short text note pinned to your current building-level geohash with a 24-hour expiry (Nostr NIP-40). Anyone who visits the same location and checks the area notes will see it until it fades.Requires location permission to be enabled in the Info screen. Location notes must also be turned on in settings. Internet access is required to reach Nostr geo relays.Syntax: /drop <message>Example:
/drop free coffee on the third floor until noon
📍 note left here — it fades in 24h
Favorite a mesh peer. Pins their full Noise public key so Bitchat can recognize them across sessions. Enables the Nostr delivery path and grants them a larger courier deposit quota. The peer is notified over the mesh or Nostr that you favorited them.Only works in the #mesh channel — not in geohash location channels.Syntax: /fav <nickname>Example:
/fav alice
added alice to favorites
See Favorites & Delivery for what favorites unlock.
Remove a peer from favorites. The peer’s Nostr delivery path and larger courier quota are revoked. Only works in the #mesh channel.Syntax: /unfav <nickname>Example:
/unfav alice
removed alice from favorites
Manage private encrypted groups. Groups are end-to-end encrypted with a ChaCha20-Poly1305 symmetric key that only members hold. The group creator controls membership. Only works in the #mesh channel — groups are a mesh-only feature.
SubcommandDescription
create <name>Create a new group with the given name
invite @nameInvite a mesh peer into the current group (creator only)
remove @nameRemove a member from the current group (creator only); rotates the key
leaveLeave the current group
listList all groups you are a member of
Examples:
/group create hackerspace
/group invite @bob
/group remove @charlie
/group leave
/group list
See Groups for a full explanation of group encryption and key rotation.
Show the command reference. Prints all available commands as a local system message. The list does not leave your device.Syntax: /help
Send a hug action. Posts an IRC-style * 🫂 yournick hugs nickname * emote to the current channel (public or private). A friendly gesture with a long IRC heritage.Syntax: /hug <nickname>Example:
/hug alice
* 🫂 bob hugs alice *
Start or send a private message. Opens a private encrypted chat with the named peer. If a message is included after the nickname, it is sent immediately. Also available as /m.Syntax: /msg <nickname> [optional message text]Examples:
/msg alice
/msg alice hey, are you at the venue?
started private chat with alice
Send a Cashu ecash token. Validates that the pasted string decodes as a well-formed Cashu token (cashuA… or cashuB…), then sends it as the message body in the current chat. Bitchat never contacts a mint — it only relays the token string.
Cashu tokens are bearer instruments: whoever redeems the token first receives the funds. In a public channel this means any nearby stranger could claim the payment. For that reason, /pay is suppressed in public geohash location channels. To send to a public channel anyway, append public to your command: /pay cashuA… public. In private DMs and the #mesh channel, the command works normally without the public flag.
Syntax: /pay <cashu-token> or /pay <cashu-token> publicExample (private DM):
/pay cashuAeyJ0b2tlbiI6WyJ...
sent 100 sats — cashu is a bearer token; whoever redeems it first gets the funds
Measure round-trip time to a mesh peer. Sends a ping packet over the Bluetooth mesh and waits for a pong reply, then reports the round-trip time in milliseconds and, if available, the number of hops. Only works for mesh peers in the #mesh channel.Syntax: /ping <nickname>Example:
/ping alice
pinging alice…
pong from alice: 142 ms · 2 hops
Slap someone with a large trout. The classic IRC emote. Posts * 🐟 yournick slaps nickname around a bit with a large trout * to the current channel.Syntax: /slap <nickname>Example:
/slap bob
* 🐟 alice slaps bob around a bit with a large trout *
Trace the estimated mesh path to a peer. Computes an estimated hop-by-hop route based on gossiped neighbor topology data collected from peer announcements. The path is an estimate — not a recorded trace — because topology is assembled from each peer’s self-reported neighbors, not from packet forwarding records. Only works for mesh peers in the #mesh channel.Syntax: /trace <nickname>Example:
/trace alice
estimated path: you → bob → alice (2 hops)
List visible peers. In the #mesh channel, lists connected mesh peer nicknames. In a geohash location channel, lists participants currently visible in that channel (excluding yourself).Syntax: /whoExample:
/who
online: alice, bob, charlie

Context Restrictions

The table below summarizes which commands are available in each channel type.
Command#meshPrivate DMLocation channel
/block / /unblock
/clear
/drop
/help
/hug / /slap
/msg
/who
/pay⚠️ requires public flag
/fav / /unfav
/group
/ping
/trace

Build docs developers (and LLMs) love