A unified CLI for Redis Cloud and Redis Enterprise REST APIs with comprehensive async operation support.
- π Unified Interface - Single CLI for both Redis Cloud and Redis Enterprise
 - β³ Async Operations - Full support for long-running operations with 
--waitflags - π Smart Routing - Automatically detects which API to use based on context
 - π Multiple Output Formats - JSON, YAML, and Table output with JMESPath filtering
 - π Secure Configuration - Profile-based auth with environment variable support
 - π Comprehensive Coverage - Full API coverage for both platforms A unified CLI for Redis Cloud and Redis Enterprise REST APIs with comprehensive async operation support.
 
- π Unified Interface - Single CLI for both Redis Cloud and Redis Enterprise
 - β³ Async Operations - Full support for long-running operations with 
--waitflags - π Smart Routing - Automatically detects which API to use based on context
 - π Multiple Output Formats - JSON, YAML, and Table output with JMESPath filtering
 - π Secure Configuration - Profile-based auth with environment variable support
 
# Install from crates.io
cargo install redisctl
# Or build from source
git clone https://github.com/joshrotenberg/redisctl.git
cd redisctl
cargo install --path crates/redisctlCreate ~/.config/redisctl/config.toml:
[profiles.cloud]
deployment_type = "cloud"
api_key = "your-api-key"
api_secret = "your-secret-key"
[profiles.enterprise]
deployment_type = "enterprise"
url = "https://cluster:9443"
username = "[email protected]"
password = "your-password"
default_profile = "cloud"Or use environment variables:
# Redis Cloud
export REDIS_CLOUD_API_KEY="your-key"
export REDIS_CLOUD_API_SECRET="your-secret"
# Redis Enterprise
export REDIS_ENTERPRISE_URL="https://cluster:9443"
export REDIS_ENTERPRISE_USER="[email protected]"
export REDIS_ENTERPRISE_PASSWORD="your-password"# List databases
redisctl database list
# Create database with async wait
redisctl cloud database create --data @database.json --wait
# Create database with async wait
redisctl cloud database create
# UpdateDifferent output
redisctl Deletedatabaselist-o yaml | yq '.[] | select(.name == "prod")' database with force and wait
redisctl cloud database delete 12345 --force --wait# JSON output (default)
redisctl database list -o json
# YAML output
redisctl database list -o yaml
# Human-readable table
redisctl database list -o table
# Filter with JMESPath
redisctl database list -q "[?status=='active'].{name: name, memory: memoryLimitInGb}"
# Combine with jq for advanced processing
redisctl database list -o json | jq '.[] | select(.name | contains("prod"))'# List all profiles
redisctl profile list
# Set default profile
redisctl profile default cloud-prod
# Get specific profile settings
redisctl profile get enterprise-dev
# Set profile values
redisctl profile set cloud-staging api_key "new-key"
redisctl profile set cloud-staging api_secret "new-secret"
# Remove profile
redisctl profile remove old-profile
# Use specific profile for a command
redisctl database list --profile cloud-stagingREDIS_CLOUD_API_KEY- API key for authenticationREDIS_CLOUD_API_SECRET- API secret for authenticationREDIS_CLOUD_API_URL- Custom API URL (optional)
REDIS_ENTERPRISE_URL- Cluster API URLREDIS_ENTERPRISE_USER- Username for authenticationREDIS_ENTERPRISE_PASSWORD- Password for authenticationREDIS_ENTERPRISE_INSECURE- Allow insecure TLS (true/false)
REDISCTL_PROFILE- Default profile to useRUST_LOG- Logging level (error, warn, info, debug, trace)
For comprehensive documentation, see the mdBook documentation:
- Getting Started - Installation and configuration
 - CLI Reference - Complete command reference
 - Async Operations - Using 
--waitflags - Examples - Common use cases and patterns
 - API Reference - Complete command reference
 
This project provides Rust client libraries for both APIs:
[dependencies]
redis-cloud = "0.2"       # Redis Cloud API client
redis-enterprise = "0.2"  # Redis Enterprise API clientSee CONTRIBUTING.md for development guidelines.
This project is licensed under the MIT License - see LICENSE file for details.