CLI tool for Azure Blob Storage with POSIX-like semantics. Uses AzCopy as backend for blazing-fast transfers while providing a clean, intuitive interface.
- Complete Toolset -
cat,cp,ls,du,mv,rm, andsynccommands - Clean URI Syntax -
az://account/container/pathinstead of verbose HTTPS URLs - High Performance - AzCopy backend with parallel transfers and server-side copies
- Pattern Matching - Glob patterns (
*.txt,**/*.jpg) and wildcards for filtering - Safe Operations - Dry-run mode, confirmation prompts, and detailed previews
- Better UX - Colored output, progress indicators, and clear error messages
AzCopy is fast and Azure CLI is comprehensive, but both are verbose in terms of options and have different semantics.
azst offers a simpler alternative:
- Familiar commands -
cp,ls,rm,duwork like their Unix counterparts - Shorter URIs -
az://account/container/pathvshttps://account.blob.core.windows.net/container/path - Same speed - Uses AzCopy under the hood for parallel transfers
- No new auth - Works with your existing
az logincredentials
- Azure CLI: Install from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli
- Authentication: Run
az loginto authenticate
azst automatically detects:
- Managed Identity on Azure VMs, App Service, AKS, Container Instances
- Service Principal credentials via environment variables:
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET
azst tries authentication methods in this order:
- Environment Variables - Service Principal (
AZURE_TENANT_ID,AZURE_CLIENT_ID,AZURE_CLIENT_SECRET) - Managed Identity - Automatic on Azure VMs and services
- Azure CLI - Uses
az logincredentials for local development
Note: AzCopy will be automatically downloaded and installed during first use.
macOS / Linux / WSL:
curl -sSL https://raw.githubusercontent.com/dymaxionlabs/azst/main/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/dymaxionlabs/azst/main/install.ps1 | iexThis will download and install:
- The latest
azstbinary from themainbranch for your system - AzCopy version 10.30.1 (if not already present)
Installation locations:
- Linux/macOS:
~/.local/bin/azst - Windows:
%LOCALAPPDATA%\Programs\azst\azst.exe
Download the latest build for your platform from the releases page.
# Download and extract
tar xzf azst-*.tar.gz
# Move to a directory in your PATH
sudo mv azst /usr/local/bin/
# Or install to user directory
mkdir -p ~/.local/bin
mv azst ~/.local/bin/
export PATH="$PATH:~/.local/bin" # Add to your ~/.bashrc or ~/.zshrcDownload the .zip file, extract it, and add the directory to your PATH.
Using PowerShell:
# Extract to a directory
Expand-Archive -Path azst-windows-x86_64.exe.zip -DestinationPath $env:LOCALAPPDATA\Programs\azst
# Add to PATH (run as administrator or add to User PATH)
$Path = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$Path;$env:LOCALAPPDATA\Programs\azst", "User")Or using File Explorer:
- Extract the .zip file to a folder (e.g.,
C:\Program Files\azst) - Add that folder to your system PATH:
- Search for "Environment Variables" in Windows
- Edit the "Path" variable
- Add the folder path
Note: AzCopy will be automatically downloaded and installed during the installation process for all platforms.
Requires Rust to be installed.
# Clone the repository
git clone https://github.com/dymaxionlabs/azst
cd azst
# Build and install
cargo install --path .The binary will be installed to ~/.cargo/bin/azst (make sure this directory is
in your PATH).
Run azst --help to see all available commands and options.
For detailed help on any command, use:
azst <command> --help# List storage accounts
azst ls
# List containers in an account
azst ls az://myaccount/
# Copy to Azure
azst cp -r /local/dir/ az://myaccount/mycontainer/
# Download from Azure
azst cp -r az://myaccount/mycontainer/data/ /local/backup/
# Remove files
azst rm -r az://myaccount/mycontainer/old-files/Azure URIs follow the format:
az://<storage-account>/<container>/path/to/object
Examples:
az://myaccount/- List all containers in storage accountaz://myaccount/mycontainer/- List all objects in containeraz://myaccount/mycontainer/prefix/- List objects with prefixaz://myaccount/mycontainer/file.txt- Specific object
Note: The az:// URI scheme is specific to azst and is not used by
official Microsoft Azure tools.
The tool uses the Azure CLI configuration and authentication:
- Login:
az login - Set default subscription:
az account set --subscription <subscription-id>
- Uses AzCopy backend for blazing-fast transfers
- Parallel uploads/downloads (configurable)
- Efficient streaming for large files
- Azure-to-Azure copies are server-side (no local transfer)
| gsutil | azst | Description |
|---|---|---|
gs:// |
az:// |
URI scheme |
gsutil cp |
azst cp |
Copy files |
gsutil ls |
azst ls |
List objects |
gsutil rm |
azst rm |
Remove objects |
gsutil du |
azst du |
Disk usage stats |
gsutil rsync |
azst sync |
Sync directories |
The tool aims to provide familiar gsutil-like semantics for Azure Blob Storage operations. All copy and sync operations use AzCopy for parallel transfers by default.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License. See the LICENSE file for details.