An open-source macOS command-line utility for restoring from backups created by Arq
Get the source code here.
The data formats are documented for Arq 5 and Arq 7.
The Arq app has always had (since its launch in 2008) and will always have, the ability to restore from backup data without a license.
You can always install the app, choose "Restore-only mode", and then configure your storage location and browse and restore from your backups without having to give the app a license of any kind.
This arq_restore utility is published in the interest of increased transparency around your backup data that is created by Arq because it's your data. We know that data live longer than apps.
arq_restore can be used to restore from data created by (any version of) Arq, but it's a whole lot easier to use the Arq app to restore.
arq_restore can list the computers ("backup sets") in your AWS or local-folder backup set, list the folders in the backup set, and restore a folder or file.
Type arq_restore with no arguments to see usage instructions.
Usage:
arq_restore [-l loglevel] listtargets
arq_restore [-l loglevel] addtarget <nickname> aws <access_key> <secret_key>
arq_restore [-l loglevel] addtarget <nickname> local <path>
arq_restore [-l loglevel] deletetarget <nickname>
arq_restore [-l loglevel] listcomputers <target_nickname>
arq_restore [-l loglevel] listfolders <target_nickname> <computer_uuid>
arq_restore [-l loglevel] printplist <target_nickname> <computer_uuid> <folder_uuid>
arq_restore [-l loglevel] listtree <target_nickname> <computer_uuid> <folder_uuid>
arq_restore [-l loglevel] restore <target_nickname> <computer_uuid> <folder_uuid>
arq_restore [-l loglevel] clearcache <target_nickname>
log levels: none, error, warn, info, and debug
log output: ~/Library/Logs/arq_restorer
arq_restore can view and restore from both AWS and local backup sets. If you've got a backup set at another destination type, copy the backup set's data to a local folder and then add that as a target to restore from.
To configure an AWS target you'll need an access key ID and secret access key to access the AWS data. See the Arq help for more information on creating those keys: Create AWS Key Pair
To list "computers" (a.k.a. "backup sets"), use the 'listcomputers' command with the nickname for the target you've configured.
$ arq_restore addtarget backups local /Volumes/8tb/backups
$ arq_restore listcomputers backups
target: backups
[arq5] computer 6AC24B47-FFCB-4710-BC06-20E6F2A41A3D
fritz (stefan)
[arq7] plan 13D085CE-4F8A-4975-B84C-D9D08B485048
fritz - Back up to backups (encrypted)
[arq6] plan f628dc5b-9c9b-4885-a46c-f3a01cfd3ef8
fritz - Back up selected files (encrypted)
To list the folders in a computer's backup set, use the listfolders command:
$ arq_restore listfolders backups 725FAF56-B678-4258-BE24-E64E400D750F
enter encryption password: ...
target backups
computer 6AC24B47-FFCB-4710-BC06-20E6F2A41A3D
folder /Users/stefan/src/boop
uuid F2E912A1-5C72-435E-8500-96EB3CE5C2D0
folder /Users/stefan/src/company/other
uuid 6916F1A8-3D68-4FA3-9BB3-B5CED3D119E8
To restore (download) the latest backup of a folder, use the restore command:
$ arq_restore restore backups 6AC24B47-FFCB-4710-BC06-20E6F2A41A3D F2E912A1-5C72-435E-8500-96EB3CE5C2D0
enter encryption password: ...
target backups
computer 6AC24B47-FFCB-4710-BC06-20E6F2A41A3D
folder F2E912A1-5C72-435E-8500-96EB3CE5C2D0
restoring folder /Users/stefan/src/boop to /Users/stefan/Desktop/boop
2026-03-19 10:33:11.355 arq_restore[75422:8345835] setting log file permissions to 666 for /Users/stefan/Library/Logs/arq_restore/arq_restore 2026-03-19 14-33.log
status: Caching object list from backups
status: Reading pack list...
...
status: Restoring boop from Mar 19, 2026 at 8:06 AM to /Users/stefan/boop
To restore only a subset of a folder, add the relative path within the folder as an additional argument:
$ arq_restore restore backups 6AC24B47-FFCB-4710-BC06-20E6F2A41A3D F2E912A1-5C72-435E-8500-96EB3CE5C2D0 /subdir1/subdir2
...
Copyright (c) 2009-2026, Haystack Software LLC http://www.haystacksoftware.com
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the names of PhotoMinds LLC or Haystack Software, nor the names of
their contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.