tredis provides a terminal UI to interact with your Redis servers. The aim of this project is to make it easier to navigate, observe, and manage your Redis data in the wild.
tredis_demo.mp4
- Multi-Server Support - Manage multiple Redis servers from a single interface
- TLS Support - Connect to Redis servers with TLS encryption (Upstash, Redis Cloud, etc.)
- Key Browser - Browse and search keys with pagination
- Data Type Support - View and inspect String, List, Set, Hash, ZSet, and Stream data types
- Real-time Monitoring - Monitor Redis commands in real-time
- Pub/Sub - Subscribe to channels and view messages
- Streams - Browse and consume Redis Streams
- Client List - View connected clients
- Slowlog - Inspect slow queries
- Server Info - View detailed server information with vim-style search (
/,n,N) - ACL Management - View ACL users and permissions
- Configuration - Browse and view Redis configuration
- Keyboard-Driven - Vim-like navigation and commands
- Filtering - Filter keys by pattern
brew install huseyinbabal/tap/tredisscoop bucket add huseyinbabal https://github.com/huseyinbabal/scoop-bucket
scoop install tredisDownload the latest release from the Releases page.
| Platform | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon (M1/M2/M3) | tredis-aarch64-apple-darwin.tar.gz |
| macOS | Intel | tredis-x86_64-apple-darwin.tar.gz |
| Linux | x86_64 (musl) | tredis-x86_64-unknown-linux-musl.tar.gz |
| Linux | ARM64 (musl) | tredis-aarch64-unknown-linux-musl.tar.gz |
| Windows | x86_64 | tredis-x86_64-pc-windows-msvc.zip |
# macOS Apple Silicon
curl -sL https://github.com/huseyinbabal/tredis/releases/latest/download/tredis-aarch64-apple-darwin.tar.gz | tar xz
sudo mv tredis /usr/local/bin/
# macOS Intel
curl -sL https://github.com/huseyinbabal/tredis/releases/latest/download/tredis-x86_64-apple-darwin.tar.gz | tar xz
sudo mv tredis /usr/local/bin/
# Linux x86_64 (musl - works on Alpine, Void, etc.)
curl -sL https://github.com/huseyinbabal/tredis/releases/latest/download/tredis-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv tredis /usr/local/bin/
# Linux ARM64 (musl - works on Alpine, Void, etc.)
curl -sL https://github.com/huseyinbabal/tredis/releases/latest/download/tredis-aarch64-unknown-linux-musl.tar.gz | tar xz
sudo mv tredis /usr/local/bin/- Download
tredis-x86_64-pc-windows-msvc.zipfrom the Releases page - Extract the zip file
- Add the extracted folder to your PATH, or move
tredis.exeto a directory in your PATH
cargo install tredis# Run interactively
docker run --rm -it huseyinbabal/tredis
# Connect to a specific Redis server
docker run --rm -it huseyinbabal/tredis --host redis.example.com --port 6379
# Using environment variables (recommended for containers)
docker run --rm -it \
-e TREDIS_HOST=redis.example.com \
-e TREDIS_PORT=6379 \
huseyinbabal/tredis
# Build locally
docker build -t tredis .
docker run --rm -it tredisNote: Use
-itflags for interactive terminal support (required for TUI).
tredis is built with Rust. Make sure you have Rust 1.70+ installed, along with a C compiler and linker.
| Platform | Install Command |
|---|---|
| Amazon Linux / RHEL / Fedora | sudo yum groupinstall "Development Tools" -y |
| Ubuntu / Debian | sudo apt update && sudo apt install build-essential -y |
| macOS | xcode-select --install |
| Windows | Install Visual Studio Build Tools |
# Clone the repository
git clone https://github.com/huseyinbabal/tredis.git
cd tredis
# Build and run
cargo build --release
./target/release/tredis# Launch tredis (will prompt to add a server if none configured)
tredis
# Launch with a specific host and port
tredis --host localhost --port 6379
# Connect to a specific database
tredis --host localhost --port 6379 --db 1
# Enable debug logging
tredis --log-level debug| Flag | ENV Variables | Default | Description |
|---|---|---|---|
-H, --host |
TREDIS_HOST, HOST |
localhost |
Redis host |
-p, --port |
TREDIS_PORT, PORT |
6379 |
Redis port |
-d, --db |
TREDIS_DB, DB |
0 |
Redis database |
-l, --log-level |
TREDIS_LOG_LEVEL, LOG_LEVEL |
off |
Log level (off, error, warn, info, debug) |
Note: CLI arguments take precedence over environment variables.
TREDIS_*prefixed variables take precedence over non-prefixed ones.
When you first launch tredis, you'll be prompted to add a server. Enter:
- Name: A friendly name for the server (e.g., "production", "local")
- URI: The Redis connection URI
redis://[[user]:password@]host[:port][/db]
rediss://[[user]:password@]host[:port][/db] # TLS
Examples:
redis://localhost:6379 # Local Redis
redis://localhost:6379/1 # Local Redis, database 1
redis://:mypassword@localhost:6379 # With password
rediss://default:token@my.upstash.io:6379 # Upstash (TLS)
rediss://user:pass@redis.cloud.com:6380 # Redis Cloud (TLS)
| Platform | Path |
|---|---|
| Linux | ~/.config/tredis/tredis.log |
| macOS | ~/.config/tredis/tredis.log |
| Windows | %APPDATA%\tredis\tredis.log |
Server configurations are stored in:
| Platform | Path |
|---|---|
| Linux | ~/.config/tredis/config.yaml |
| macOS | ~/.config/tredis/config.yaml |
| Windows | %APPDATA%\tredis\config.yaml |
| Action | Key | Description |
|---|---|---|
| Navigation | ||
| Move up | k / ↑ |
Move selection up |
| Move down | j / ↓ |
Move selection down |
| Top | gg |
Jump to first item |
| Bottom | G |
Jump to last item |
| Pagination | ||
| Next page | ] |
Load next page of results |
| Previous page | [ |
Load previous page of results |
| Views | ||
| Resources | : |
Open resource selector |
| Describe | Enter / d |
View key/resource details |
| Back | Esc / Backspace |
Go back to previous view |
| Actions | ||
| Refresh | R |
Refresh current view |
| Filter | / |
Filter keys (in Keys view) |
| Connect | c |
Connect to selected server |
| Add server | a |
Add a new server |
| Delete | Ctrl-d |
Delete selected key/server |
| Select | Space |
Toggle selection on current key |
| Select all | Ctrl-a |
Select all visible keys |
| Clear selection | Esc |
Clear all selections |
| Quit | Ctrl-c / q |
Exit tredis |
| Info Search | ||
| Search | / |
Start search in Info view |
| Next match | n |
Jump to next match |
| Previous match | N |
Jump to previous match |
| Clear search | Esc |
Clear search and highlights |
| Streams | ||
| Consume | c |
Start consuming stream messages |
| Stop | Esc |
Stop consuming |
| PubSub | ||
| Test Subscribe | s |
Subscribe to a channel |
| Stop | Esc |
Stop subscription |
| Monitor | ||
| Clear | R |
Clear monitor entries |
Press : to open the resource picker. Available resources:
| Resource | Description |
|---|---|
keys |
Browse Redis keys |
servers |
Manage server connections |
clients |
View connected clients |
info |
Server information |
slowlog |
Slow query log |
config |
Redis configuration |
acl |
ACL users |
monitor |
Real-time command monitor |
streams |
Redis Streams |
pubsub |
Pub/Sub channels |
tredis supports viewing all Redis data types:
| Type | View Support |
|---|---|
| String | Full value display |
| List | All elements with index |
| Set | All members |
| Hash | All field-value pairs |
| Sorted Set | Members with scores |
| Stream | Messages with IDs and fields |
tredis supports connecting to cloud Redis providers:
| Provider | URI Format |
|---|---|
| Upstash | rediss://default:<token>@<endpoint>.upstash.io:6379 |
| Redis Cloud | rediss://default:<password>@<endpoint>.redis.cloud.redislabs.com:<port> |
| AWS ElastiCache | redis://<endpoint>.cache.amazonaws.com:6379 |
| Azure Cache | rediss://:<key>@<name>.redis.cache.windows.net:6380 |
Note: Cloud providers typically require TLS (
rediss://). Check your provider's documentation for the exact connection string format.
- Some Redis commands may not be available on all Redis versions
- Cluster mode is detected but individual node management is not yet supported
- Large keys may take time to load in the describe view
Contributions are welcome! Please see our Contributing Guide for details.
- Inspired by k9s - the awesome Kubernetes CLI
- Inspired by taws - Terminal UI for AWS
- Built with Ratatui - Rust TUI library
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the Redis community