Skip to content

Repository files navigation

Redis TUI

CI Go Report Card License: MIT Latest Release

An interactive, fast, and lightweight Terminal User Interface (TUI) for exploring and managing your Redis databases. Built with Go and the Bubble Tea framework, it replaces repetitive CLI commands with an intuitive, keyboard-driven UI.

redis-tui demo

Features

  • Interactive Database Explorer: Browse through thousands of keys with SCAN-based pagination.
  • Type-to-Filter: Press / to narrow the command menu, the key list, or a field/member list down as you type — no need to scroll through hundreds of keys.
  • TTL at a Glance: Keys with an expiry show a countdown badge (4m, 17s, …) right in the key list, no need to open them first.
  • Context-Aware Drilling: Navigate into Hash fields, Lists, Sets, and Sorted Sets with full CRUD support.
  • Guided CRUD Wizard: HSET, HGET, SADD, ZADD, RPUSH, and LPUSH let you pick an existing key of the matching type (or create a new one) and add to it through a focused form — no need to remember exact key names.
  • Auto-Detected JSON: String values that look like JSON are pretty-printed and syntax-highlighted; the value/INFO inspector scrolls for large output.
  • TTL Management: Set, clear, or inspect key expiry. TTL is preserved when editing a value in-place.
  • Export / Import: Dump individual keys (pick from a list, with a pre-filled destination) or entire databases to portable JSON files using Redis DUMP/RESTORE. Export or import a single hash field / list / set / sorted-set member to self-describing JSON straight from the field browser. File prompts support Tab path completion.
  • TLS / SSL: Connect to secured Redis instances (managed Redis services, Redis Cloud, AWS ElastiCache, Upstash) with full mTLS support.
  • Redis 6+ ACL Auth: Authenticate with a username and password in addition to the legacy password-only form.
  • Reconnection with Backoff: Automatically reconnects after a dropped connection using exponential backoff (200 ms → 25.6 s cap).
  • Lightweight & Fast: Custom RESP protocol parser with minimal dependencies.
  • Cross-Platform: Works on Linux, macOS, and Windows.

Why redis-tui?

redis-tui redis-cli RedisInsight
Terminal-native
No install / single binary
Full CRUD for all data types
Export / Import (JSON)
TLS / mTLS
Keyboard-driven navigation

Prerequisites

Redis TUI works out of the box on macOS and Windows.

On Linux, the clipboard copy feature (c key) requires one of the following:

Display Server Package Install
X11 xclip or xsel sudo apt install xclip
Wayland wl-clipboard sudo apt install wl-clipboard

All other features work on Linux without additional dependencies.

Installation

Option 1: curl | sh Installer (No Go Required)

Install the latest release to ~/.local/bin (or /usr/local/bin if ~/.local/bin is not writable):

curl -fsSL https://raw.githubusercontent.com/ajxv/redis-tui/main/install.sh | sh

Install a specific version:

curl -fsSL https://raw.githubusercontent.com/ajxv/redis-tui/main/install.sh | sh -s -- --version v1.0.0-beta

System-wide install:

curl -fsSL https://raw.githubusercontent.com/ajxv/redis-tui/main/install.sh | sudo sh -s -- --to /usr/local/bin

Required tools:

  • curl or wget
  • tar
  • Optional checksum verification: sha256sum or shasum

Option 2: Using Go Install

go install github.com/ajxv/redis-tui/cmd/redis-tui@latest

Option 3: Pre-compiled Binaries

Download the latest binary for your OS from the Releases page. Extract and place the redis-tui binary in your PATH.

Usage

redis-tui

Connection via URL (recommended)

The -url flag accepts a standard Redis connection string and overrides all individual connection flags:

# Plain TCP
redis-tui -url "redis://localhost:6379/0"

# With password
redis-tui -url "redis://:mysecret@localhost:6379"

# Redis 6+ ACL username + password
redis-tui -url "redis://alice:mysecret@localhost:6379/2"

# TLS (rediss:// implies -tls)
redis-tui -url "rediss://user:pass@my-redis.example.com:6380/0"

Connection via individual flags

