A feature-rich terminal UI for managing Redis databases, built with Go and Bubble Tea. Browse, edit, and monitor your Redis keys without leaving the terminal.

# Native install — recommended (macOS and Linux)
curl -fsSL https://raw.githubusercontent.com/davidbudnick/redis-tui/main/install.sh | bash
# Homebrew (macOS and Linux)
brew tap davidbudnick/homebrew-tap
brew install --cask redis-tui
# Go (requires Go 1.26+)
go install github.com/davidbudnick/redis-tui@latest
Pre-built binaries — Download from GitHub Releases


--host, --port, --user, --password, etc. to connect without a config fileK to view all nodes, their roles (master/replica), slot ranges, and link state; cluster metrics in the live dashboardThe install script auto-detects your OS and architecture, downloads the latest release, verifies the checksum, and installs the binary to ~/.local/bin (override with INSTALL_DIR):
curl -fsSL https://raw.githubusercontent.com/davidbudnick/redis-tui/main/install.sh | bash
# Custom install directory
INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/davidbudnick/redis-tui/main/install.sh | bash
See Quick Install above.
# Clone the repository
git clone https://github.com/davidbudnick/redis-tui.git
cd redis-tui
# Build
make build
# Install to GOPATH/bin
make install
Download the latest release from the Releases page. Pre-built binaries are available for macOS, Linux, and Windows with no Go installation required.
Note: Requires Go 1.26 or later.
go install github.com/davidbudnick/redis-tui@latest
# Launch the interactive connection manager
redis-tui
# Quick connect to a Redis server
redis-tui --host localhost
# Connect with password and specific database
redis-tui -h redis.example.com -p 6380 -a mypassword -n 2
# Connect to a cluster node
redis-tui --host redis.example.com --port 6380 --cluster
# Connect with TLS
redis-tui --host redis.example.com --tls --tls-ca /path/to/ca.pem
# Update to the latest version
redis-tui --update
When --host is provided the TUI connects automatically on startup. Without flags the interactive connection manager is shown.
Press ? inside the app to view the full help screen.
| Flag | Short | Description | Default |
|---|---|---|---|
--host |
-h |
Redis server hostname | |
--port |
-p |
Redis server port | 6379 |
--password |
-a |
Redis password | |
--db |
-n |
Database number (0-15) | 0 |
--user |
Redis username (For ACL enabled servers) | ||
--name |
Connection display name | host:port |
|
--cluster |
Enable cluster mode | false | |
--tls |
Enable TLS/SSL | false | |
--tls-cert |
TLS client certificate file | ||
--tls-key |
TLS client private key file | ||
--tls-ca |
TLS CA certificate file | ||
--tls-skip-verify |
Skip TLS certificate verification | false | |
--scan-size |
Redis SCAN COUNT hint (batch size for key scanning) | 1000 | |
--include-types |
Fetch key types during scan (set false to skip) | true | |
--version |
Print version and exit | ||
--update |
Update to the latest version |
Short flags (-h, -p, -a, -n) follow redis-cli conventions.
# Native install
rm -f ~/.local/bin/redis-tui
# Homebrew
brew uninstall --cask redis-tui
# Go
rm -f $(go env GOPATH)/bin/redis-tui
Keyboard Shortcuts
| Key | Action | Key | Action |
|---|---|---|---|
q |
Quit / Go back | Ctrl+U/D |
Page up/down |
? |
Show help | g/G |
Go to top/bottom |
j/k |
Navigate up/down | home/end |
Go to top/bottom |
Ctrl+C |
Force quit |
| Key | Action | Key | Action |
|---|---|---|---|
Enter |
Connect to selected | d/delete/backspace |
Delete connection |
a/n |
Add new connection | r |
Refresh list |
e |
Edit connection | Ctrl+T |
Test connection |
| Key | Action | Key | Action |
|---|---|---|---|
Enter |
View key details | O |
View logs |
a/n |
Add new key | B |
Bulk delete |
d/delete/backspace |
Delete key | T |
Batch set TTL |
r |
Refresh keys | F |
View favorites |
l |
Load more keys | W |
Tree view |
/ |
Filter by pattern | Ctrl+R |
Regex search |
s/S |
Sort / Toggle direction | Ctrl+F |
Fuzzy search |
v |
Search by value | Ctrl+H |
Recent keys |
e |
Export to JSON | Ctrl+L |
Client list |
I |
Import from JSON | Ctrl+E |
Toggle keyspace events |
i |
Server info | Ctrl+X |
View expiring keys |
D |
Switch database | m |
Live metrics dashboard |
f |
Flush database | M |
Memory stats |
p |
Pub/Sub channels | C |
Cluster info |
L |
View slow log | K |
Compare keys |
E |
Execute Lua script | P |
Key templates |
Ctrl+G |
Redis config |
| Key | Action | Key | Action |
|---|---|---|---|
e |
Edit value (string/json) | r |
Refresh value |
a |
Add to collection | f |
Toggle favorite |
x |
Remove from collection | w |
Watch for changes |
t |
Set TTL | h |
View value history |
R |
Rename key | y |
Copy to clipboard |
c |
Copy key | J |
JSON path query |
d/delete |
Delete key | j/k |
Navigate collection items |
esc/backspace |
Go back to keys list |
Need a Redis instance to try redis-tui? Docker Compose files are included under examples/.
# Standalone Redis on port 6379
docker compose -f examples/standalone/docker-compose.yml up -d
redis-tui -h localhost
# 6-node cluster (3 masters + 3 replicas) on ports 6380-6385
docker compose -f examples/cluster/docker-compose.yml up -d
redis-tui -h localhost -p 6380 --cluster
# Standalone Redis Stack (RedisJSON, RediSearch, etc.) on port 6390
docker compose -f examples/standalone-redis-stack/docker-compose.yml up -d
redis-tui -h localhost -p 6390
# Redis Stack cluster on ports 6386-6392
docker compose -f examples/cluster-redis-stack/docker-compose.yml up -d
redis-tui -h localhost -p 6386 --cluster
The Makefile also exposes shortcuts for these (make docker-up-standalone, make docker-up-cluster, make docker-up-standalone-stack, make docker-up-cluster-stack) along with matching docker-down-* and docker-seed-* targets.
Configuration is stored in ~/.config/redis-tui/config.json.
```json { "connections": [ { "id": 1, "name": "Standalone", "host": "localhost", "port": 6379, "username": "default", "db": 0, "created_at": "2025-01-01T00:00:00Z", "updated_at": "2025-01-01T00:00:00Z" }, { "id": 2, "name": "Cluster", "host": "localhost", "port": 6380, "db": 0, "use_cluster": true, "created_at": "2025-01-01T00:00:00Z", "updated_at": "2025-01-01T00:00:00Z" } ], "groups": [ { "name": "local", "color": "#50fa7b", "connections": [1, 2] } ], "favorites": [ { "connection_id": 1, "connection": "Standalone", "key": "app:config", "label": "App Settings", "added_at": "2025-01-15T10:30:00Z" } ], "recent_keys": [ { "connection_id": 1, "key": "session:abc123", "type": "hash", "accessed_at": "2025-01-20T14:00:00Z" } ], "templates": [ { "name": "Session", "description": "User session data", "key_pattern": "session:{user_id}", "type": "hash", "default_ttl": 86400000000000, "fields": { "token": "", "created_at": "", "user_agent": "" } }, { "name": "Cache", "description": "Cached data with TTL", "key_pattern": "cache:{resource}:{id}", "type": "string", "default_ttl": 3600000000000 }, { "name": "Rate Limit", "description": "Rate limiting counter", "key_pattern": "ratelimit:{ip}:{endpoint}", "type": "string", "default_ttl": 60000000000, "default_value": "0" }, { "name": "Queue", "description": "Job queue", "key_pattern": "queue:{name}", "type": "list" }, { "name": "Leaderboard", "description": "Sorted leaderboard", "key_pattern": "leaderboard:{game}", "type": "zset" } ], "tree_separator": ":", "max_recent_keys": 20, "max_value_history": 50, "watc
$ claude mcp add redis-tui \
-- python -m otcore.mcp_server <graph>