Vai al contenuto principale

Console commands

Every command of the console with its scope and arguments, and what each one answers: users, chats, files, groups, networks and more.

Per: sviluppatori · Da BeeBEEP 6.0.0 · Aggiornata il

Mi dispiace, ma per mancanza di tempo, alcune di queste risorse potrebbero essere solamente in lingua Inglese.

This page is the reference of the commands a program can send to BeeBEEP's console, for whoever writes a bot or an integration. For each command it gives the scope it needs, its arguments and what it answers. How to start the console, connect and authenticate is on the console, and the events BeeBEEP sends are on the events page.

How to read this page

A command is a JSON object on one line, with the command's name in cmd and its arguments as the other keys:

{"cmd":"send_message","chatId":1001,"text":"Ciao"}

BeeBEEP answers with one line, {"ok":true,"data":{...}} or {"ok":false,"error":"..."}; the replies and their codes are on the console page.

The commands are listed from Connection and control on, by what they are for. Each one gives its scope: the lowest scope that may call it, as the scopes explain. A connection below it gets scopeTooLow, and does not see the command in help. The page lists the commands of the admin scope; the commands of the debug scope exist only in a console started for development and are not here.

An argument has a type and may be required. In the table of a command:

ColumnWhat it says
Typethe JSON type: string, int (a whole number, or its text such as "5"), bool, array, object, or any
Requiredyes when the command is refused without it; an argument sent as null counts as not sent
Valuesthe values that are accepted, when they are bounded: a closed list, a range, a length, a uuid
Descriptionwhat the argument means; Needs the admin scope marks an argument that outranks its command

The text of a description is the program's own, as help gives it.

Identifiers and formats

  • A user is a number, its id, which list_users and get_user give. Your own id is 1, and status gives it as localUserId. Ids are local to one installation: another installation numbers the same user differently. What names a user everywhere is its uuid.
  • A group is a number, its id, and also a uuid that is the same on every member's computer.
  • A chat is a number, the chatId of the commands: the id of the other user for a private chat, the id of a group for a group, and 2 for Chat with Everyone, which the descriptions call ID_DEFAULT_CHAT. 1, your own id, is never a chat. In a chat message, groupId is the chat's number.
  • A message, a file transfer or an invitation is named by a uuid, written as text without braces, such as 21ed7cf7-b9ee-4bd2-ae4d-3703c838b635. An argument that takes a uuid accepts it with or without braces, in lower or upper case, but with its hyphens.
  • A time is a whole number of milliseconds since 1970-01-01 UTC, 0 for none.
  • A key is lowercase hexadecimal text, empty while there is none.

Files and paths

send_file, send_voice_message, set_avatar and set_group_avatar take a filePath on the computer BeeBEEP runs on. Below admin it must lie inside the console's file root, and without a file root these commands need admin: see files.

What the commands answer

A command with nothing to say answers data empty, {}. The others put these keys in data:

Commanddata holds
authscope, and capped, true when a cap lowered it
helpcommands, events and codes; or the entry of one command
statusyour own state: localUserId, localUuid, displayName, e2ePublicKey, signingPublicKey, onlineUserCount, listenPort; the settings shareProfileWith, shareGalleryWith, relayMode, autoAcceptKeyChanges, autoAcceptMaxSizeMiB, dropGroupInvitationsFromNonContacts, notificationsEnabled, notificationSound, mutedChatIds, powerSaving, bonjour, preferIPv6; and the states identityUnavailable, dataFolderUnwritable, networkStartProblem (none, or why the network did not start: noPort, passwordKeys), lowDiskSpace and firewall
list_usersusers, the user objects of the other users, never yours
get_userone user object, yours included
list_groupsgroups, the group objects, Chat with Everyone included; each also has muted
get_groupone group object
get_chat_historymessages, chat message objects, newest first, each with recipients
get_unread_countsunreadCounts, a list of chatId and count; a chat with nothing unread is absent
send_message, send_file, send_voice_message, answer_group_invitationmessageUuid
accept_file_transfer, reject_file_transfer, pause_file_transfer, resume_file_transfer, cancel_file_transferaccepted, rejected, paused, resumed or canceled, true
list_file_transferstransfers, the file transfer objects that are active: Requesting, Transferring or Paused
get_file_transfertransfers, every record of one message in any state, more than one for a message sent to a group, an empty list when there is none
create_groupid and uuid; with inviteUserIds also invited and refused, lists of user ids
invite_to_groupmessageUuid and invitationId
list_group_invitationsinvitations, each with invitationId, inviteeUuid, inviteeId, sentAt, expiresAt and state (pending, accepted, declined, withdrawn or expired)
list_group_acceptancesacceptances, each with groupUuid, invitationId, inviterUuid, answeredAt and expiresAt
set_profile, set_preferences, set_avatar, set_circles, set_network_password, set_group_identity, set_group_avatarchanged, true when something changed
get_circlescircles, the names in their owner's spelling, and circlesLocked, true when the administrator sets them
circles_heardcircles, each with name, count (how many installations announce it) and mine
set_chat_mutedchatId and muted, the state afterwards
list_blocked_usersblockedUsers, each with userUuid, displayName, firstName, lastName and blockedAt
list_networksnetworks, each with networkId, name, category (Unclassified, Public or Private), decidedBySystem, joined, firstSeen and lastSeen; and joinedNetworks, the networks the computer is on now, each with networkId and name
revert_network_promotionsdemoted, how many users were demoted
list_linkslinks, each with linkId (a decimal string), class, interface, localAddress, remoteAddress, family, primary and rttMs
list_leasesleases: for each installation, the claims BeeBEEP holds on it; facts only
network_statsthe counters of what the network has cost since the start, or since the last reset, and parameters
set_parameterparameters, every scaling parameter and its value after the change
clock_status, set_clock_timenow, systemClock, clamped, looksWrong, violatedFloor (Build, Stored or None), floorValue, buildFloor and storedFloor; times as above
list_pluginsplugins, policy, loadNotices and skipped
invite_to_plugin_sessionsessionId, invited and refused
list_plugin_sessionssessions
send_plugin_datasequence
import_legacy_installationthe counts of what was imported, such as usersAdded, groupsAdded, circlesImported

A user

list_users and get_user answer with this object for each user:

{"id":1001,"uuid":"2cc610c7-3375-54c3-957f-8be4ea6f7083","displayName":"Christian","firstName":"","lastName":"","birthDate":"","email":"","phoneNumber":"","location":"","info":"","color":"#FF4040","status":"Online","notResponding":false,"outOfSight":false,"queuedMessages":0,"participatesInDefaultChat":true,"acceptsFileTransfers":true,"acceptsVoiceMessages":true,"relayMode":"Everyone","circles":[],"pluginCapabilities":[],"avatarHash":"","lastConnection":1791265201802,"lastSeenActiveDay":1,"isFavorite":false,"relationship":"Discovered","relationshipOrigin":"Undecided","relationshipNetworkId":"","contactSuspendedByKeyChange":false,"effectiveRelationship":"Discovered","e2ePublicKey":"","signingPublicKey":"","proven":false,"trustSource":"unverified","introducedBy":""}
FieldMeaning
id, uuidthe number of the user here, and the identity that is the same everywhere
displayName ... info, colorthe profile as the user shares it with you; birthDate is YYYY-MM-DD or empty
statusOnline or Offline
notRespondingtrue while every connection to the user is open but silent; the user is still Online
outOfSighttrue while what the user declared lately puts you out of each other's circles
queuedMessageshow many messages wait to be sent to the user
participatesInDefaultChat, acceptsFileTransfers, acceptsVoiceMessages, relayModethe preferences the user declared; relayMode is Off, ContactsOnly or Everyone
circlesthe circles you share with the user, never the others the user is in
pluginCapabilitiesthe plugins the user announced, each with pluginId and pluginVersion
avatarHasha hash of the avatar, empty when there is none: equal hashes mean equal pictures
lastConnectionthe time of the last connection, 0 if there was never one
lastSeenActiveDaythe day number BeeBEEP last saw the user on, which its removal of inactive users counts from
isFavoritemarked as a favorite with set_favorite
relationshipDiscovered or Contact, as stored
relationshipOrigin, relationshipNetworkIdhow the relationship came to be: Undecided, PrivateNetwork (the network is named) or Manual
contactSuspendedByKeyChangetrue while a contact is suspended because its key changed
effectiveRelationshipwhat every permission reads now, which also depends on the network the user is on
e2ePublicKey, signingPublicKeythe keys pinned for the user, empty while there are none
proventrue while a live direct connection of the user proves its pinned key
trustSource, introducedByhow the keys came to be trusted: verified in person, introduced by a group administrator (introducedBy is its uuid), or unverified

A group

{"id":1002,"uuid":"b54db1d4-e942-4145-87b7-7aa64e586f00","name":"Lunch","color":"#C08040","memberIds":[1,1001],"adminIds":[1],"isDefault":false}

memberIds and adminIds are user ids, yours (1) included; isDefault is true for Chat with Everyone. list_groups adds muted.

A chat message

get_chat_history answers with these objects, and chatMessageAdded carries one:

{"id":42,"messageUuid":"21ed7cf7-b9ee-4bd2-ae4d-3703c838b635","groupId":1001,"senderId":1,"senderName":"Alessandra","text":"Ciao","timestamp":1791265285598,"overallState":"Delivered","isAutoResponse":false,"isTemporary":false,"chatKind":"private","reactions":[]}
FieldMeaning
idthe message's number here; use messageUuid to name it
groupIdthe chat's number, as chatId in the commands
senderId, senderNamethe user who wrote it (1 for you) and the name, empty when the sender is not known
timestampthe time, in milliseconds since 1970
overallStatePending, Sent, Delivered, Read or Failed; a received message is Delivered once saved and Read after mark_read
isAutoResponsetrue for a message BeeBEEP wrote on its own, never one a person typed
isTemporarytrue while the disk is too full for the message to be saved yet
chatKinddefault for Chat with Everyone, group or private
reactionsone entry for each user who reacted: reactorId, emoji, timestamp and pendingRecipientIds, how many recipients your own reaction has still to reach

A message with a file has an attachment, with fileName, fileSize, contentHash and mimeType; a voice note's adds isVoiceMessage, durationMs and waveform, and the message gains isVoicePlayed. A group invitation has an invitation (groupUuid, groupName, memberCount, invitationId, expiresAt) and the answer to one an invitationAnswer (groupUuid, invitationId, answer).

In the reply of get_chat_history every message also has recipients, one entry for each user it went to, with recipientId, state (the same words as overallState), deliveredAt and readAt, 0 while that step has not happened. The events leave recipients out, so that the events of a message sent to many users stay small: ask get_chat_history for the states.

A file transfer

{"messageUuid":"21ed7cf7-b9ee-4bd2-ae4d-3703c838b635","peerUuid":"2cc610c7-3375-54c3-957f-8be4ea6f7083","direction":"Receive","state":"Transferring","fileName":"report.pdf","fileSize":481920,"bytesCheckpoint":204800,"contentHash":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","localPath":"/data/downloads/report.pdf","updatedAt":1735599999000,"offeredActiveDay":0}

direction is Send or Receive; state is Offered, Accepted, Requesting, Transferring, Paused, Completed, Rejected, Failed or Canceled. bytesCheckpoint is the last offset known to be safe on disk, and lags the live count: watch fileTransferProgress for that. localPath is the source file of a sent file and, once a received file is Completed, where it was saved. peerUuid is the uuid of the other user, not its id.

Connection and control

auth

Presents one role's password (read, user or admin): the connection gets that role's scope, capped by --console-max-scope.

Scope: none.

ArgumentTypeRequiredValuesDescription
passwordstringyesanyOne role's password, as the console password file gives it.

help

Lists every command, or describes one named command.

Scope: read.

ArgumentTypeRequiredValuesDescription
commandstringnoanyThe command name to describe; omit to list every command.

subscribe

Starts the event channel on this connection (already on by default): every event, or only the ones named.

Scope: read.

ArgumentTypeRequiredValuesDescription
eventsarraynoat least 1 itemOnly these events, by name (help lists them); omit for every event.

unsubscribe

Stops the event channel on this connection.

Scope: read. Takes no arguments.

disconnect

Closes only the calling connection; BeeBEEP keeps running.

Scope: read. Takes no arguments.

quit

Shuts the whole BeeBEEP process down cleanly.

Scope: admin. Takes no arguments.

You and your settings

status

Returns a summary of the local user and how many remote users are currently online.

Scope: read. Takes no arguments.

set

Sets one runtime parameter, named by param, to value. Each parameter has its own values and needs its own scope, as the tables below say.

Scope: read.

ArgumentTypeRequiredValuesDescription
paramstringyesnotifications, notificationsEnabled, notificationSound, shareProfileWith, shareGalleryWith, dropGroupInvitationsFromNonContacts, autoAcceptKeyChanges, autoAcceptMaxSizeMiB, bonjour, preferIPv6The parameter name; each one needs its own scope, listed below.
valueanyyesdepends on param, see below"on"/"off", "everyone"/"contactsonly" (case-insensitive), or a whole number of MiB -- as the parameter needs, listed below.

The values of value depend on param:

paramNeeds the scopevalue
notificationsreadon or off (any case)
notificationsEnableduseron or off (any case)
notificationSounduseron or off (any case)
shareProfileWithusereveryone or contactsonly (any case)
shareGalleryWithusereveryone or contactsonly (any case)
dropGroupInvitationsFromNonContactsuseron or off (any case)
autoAcceptKeyChangesadminon or off (any case)
autoAcceptMaxSizeMiBadmina whole number from 0 to 1048576 (MiB, 0 for no limit)
bonjouruseron or off (any case)
preferIPv6useron or off (any case)

set_profile

Updates one or more fields of the local user's own profile.

Scope: user.

ArgumentTypeRequiredValuesDescription
displayNamestringnoanyNew display name; a changed one must follow the name rules (a letter or a digit first, at most 40 characters).
firstNamestringnoanyNew first name.
lastNamestringnoanyNew last name.
birthDatestringnoanyNew birth date, YYYY-MM-DD, not in the future nor before 1900; "" clears it.
emailstringnoanyNew email address.
phoneNumberstringnoanyNew phone number.
locationstringnoanyNew location text.
infostringnoanyNew status/info text.
colorstringnoanyNew UI accent color, hex (e.g. "#FF5733").

set_preferences

Updates one or more of the local user's own declared preferences.

Scope: user.

ArgumentTypeRequiredValuesDescription
participatesInDefaultChatboolnoanyWhether to be included in the Default group ("Chat with Everyone").
acceptsFileTransfersboolnoanyWhether to accept file transfer offers.
acceptsVoiceMessagesboolnoanyWhether to accept voice messages.
relayModestringnoOff, ContactsOnly, EveryoneWho to forward relay envelopes for: "Off", "ContactsOnly" or "Everyone".

set_avatar

Loads a local image file and sets it as the local user's own avatar.

Scope: user.

ArgumentTypeRequiredValuesDescription
filePathstringyesanyLocal path to an image file -- a PNG of at most 512x512 pixels unless this executable converts images (the GUI beebeep does). Needs the admin scope.

set_chat_muted

Mutes or unmutes one chat's notifications; its unread count and its place in the list are unaffected.

Scope: user.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat: a peer's user id for the private chat, a group id, or the Default chat's id.
mutedboolyesanytrue to mute, false to unmute.

get_circles

The local user's circles, and whether the administrator's policy file sets them.

Scope: read. Takes no arguments.

circles_heard

The circles announced on this network lately, in sight or not: the ones to offer when a circle is added.

Scope: read. Takes no arguments.

set_circles

Replaces the local user's circles; nothing changes if one name is refused.

Scope: user.

ArgumentTypeRequiredValuesDescription
circlesarrayyesanyThe whole list of circle names, in order; [] for none. Each name: letters and digits of any script, spaces and - _ @ [ ] { } ( ) % & . : # * ! ' / + and currency signs, at most 32 characters.

Users

list_users

Lists every known remote user (never the local user).

Scope: read. Takes no arguments.

get_user

Looks up one user by id.

Scope: read.

ArgumentTypeRequiredValuesDescription
idintyes0 or moreThe user's id, as list_users gives it.

set_favorite

Marks or unmarks a contact as a favorite -- it only orders the user list and grants no permission.

Scope: user.

ArgumentTypeRequiredValuesDescription
userIdintyes0 or moreThe contact to favorite/unfavorite.
favoriteboolyesanytrue to favorite, false to unfavorite.

set_relationship

Sets by hand what a peer is to the local user -- Discovered or Contact; a private network never overrides it.

Scope: user.

ArgumentTypeRequiredValuesDescription
userIdintyes0 or moreThe peer.
relationshipstringyesDiscovered, Contact (any case)Discovered or Contact (case-insensitive).

request_profile_details

Asks a peer for its extended profile fields and avatar, if currently online -- fire-and-forget, watch userUpdated/chatMessageAdded events.

Scope: user.

ArgumentTypeRequiredValuesDescription
userIdintyes0 or moreThe peer to ask.

Asks a peer for its gallery, if currently online -- fire-and-forget, watch userUpdated/chatMessageAdded events.

Scope: user.

ArgumentTypeRequiredValuesDescription
userIdintyes0 or moreThe peer to ask.

block_user

Blocks a contact by identity: persisted, and refuses that peer's connections (in or out) from now on, closing its current one immediately if it has one.

Scope: admin.

ArgumentTypeRequiredValuesDescription
userIdintyes0 or moreThe contact to block, as currently listed.

unblock_user

Reverses a previous block_user -- this peer may connect again from now on.

Scope: admin.

ArgumentTypeRequiredValuesDescription
userUuidstringyesa uuidThe peer's own persistent identity, as returned by list_blocked_users.

list_blocked_users

Lists every currently blocked peer.

Scope: read. Takes no arguments.

Chats and messages

get_chat_history

Returns a page of persisted chat history for one chat, newest first.

Scope: read.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat's id -- ID_DEFAULT_CHAT, a group id, or a peer's user id.
oldestMessageIdintno0 or moreFor backward pagination: only messages older than this id.
limitintno0 to 2147483647Maximum number of messages to return (default 50).

send_message

Sends a chat message.

Scope: user.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat's id -- ID_DEFAULT_CHAT, a group id, or a peer's user id.
textstringyesat most 10000 charactersThe message text; must not be empty.

send_reaction

Sets, replaces, or removes this instance's own emoji reaction on a message. Asking for the emoji already in place removes it. Watch the chatMessageReactionChanged event on every side.

Scope: user.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe message's uuid, as shown by get_chat_history.
emojistringnoanyThe reaction string; omit or pass an empty string to remove this instance's own reaction.

send_typing

Announces this instance is/isn't typing (or recording a voice note) in a chat -- never ID_DEFAULT_CHAT. Watch the typingStateChanged event on the peer's own side.

Scope: user.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat's id -- a group id, or a peer's user id. Never ID_DEFAULT_CHAT.
isTypingboolyesanyTrue to announce the activity started (or is still ongoing); false for stopped.
activitystringnoTyping, RecordingVoiceWhat is going on while isTyping is true: "Typing" (the default) or "RecordingVoice".

mark_read

Marks every unread message in a chat as Read.

Scope: user.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat's id; must not be the local user's own id.

get_unread_counts

Returns every chat's current unread-message count.

Scope: read. Takes no arguments.

list_archives

Lists the archived chats (the history of a BeeBEEP 5.x installation, imported, read only), the most recent first.

Scope: read. Takes no arguments.

get_archive

Returns one archived chat and a page of its messages as plain text, oldest first.

Scope: read.

ArgumentTypeRequiredValuesDescription
idstringyesa uuidThe archive's id, as list_archives shows it.
offsetintno0 to 2147483647The first message to return, counted from the oldest (default 0).
limitintno0 to 2147483647Maximum number of messages to return (default 50).

delete_archive

Deletes one archived chat from this device; importing the old installation again brings it back while its files are still there.

Scope: user.

ArgumentTypeRequiredValuesDescription
idstringyesa uuidThe archive's id, as list_archives shows it.

Files

send_file

Offers a local file as a chat attachment. Never ID_DEFAULT_CHAT.

Scope: user.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat's id -- a group id, or a peer's user id. Never ID_DEFAULT_CHAT.
filePathstringyesanyLocal path to the file to send; must exist and be readable. Needs the admin scope.

send_voice_message

Offers a local audio file as a voice note, as a recording would be. Never ID_DEFAULT_CHAT.

Scope: user.

ArgumentTypeRequiredValuesDescription
chatIdintyes0 or moreThe chat's id -- a group id, or a peer's user id. Never ID_DEFAULT_CHAT.
filePathstringyesanyLocal path to the audio file; must exist and be readable. Needs the admin scope.
durationMsintyes0 or moreThe note's duration in milliseconds, as the bubble shows it.
waveformarraynoanyOptional array of up to 64 bar amplitudes (0-255) the bubble draws; flat bars if omitted.

accept_file_transfer

Accepts a pending incoming file offer -- watch the fileTransferOfferReceived event for its messageUuid.

Scope: user.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe offer's own message id.

reject_file_transfer

Declines a pending incoming file offer.

Scope: user.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe offer's own message id.

pause_file_transfer

Pauses a currently-active file transfer, notifying the peer.

Scope: user.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe transfer's own message id.

resume_file_transfer

Resumes a previously-paused (or restart-survived) file transfer.

Scope: user.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe transfer's own message id.

cancel_file_transfer

Abandons a file transfer outright, deleting the partial file; its record stays, state Canceled.

Scope: user.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe transfer's own message id.

list_file_transfers

Returns every currently active file transfer (Requesting/Transferring/Paused, either direction).

Scope: read. Takes no arguments.

get_file_transfer

Returns every transfer record of one message, in any state -- more than one in a group send.

Scope: read.

ArgumentTypeRequiredValuesDescription
messageUuidstringyesa uuidThe transfer's own message id.

Groups

create_group

Creates a new custom group owned by the local user.

Scope: user.

ArgumentTypeRequiredValuesDescription
namestringyesanyThe group's display name, following the name rules (not empty, a letter or a digit first, at most 40 characters).
colorstringnoanyOptional explicit hex color (e.g. "#C08040"); auto-assigned from the curated palette if omitted.
inviteUserIdsarraynoanyOptional array of user ids: each is invited (a 5.x peer added), the creator stays the only member until someone accepts.
textstringnoanyOptional short text the invitations carry.

list_groups

Lists every group, including the Default group.

Scope: read. Takes no arguments.

get_group

Looks up one group by id.

Scope: read.

ArgumentTypeRequiredValuesDescription
idintyes0 or moreThe group's id, as list_groups gives it.

set_group_identity

Renames and/or recolors a group the local user administers.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.
namestringnoanyThe group's new display name; optional, keeps the current one if omitted; a changed one must follow the name rules.
colorstringnoanyThe group's new display color; optional, keeps the current one if omitted.

set_group_avatar

Sets the avatar of a group the local user administers.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.
filePathstringyesanyLocal path to an image file -- a PNG of at most 512x512 pixels unless this executable converts images (the GUI beebeep does). Needs the admin scope.

add_user_to_group

Adds a user to a group the local user administers.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.
userIdintyes0 or moreThe user to add.

invite_to_group

Invites one of our Contacts to a group the local user administers, in their private chat.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe group's id.
userIdintyes0 or moreThe Contact to invite.
textstringnoanyOptional short text shown with the invitation.

list_group_invitations

Lists the invitations the local user sent for a group, with their state.

Scope: read.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe group's id.

withdraw_group_invitation

Withdraws a pending invitation (local only: a late acceptance is answered "no longer valid").

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe group's id.
invitationIdstringyesa uuidThe invitation's id, as list_group_invitations or invite_to_group gives it.

answer_group_invitation

Accepts or declines an invitation received in the private chat with its inviter (the fields of groupInvitationReceived).

Scope: user.

ArgumentTypeRequiredValuesDescription
inviterIdintyes0 or moreThe inviter's user id (the invitation's chatId).
groupUuidstringyesa uuidThe group's uuid, as the invitation carries it.
invitationIdstringyesa uuidThe invitation's id.
expiresAtintno0 or moreOptional: the invitation's expiry, epoch ms (0 for none) -- an expired one is refused.
acceptboolyesanytrue to accept, false to decline.

list_group_acceptances

Lists the invitations the local user accepted whose group has not arrived yet ("joining...").

Scope: read. Takes no arguments.

remove_user_from_group

Removes a member from a group the local user administers.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.
userIdintyes0 or moreThe member to remove; must not be the local user's own id -- use leave_group for that.

set_group_admin

Promotes or demotes a member as admin of a group the local user administers.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.
userIdintyes0 or moreThe member whose admin status changes; must already be a member.
isAdminboolyesanytrue to promote, false to demote.

claim_group_admin

Claims admin of a group the local user is a member of but that currently has no admin at all (e.g. its sole admin left).

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.

leave_group

Removes the local user from a group -- never admin-gated, leaving is always a member's own call.

Scope: user.

ArgumentTypeRequiredValuesDescription
groupIdintyes0 or moreThe target group's id.

Plugins

list_plugins

Lists the registered plugins with their manifests (id, version, name, category, modes), the policy file's rules on plugins and what the loader refused.

Scope: read. Takes no arguments.

invite_to_plugin_session

Puts a plugin session together: an invitation in each user's private chat; the session starts on the last acceptance.

Scope: user.

ArgumentTypeRequiredValuesDescription
pluginIdstringyesanyA registered plugin's id (list_plugins).
modeIdstringyesanyOne of its modes.
userIdsarrayyesanyThe users to invite (array of ids); the local user is the inviter.

answer_plugin_invite

Accepts or declines an invitation to a plugin session received in the private chat with its inviter (the fields of pluginInviteReceived).

Scope: user.

ArgumentTypeRequiredValuesDescription
inviterIdintyes0 or moreThe inviter's user id (the invitation's chatId).
sessionIdstringyesa uuidThe session's uuid, as the invitation carries it.
pluginIdstringyesanyThe plugin's id, as the invitation carries it.
modeIdstringyesanyThe mode's id, as the invitation carries it.
expiresAtintno0 or moreOptional: the invitation's expiry, epoch ms (0 for none) -- an expired one is refused.
acceptboolyesanytrue to accept, false to decline.

replace_plugin_participant

Gives a refused or expired seat of a session being put together to another user (or the same one again).

Scope: user.

ArgumentTypeRequiredValuesDescription
sessionIdstringyesa uuidThe session's uuid.
userIdintyes0 or moreThe user whose seat is taken away.
newUserIdintyes0 or moreThe user invited to it.

start_plugin_session

Starts a session being put together with whoever accepted so far, a refused seat left out (the inviter's explicit start).

Scope: user.

ArgumentTypeRequiredValuesDescription
sessionIdstringyesa uuidThe session's uuid.

send_plugin_data

Sends bytes into an active plugin session as its plugin would.

Scope: user.

ArgumentTypeRequiredValuesDescription
sessionIdstringyesa uuidThe session's uuid.
textstringnoanyThe bytes as UTF-8 text (or bytesBase64).
bytesBase64stringnoanyThe bytes, base64.
deliveryClassstringnodurable, fresh, boundeddurable (default), fresh or bounded.
deadlineMsecsintno0 to 4294967295bounded only: how long the bytes are worth delivering.
toUserIdintno0 or moreOptional: one participant; every other participant when absent.

list_plugin_sessions

Lists every plugin session this side knows: inviting, active, suspended, ended (until pruned).

Scope: read. Takes no arguments.

suspend_plugin_session

Puts a persistent active plugin session aside on this side.

Scope: user.

ArgumentTypeRequiredValuesDescription
sessionIdstringyesa uuidThe session's uuid.

resume_plugin_session

Runs a suspended plugin session again (after a restart, every persistent session is suspended).

Scope: user.

ArgumentTypeRequiredValuesDescription
sessionIdstringyesa uuidThe session's uuid.

end_plugin_session

Ends a plugin session for everybody.

Scope: user.

ArgumentTypeRequiredValuesDescription
sessionIdstringyesa uuidThe session's uuid.

Network

list_networks

Lists every network this installation has joined, with its category, and the networks it is on right now.

Scope: read. Takes no arguments.

set_network_category

Classifies a joined network as Private or Public -- refused while the operating system decides (Windows).

Scope: admin.

ArgumentTypeRequiredValuesDescription
networkIdstringyesanyThe network, as list_networks reports it.
categorystringyesPrivate, Public (any case)Private or Public (case-insensitive).

revert_network_promotions

Demotes back to Discovered every peer a network made a Contact on its own; decisions made by hand are kept.

Scope: admin.

ArgumentTypeRequiredValuesDescription
networkIdstringyesanyThe network, as list_networks reports it.

set_network_password

Updates the pre-shared network password and/or whether it's applied; an actual change live-restarts the network+Bluetooth threads.

Scope: admin.

ArgumentTypeRequiredValuesDescription
useNetworkPasswordboolnoanyWhether to apply the saved network password to new connections.
passwordstringnoanyNew pre-shared network password.

connect_to_address

Dials a peer at host:port, the way the manual "+" flow does -- watch userConnected, or list_links for a second link to a known peer; a host name that resolves to nothing comes back as hostNotFound, an address the administrator's list leaves out as dialRefused.

Scope: admin.

ArgumentTypeRequiredValuesDescription
hoststringyesanyThe peer's address, IPv4 or IPv6, e.g. "127.0.0.1" or "::1" (a link-local IPv6 address with its scope, "fe80::1%en0"), or a host name, e.g. "office-pc.example.com".
portintyes1 to 65535The peer's TCP listening port (its status command reports it).

Lists a peer's live links, TCP or Bluetooth: id, class, local interface, both addresses, and which one is primary.

Scope: read.

ArgumentTypeRequiredValuesDescription
userIdintyes0 or moreThe peer, as currently listed.

list_leases

Lists the lease's claims per uuid: source, address, interface or link, seconds left, the last counter. Never a status.

Scope: read. Takes no arguments.

search_users

Starts whichever discovery mechanism(s) are requested, all under one shared time limit -- watch userConnected events as peers are found, and the searchCompleted event once the window closes.

Scope: user.

ArgumentTypeRequiredValuesDescription
byNetworkboolnoanyWhether to fire one LAN subnet broadcast re-announcement. Defaults to true.
byBluetoothboolnoanyWhether to start advertising/scanning; stopped when the shared time limit ends. Defaults to false.
byMulticastboolnoanyWhether to join the multicast group and announce; stopped when the shared time limit ends. Defaults to false.

search_network_users

Sends a fresh presence announcement over the local LAN subnet broadcast -- watch userConnected events as peers are found.

Scope: user. Takes no arguments.

Starts advertising and scanning for nearby Bluetooth peers -- watch userConnected events as peers are found.

Scope: user. Takes no arguments.

Stops advertising/scanning for nearby Bluetooth peers. Already-established links are unaffected.

Scope: user. Takes no arguments.

Joins the well-known multicast group and sends one announcement -- watch userConnected events as peers are found.

Scope: user. Takes no arguments.

Leaves the multicast group. Already-established links are unaffected.

Scope: user. Takes no arguments.

network_stats

Reports what the network has cost so far: bytes and frames per message type, connections, dials, handshakes, worst tick lateness.

Scope: read.

ArgumentTypeRequiredValuesDescription
resetboolnoanyOptional bool: zero every counter after this reply, starting a new measurement window. Needs the admin scope.

set_parameter

Sets one named runtime scaling parameter, live -- the same names --param= and beebeep.rc's [Scaling] section take; network_stats reports the values in force.

Scope: admin.

ArgumentTypeRequiredValuesDescription
paramstringyesanyThe parameter name, e.g. "gossipQuietMsecs" or "keepaliveProbeSilenceMsecs" -- network_stats' own parameters object lists every one.
valueanyyesanyThe new value, a whole number as a JSON number or as text.

Clock and maintenance

clock_status

Reports what this instance thinks the time is, what the machine's own clock says, and whether it is below a floor: the date of this build (Build) or the last date this installation wrote down (Stored).

Scope: read. Takes no arguments.

set_clock_time

Gives this instance the real time, as the banner's own dialog does -- refused below this build's own commit date. Never touches the system clock.

Scope: admin.

ArgumentTypeRequiredValuesDescription
timestampanyyesanyThe real time, as an ISO-8601 date-time (e.g. "2026-09-21T10:00:00Z") or epoch milliseconds.

import_legacy_installation

Imports an old BeeBEEP 5.x installation's contacts, groups and missing profile fields, merging with what this installation already has, and its saved chats as archives (chatArchivesImported follows).

Scope: admin.

ArgumentTypeRequiredValuesDescription
folderstringnoanyThe old executable's or data folder; omitted, the usual places on this machine are searched. Needs the admin scope.

Tutte le pagine della guida