redis-tui -host "127.0.0.1:6379" -password "mysecret" -db 0

All flags

Flag Description Default
-url Redis URL: redis://[:pass@]host[:port][/db] or rediss://…
-host Redis server address host:port localhost:6379
-password Redis password $REDIS_PASSWORD env var
-username Redis ACL username (Redis 6+)
-db Redis database index 0
-dial-timeout TCP connection timeout 5s
-read-timeout Per-command read deadline 10s
-tls Enable TLS/SSL false
-tls-skip-verify Skip TLS certificate verification (insecure) false
-tls-cert Path to client certificate (PEM)
-tls-key Path to client private key (PEM)
-tls-ca Path to CA certificate (PEM)

Tip: Store your password in the environment to keep it out of the process list:

export REDIS_PASSWORD="mysecret"
redis-tui -host "127.0.0.1:6379"

TLS examples

# Connect to a TLS-secured Redis, trust the system CA store
redis-tui -host "my-redis.example.com:6380" -tls

# Skip certificate verification (useful for self-signed certs in dev)
redis-tui -host "localhost:6380" -tls -tls-skip-verify

# mTLS with a custom CA and client certificate
redis-tui -host "my-redis.example.com:6380" \
  -tls \
  -tls-ca /etc/ssl/redis-ca.pem \
  -tls-cert /etc/ssl/redis-client.pem \
  -tls-key /etc/ssl/redis-client-key.pem

# Redis 6+ ACL user via URL (TLS implied by rediss://)
redis-tui -url "rediss://alice:secret@my-redis.example.com:6380/0"

Note: -tls-cert and -tls-key must always be provided together.

Keybindings

Global

Key Action
↑ / ↓ Navigate lists
k / j Navigate lists (Explore key/field lists only — on the main menu, letters open the filter instead)
Enter Select an item or submit a form
Esc Go back, or clear an active filter first if one is set
Ctrl+C Quit

Main Menu

Key Action
Enter Run the selected command
/ or any letter Filter commands (type to narrow)
Esc Clear the filter; no-op otherwise
q Quit

Key Browser (Explore mode)

Key Action
Enter Open selected key
/ Filter the key list (type to narrow)
d Delete key (with confirmation)
r Rename key
n Load next page of keys
Ctrl+R / F5 Refresh current view

Value Output

Key Action
↑ / ↓, PgUp / PgDn, Home / End Scroll long output
e Edit value in-place (TTL is preserved; not available for set/sorted-set members)
c Copy value to clipboard
x Set or clear TTL (enter 0 to persist)
Esc Return to previous screen

Field / Member List (Hash, List, Set, Sorted Set)

Key Action
Enter View selected field or member
/ Filter the field/member list (type to narrow)
a Add a field / member
d Delete field or member (with confirmation)
x Export selected field / member to JSON
i Import a field / member from JSON
Ctrl+R / F5 Refresh

Known Limitations (Beta)

  • Large collections: Lists, Sets, and Sorted Sets load in pages of 100 items — press n to load the next page.
  • Offset-based list/zset paging: If items are added or removed mid-browse, reopen the key (Ctrl+R) for a consistent view.
  • Redis Streams: XADD / XREAD are not yet supported.

Development

# Clone
git clone https://github.com/ajxv/redis-tui.git
cd redis-tui

# Build
make build

# Run
make run

# Run all tests
make test

# Format
make fmt

# Lint (requires golangci-lint)
make lint-optional

Project Layout

.
├── cmd/redis-tui/          # Entry point and CLI flags
├── internal/
│   ├── redis/              # RESP protocol parser
│   └── tui/                # Bubble Tea model, state machine, TLS, URL parser, export/import
├── docs/                   # Release process, maintainer guides, and the VHS tape (demo.tape) behind the README GIF
└── tests/
    ├── redis/              # Black-box tests for the RESP parser
    └── tui/                # Black-box integration tests for the state machine

See CONTRIBUTING.md for development setup, test conventions, and the PR workflow.

License

This project is licensed under the MIT License.

About

An interactive, fast, and lightweight Terminal User Interface (TUI) for exploring and managing your Redis databases.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages