A beautiful Redis TUI client built with Textual
Project description
TuiRedis 🔴
A beautiful, high-performance Redis Terminal UI built with Python & Textual.
English | 中文说明 | Changelog | 更新记录
🚀 Features
- 🔗 Connection Management — Connect to Redis in standalone mode, through Redis Sentinel master discovery, in Redis Cluster mode, or over an SSH tunnel.
- 🧭 Multi-Sentinel Support — Configure one or more Sentinel nodes and automatically resolve the active master.
- 🔁 Sentinel Failover Recovery — Common read/write operations automatically reconnect and retry after Sentinel master failover, connection resets, or
READONLYerrors. - 🔐 Safer Saved Profiles — Passwords are not written to disk unless you explicitly opt in when saving a profile.
- 🗂️ Dynamic DB Awareness — Standalone connections detect the server's logical database count instead of assuming
0..15. - 🌲 Hierarchical Key Browser — Interactive Tree view grouping keys by
:separator with real-time fuzzy search. - ⏱️ TTL Expiry Indicators — Keys color-coded by expiry: 🔴 critical (< 60s), ⏱ expiring (< 1h).
- ☑ Multi-select & Bulk Delete — Press
Spaceon any key to select,Ctrl+Dto delete all selected keys at once. - 📄 Advanced Value Viewer — Native support for viewing & editing
String,List,Hash,Set, andSorted Set. - ⚡ Responsive Async Loading — Key lists, key details, server info, bulk actions, and pagination run off the UI thread, with loading indicators and stale-response protection.
- ⚡ Pagination & Elastic Loading — Safe loading of millions of keys without blocking the TUI. Hash and Set types support cursor-based
HSCAN/SSCANpagination. - 📋 Copy to Clipboard — One-click copy of any String value to your system clipboard.
- 📤 Export to File — Export any key's value to a local file (
.txtfor strings,.jsonfor structured types). - 📊 Server Info & Monitoring — View server stats, memory footprints, connected clients, and keyspace utilization. Cluster connections show an aggregated summary in the info panel.
- ✨ CRUD Operations — Create, Read, Update, Delete keys seamlessly.
- 🎨 Modern Dark Theme — Redis-branded aesthetics with fluid terminal animations.
- 🛠️ IRedis Integration — Press
Ctrl+Tto jump into aniredisinteractive session. PressCtrl+Zinside iredis to suspend it and return to TuiRedis instantly; pressCtrl+Tagain to resume the same session where you left off.
What's New In v0.7.0
- Added Redis Sentinel master discovery with multi-Sentinel support and failover-aware reconnect/retry logic.
- Added explicit Redis Cluster mode with cross-cluster key scanning, aggregated server info, and safer command handling.
- Hardened the UI with async background loading, loading indicators, stale-response dropping, and safer DB switching.
- Improved connection profile safety by defaulting to non-persistent secrets and surfacing profile save/delete failures.
📦 Installation
TuiRedis is available on PyPI and can be installed using your preferred Python package manager.
Using pipx (Recommended)
pipx install tuiredis
Using uvx / uv
uvx tuiredis
# or
uv tool install tuiredis
Using pip
pip install tuiredis
From Source
# Clone the repository
git clone https://github.com/Wooden-Robot/tuiredis.git
cd tuiredis
# Sync dependencies using uv
uv sync
# Run the project
uv run tuiredis
💻 Usage
If you installed TuiRedis via pipx or pip, you can start it directly from the terminal by running tuiredis. If you cloned from the source, you should use uv run tuiredis instead.
# Launch TuiRedis with the Interactive Connection Dialog
tuiredis
# Fast connect via CLI arguments
tuiredis -H 127.0.0.1 -p 6379 -a mypassword -n 0 -c
# Connect through Redis Sentinel and discover the master automatically
tuiredis --sentinel --sentinel-host 127.0.0.1 --sentinel-port 26379 --sentinel-master mymaster -a mypassword -c
# Connect through multiple Redis Sentinel nodes
tuiredis --sentinel --sentinel-node 127.0.0.1:26379 --sentinel-node 127.0.0.1:26380 --sentinel-master mymaster -a mypassword -c
# Connect to a Redis Cluster entry node
tuiredis --cluster -H 127.0.0.1 -p 7000 -a mypassword -c
# Connect securely via an SSH Tunnel
tuiredis -H 127.0.0.1 -p 6379 --ssh-host my-bastion.com --ssh-user root --ssh-key ~/.ssh/id_rsa -c
# Show all available CLI options
tuiredis --help
Redis Modes
standalone: fully supported.sentinel: supported via master discovery; configure it in the connection dialog or with--sentinel .... Multiple Sentinel nodes are supported.replica: readable, but writes may fail on read-only replicas.cluster: supported viaRedisCluster; onlyDB 0is valid and DB switching is disabled. Key scanning works across the cluster, while server info is shown as an aggregated summary.cluster + SSH tunnel: not supported yet.sentinel + SSH tunnel: not supported yet.
Notes
- Saved connection profiles do not persist Redis or Sentinel passwords unless
Save passwords to diskis enabled. - In cluster mode, raw
SELECTcommands are rejected because Redis Cluster only supportsDB 0. - The Server Info tab labels cluster views as aggregated summaries and Sentinel views as control-plane information.
⌨️ Keyboard Shortcuts
| Key | Action |
|---|---|
q |
Quit the application |
F5 |
Refresh Key Tree & Info |
/ |
Focus search bar |
n |
Create a New Key |
Space |
Toggle key selection (in Key Tree) |
Ctrl+D |
Bulk delete all selected keys |
Tab |
Switch between active panels |
Ctrl+o |
Switch Connection |
Ctrl+t |
Toggle IRedis session — launch, suspend (Ctrl+Z in iredis), and resume seamlessly |
Ctrl+i |
Toggle Server Info Panel |
Requirements: Python >= 3.10 / Redis Server
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tuiredis-0.7.0.tar.gz.
File metadata
- Download URL: tuiredis-0.7.0.tar.gz
- Upload date:
- Size: 335.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c945c11a26e26030e4370d11840a263c58fab8804d631558c60e69bf11c14386
|
|
| MD5 |
31151b63c3c456744447048e6008ec65
|
|
| BLAKE2b-256 |
80da8e1cd715d815840754ec4c2ecae93f863bc427d3b9454ce211593fb7e800
|
Provenance
The following attestation bundles were made for tuiredis-0.7.0.tar.gz:
Publisher:
publish.yml on Wooden-Robot/TuiRedis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tuiredis-0.7.0.tar.gz -
Subject digest:
c945c11a26e26030e4370d11840a263c58fab8804d631558c60e69bf11c14386 - Sigstore transparency entry: 1101445590
- Sigstore integration time:
-
Permalink:
Wooden-Robot/TuiRedis@56c5619b1a35fbe00dadb23ba5096297846558bd -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/Wooden-Robot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@56c5619b1a35fbe00dadb23ba5096297846558bd -
Trigger Event:
release
-
Statement type:
File details
Details for the file tuiredis-0.7.0-py3-none-any.whl.
File metadata
- Download URL: tuiredis-0.7.0-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94dd0079d9f23bd8fc049fe1da80312d11ea4a8cbe1fbb808e08acb4d14094ca
|
|
| MD5 |
caf1004416115ec425bd75b17f1f798e
|
|
| BLAKE2b-256 |
638c42b646be44923b5031e6bff26e10f8d23fcf071f5b6b7a201605532256e7
|
Provenance
The following attestation bundles were made for tuiredis-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on Wooden-Robot/TuiRedis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tuiredis-0.7.0-py3-none-any.whl -
Subject digest:
94dd0079d9f23bd8fc049fe1da80312d11ea4a8cbe1fbb808e08acb4d14094ca - Sigstore transparency entry: 1101445651
- Sigstore integration time:
-
Permalink:
Wooden-Robot/TuiRedis@56c5619b1a35fbe00dadb23ba5096297846558bd -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/Wooden-Robot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@56c5619b1a35fbe00dadb23ba5096297846558bd -
Trigger Event:
release
-
Statement type: