AWS SQS Message mover
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Add install script Nov 15, 2018
.goreleaser.yml Remove netbsd from build Nov 16, 2018
LICENSE Initial commit Jan 22, 2016
README.MD Update readme Nov 26, 2018
go.mod Better logging Nov 20, 2018
go.sum Better logging Nov 20, 2018 Add install script Nov 15, 2018
main.go Clean up error messages Nov 23, 2018


SQS Message Mover

SQS Mover lets you move messages from one AWS SQS queue to another. Useful when you need to move deadletter queue messages back into the original queue.


  • Reliable delivery. Messages are only deleted from the original queue if they were successfully un-queued to the destination.
  • Messages are sent and received in batches for faster processing.
  • Progress indicator.
  • Queue name resolution. For ease of use, you only need to provide a queue name and not the full arn address.


On macOS, Linux, or OpenBSD run the following:

curl | sh

Note that you may need to run the sudo version below, or alternatively chown /usr/local:

curl | sudo sh

On Windows download binary.

After downloading, rename binary file 'sqsmover.exe', then add to PATH.

Configuring Credentials

Before using the sqsmover ensure that you've configured AWS credentials. The best way to configure credentials on a development machine is to create the credentials file ~/.aws/credentials, which might look like:

aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>

As an alternative you can set AWS credentials in the environment variables.

The following examples show how you configure the environment variables.

Linux, OS X, or Unix





sqsmover --help

usage: sqsmover.exe --source=SOURCE --destination=DESTINATION [<flags>]

      --help                     Show context-sensitive help (also try
                                 --help-long and --help-man).
  -s, --source=SOURCE            Source queue to move messages from
  -d, --destination=DESTINATION  Destination queue to move messages to
  -r, --region="us-west-2"       AWS Region for source and destination queues


Region will default to us-west-2, you can also override it with --region flag

sqsmover --source=my_source_queue_name --destination=my_destination_queuename
sqsmover --source=my_source_queue_name --destination=my_destination_queuename --region=eu-west-1

-- shorthand
sqsmover -s my_source_queue_name -d my_destination_queuename -r eu-west-1