Command examples
Usage and examples for each dmbridge command.
Explore the Command Map or find a command below. Examples use placeholder IDs and paths. Review request files and dry-run output before running commands that change local or provider state.
dmbridge help
Show available commands.
dmbridge helpExample:
dmbridge helpRun against your installed dmbridge executable.
dmbridge version
Show the installed version and protocol.
dmbridge versionExample:
dmbridge versionRun against your installed dmbridge executable.
dmbridge accounts list
List configured accounts.
dmbridge accounts list [provider]Example:
dmbridge accounts listRun against your installed dmbridge executable. Account names and provider IDs are local configuration values.
dmbridge accounts add
Connect a provider account.
dmbridge accounts add <provider> --account <name> --request <file-or-dash> [--dry-run] [--yes]Example:
dmbridge accounts add x --account personal --request request.json --dry-runFile: request.json
{
"clientID": "YOUR_X_CLIENT_ID",
"clientSecret": null,
"clientType": "public",
"redirectURI": "http://127.0.0.1/callback",
"realmTokenIssuerURL": null
}Save as request.json and replace the client ID and callback URL with your X app settings. This starts the public-client OAuth setup; complete authorization using the X setup guide. The dry run does not store credentials.
dmbridge accounts import x
Import externally refreshed X credentials.
dmbridge accounts import x --account <name> --request <file-or-dash> [--dry-run] [--yes]Example:
dmbridge accounts import x --account personal --request request.json --dry-runFile: request.json
{
"clientID": "YOUR_X_CLIENT_ID",
"clientSecret": null,
"clientType": "public",
"redirectURI": "http://127.0.0.1/callback",
"accessToken": "REPLACE_WITH_ACCESS_TOKEN",
"refreshToken": "REPLACE_WITH_REFRESH_TOKEN",
"expiresAt": 1893456000000,
"accountUserID": "123456789",
"accountUsername": "your_account",
"grantedScopes": [
"dm.read",
"dm.write",
"tweet.read",
"users.read",
"media.write",
"offline.access"
],
"realmTokenIssuerURL": null,
"refreshMode": "external"
}Save as request.json outside the repository with owner-only permissions. Replace all account, token, scope, and expiry values with the complete credential supplied by your OAuth manager; expiresAt is Unix milliseconds. The dry run validates without saving. dmbridge does not refresh imported external credentials.
dmbridge accounts default
Choose the default account for a provider.
dmbridge accounts default <provider> --account <name> [--dry-run]Example:
dmbridge accounts default x --account personal --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge accounts remove
Remove a local account.
dmbridge accounts remove <provider> --account <name> [--dry-run] [--yes]Example:
dmbridge accounts remove x --account personal --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge accounts set-passcode x
Store an XChat passcode.
dmbridge accounts set-passcode x --account <name> --secret <file-or-dash> [--dry-run] [--yes]Example:
dmbridge accounts set-passcode x --account personal --secret /absolute/path/passcode.txt --dry-runFile: /absolute/path/passcode.txt
REPLACE_WITH_YOUR_XCHAT_PASSCODECreate the private passcode.txt file at the path shown, containing only your XChat passcode and an optional trailing newline. Replace the placeholder; this file is plain text, not JSON. The dry run does not save the passcode.
dmbridge <provider> doctor
Check setup or inspect a JSON schema.
dmbridge <provider> doctor [--account <name>] [--live] [--schema <name>]Example:
dmbridge x doctorThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> conversations list
List conversations.
dmbridge <provider> conversations list [--account <name>] [--limit <number>] [--cursor <cursor>] [--unread]Example:
dmbridge x conversations listThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> conversations get
Read one conversation.
dmbridge <provider> conversations get <conversationID> [--account <name>]Example:
dmbridge x conversations get CONVERSATION_IDThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> conversations requests list
List message requests.
dmbridge <provider> conversations requests list [--account <name>] [--limit <number>] [--cursor <cursor>] [--category <category>]Example:
dmbridge x conversations requests listThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> conversations requests get
Read a message request.
dmbridge <provider> conversations requests get <conversationID> [--account <name>] [--acknowledge-delivery] [--dry-run]Example:
dmbridge x conversations requests get CONVERSATION_ID --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> conversations requests messages
Read messages in a request.
dmbridge <provider> conversations requests messages <conversationID> [--account <name>] [--limit <number>] [--cursor <cursor>] [--acknowledge-delivery] [--dry-run]Example:
dmbridge x conversations requests messages CONVERSATION_ID --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> conversations requests accept
Accept a message request.
dmbridge <provider> conversations requests accept <conversationID> [--account <name>] [--request <file-or-dash>] [--dry-run]Example:
dmbridge instagram conversations requests accept CONVERSATION_ID --request accept.json --dry-runFile: accept.json
{
"type": "text",
"text": "Thanks for reaching out."
}Save as accept.json and replace CONVERSATION_ID and the text. Instagram accepts a request by replying. X accepts without a reply: use x instead of instagram and omit --request. The dry run makes no provider changes.
dmbridge <provider> conversations requests decline
Decline a message request.
dmbridge <provider> conversations requests decline <conversationID> [--account <name>] [--dry-run] [--yes]Example:
dmbridge x conversations requests decline CONVERSATION_ID --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> messages list
List messages in a conversation.
dmbridge <provider> messages list <conversationID> [--account <name>] [--limit <number>] [--cursor <cursor>]Example:
dmbridge x messages list CONVERSATION_IDThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> messages get
Read one message.
dmbridge <provider> messages get <messageID> [--account <name>]Example:
dmbridge x messages get MESSAGE_IDThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> messages send
Send a message.
dmbridge <provider> messages send <conversationID> [--account <name>] --request <file-or-dash> [--dry-run]Example:
dmbridge x messages send CONVERSATION_ID --request request.json --dry-runFile: request.json
{
"type": "text",
"text": "Hello from dmbridge."
}Save as request.json. Replace CONVERSATION_ID and the message text. This example uses X; the dry run does not send a message.
dmbridge <provider> messages reply
Reply to a message.
dmbridge <provider> messages reply <messageID> [text] [--account <name>] [--request <file-or-dash>] [--dry-run]Example:
dmbridge x messages reply MESSAGE_ID --request reply.json --dry-runFile: reply.json
{
"type": "text",
"text": "Thanks, I will take a look."
}Save as reply.json. Replace MESSAGE_ID and the reply text. Direct text is also supported as the second argument. This example uses X; the dry run does not send the reply.
dmbridge <provider> messages edit
Edit a message.
dmbridge <provider> messages edit <messageID> [--account <name>] --request <file-or-dash> [--dry-run]Example:
dmbridge x messages edit MESSAGE_ID --request request.json --dry-runFile: request.json
{
"type": "text",
"text": "Here is the corrected message."
}Save as request.json. Replace MESSAGE_ID and the replacement text. This example uses X; the dry run does not edit the message.
dmbridge <provider> messages delete
Delete a message.
dmbridge <provider> messages delete <messageID> [--account <name>] [--dry-run] [--yes]Example:
dmbridge x messages delete MESSAGE_ID --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> messages read
Mark a message as read.
dmbridge <provider> messages read <messageID> [--account <name>] [--dry-run]Example:
dmbridge x messages read MESSAGE_ID --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> messages unread
Mark a message as unread.
dmbridge <provider> messages unread <messageID> [--account <name>] [--dry-run]Example:
dmbridge x messages unread MESSAGE_ID --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> reactions list
List reactions to a message.
dmbridge <provider> reactions list <messageID> [--account <name>]Example:
dmbridge x reactions list MESSAGE_IDThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> reactions add
Add a reaction.
dmbridge <provider> reactions add <messageID> [--account <name>] --reaction <emoji> [--dry-run]Example:
dmbridge x reactions add MESSAGE_ID --reaction ❤️ --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> reactions remove
Remove a reaction.
dmbridge <provider> reactions remove <messageID> [--account <name>] --reaction <emoji> [--dry-run]Example:
dmbridge x reactions remove MESSAGE_ID --reaction ❤️ --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.
dmbridge <provider> attachments download
Download an attachment.
dmbridge <provider> attachments download <attachmentID> [--account <name>] --destination-url <file-url> [--overwrite] [--dry-run]Example:
dmbridge x attachments download ATTACHMENT_ID --destination-url file:///absolute/path/image.jpg --dry-runThe example uses X. Choose a configured provider and check its capabilities; support can differ between X and Instagram. Replace placeholder IDs and paths.