RabbitMQ
The robomotion rabbitmq CLI connects to RabbitMQ for message broker operations. It publishes messages to exchanges, consumes from queues, creates and manages queues and exchanges, and handles queue binding and message routing.
When to use
- Publish messages to RabbitMQ exchanges or queues
- Consume messages from queues
- Create, delete, and manage queues and exchanges
- Bind queues to exchanges with routing keys
Prerequisites
robomotionCLI installed- Package installed:
robomotion install rabbitmq - RabbitMQ connection URI configured via Robomotion vault
IMPORTANT: Session Mode Required for Multi-Step Operations
Each CLI command runs as a separate process — connection IDs from connect do NOT persist across calls.
You MUST use --session on connect and pass --session-id to all subsequent commands.
Workflow
- Install (once):
robomotion install rabbitmq - Connect with session:
robomotion rabbitmq rabbitmq_connect --session --output json # → {"outClientId":"<client-id>","session_id":"<session-id>"} - Use the returned
client-idandsession-idin all subsequent commands:robomotion rabbitmq rabbitmq_publish --client-id "<client-id>" --queue <queue> --message <json> --session-id "<session-id>" --output json - Disconnect when done:
robomotion rabbitmq rabbitmq_disconnect --client-id "<client-id>" --session-id "<session-id>" --output json
Always append --output json to get structured JSON results.
Commands Reference
robomotion rabbitmq rabbitmq_connect --session --output jsonConnects to RabbitMQ server and returns a client ID for subsequent operationsrobomotion rabbitmq rabbitmq_disconnect --client-id --session-id "<session-id>" --output jsonCloses the RabbitMQ connection and releases resourcesrobomotion rabbitmq rabbitmq_publish --client-id --queue-name --exchange-name --message --routing-key [--content-type] [--delivery-mode] [--0] [--expiration] [--30] --session-id "<session-id>" --output jsonPublishes a message to a RabbitMQ queue or exchangerobomotion rabbitmq rabbitmq_consume --client-id --queue-name [--auto-acknowledge] [--parse-json] --session-id "<session-id>" --output jsonConsumes a single message from a RabbitMQ queuerobomotion rabbitmq rabbitmq_queue_declare --client-id --queue-name [--durable] [--auto-delete] [--exclusive] --session-id "<session-id>" --output jsonDeclares a queue on RabbitMQ serverrobomotion rabbitmq rabbitmq_queue_delete --client-id --queue-name [--only-if-unused] [--only-if-empty] --session-id "<session-id>" --output jsonDeletes a queue from RabbitMQ serverrobomotion rabbitmq rabbitmq_queue_purge --client-id --queue-name --session-id "<session-id>" --output jsonRemoves all messages from a RabbitMQ queuerobomotion rabbitmq rabbitmq_queue_bind --client-id --queue-name --exchange-name --routing-key --session-id "<session-id>" --output jsonBinds a queue to an exchange with a routing keyrobomotion rabbitmq rabbitmq_exchange_declare --client-id --exchange-name [--exchange-type] [--durable] [--auto-delete] --session-id "<session-id>" --output jsonDeclares an exchange on RabbitMQ serverrobomotion rabbitmq rabbitmq_exchange_delete --client-id --exchange-name [--only-if-unused] --session-id "<session-id>" --output jsonDeletes an exchange from RabbitMQ server
Environment
- ROBOMOTION_API_TOKEN (if vault credentials are needed)