SkillAgentSearch skills...

Iredis

Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting.

Install / Use

npx skills add laixintao/iredis

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img width="100" height="100" src="https://raw.githubusercontent.com/laixintao/iredis/master/docs/assets/logo.png" /> </p> <h3 align="center">Interactive Redis: A Cli for Redis with AutoCompletion and Syntax Highlighting.</h3> <p align="center"> <a href="https://github.com/laixintao/iredis/actions"><img src="https://github.com/laixintao/iredis/actions/workflows/test.yaml/badge.svg?branch=master" alt="Github Action"></a> <a href="https://badge.fury.io/py/iredis"><img src="https://badge.fury.io/py/iredis.svg" alt="PyPI version"></a> <img src="https://badgen.net/badge/python/3.10%20%7C%203.11%20%7C%203.12" alt="Python version"> <a href="https://pepy.tech/project/iredis"><img src="https://pepy.tech/badge/iredis" alt="Download stats"></a> </p> <p align="center"> <img src="./docs/assets/demo.svg" alt="demo"> </p>

IRedis is a terminal client for redis with auto-completion and syntax highlighting. IRedis lets you type Redis commands smoothly, and displays results in a user-friendly format.

IRedis is an alternative for redis-cli. In most cases, IRedis behaves exactly the same as redis-cli. Besides, it is safer to use IRedis on production servers than redis-cli: IRedis will prevent accidentally running dangerous commands, like KEYS * (see Redis docs / Latency generated by slow commands).

Features

  • Advanced code completion. If you run command KEYS then run DEL, IRedis will auto-complete your command based on KEYS result.
  • Command validation. IRedis will validate command while you are typing, and highlight errors. E.g. try CLUSTER MEET IP PORT, IRedis will validate IP and PORT for you.
  • Command highlighting, fully based on redis grammar. Any valid command in IRedis shell is a valid redis command.
  • Human-friendly result display.
  • pipeline feature, you can use your favorite shell tools to parse redis' response, like get json | jq ..
  • Support pager for long output.
  • Support connection via URL, iredis --url redis://example.com:6379/1.
  • Support cluster, IRedis will auto reissue command for MOVED response in cluster mode.
  • Support NAT mapping for Redis clusters --natmap remoteHost:remotePort:localHost:localPort (comma-separated for multiple nodes).
  • Store server configuration: iredis -d prod-redis (see dsn for more).
  • peek command to check the key's type then automatically call get/lrange/sscan, etc, depending on types. You don't need to call the type command then type another command to get the value. peek will also display the key's length and memory usage.
  • <kbd>Ctrl</kbd> + <kbd>C</kbd> to cancel the current typed command, this won't exit IRedis, exactly like bash behaviour. Use <kbd>Ctrl</kbd> + <kbd>D</kbd> to send a EOF to exit IRedis.
  • <kbd>Ctrl</kbd> + <kbd>R</kbd> to open reverse-i-search to search through your command history.
  • Auto suggestions. (Like fish shell.)
  • Support --encode=utf-8, to decode Redis' bytes responses.
  • Command hint on bottom, include command syntax, supported redis version, and time complexity.
  • Official docs with built-in HELP command, try HELP SET!
  • Written in pure Python, but IRedis was packaged into a single binary with PyOxidizer, you can use cURL to download and run, it just works, even you don't have a Python interpreter.
  • You can change the cli prompt using --prompt option or set via ~/.iredisrc config file.
  • Hide password for AUTH command.
  • Says "Goodbye!" to you when you exit!
  • For full features, please see: iredis.xbin.io

Install

Pip

Install via pip:

pip install iredis

pipx is recommended:

pipx install iredis

Brew

For Mac users, you can install iredis via brew 🍻

brew install iredis

Linux

You can also use your Linux package manager to install IRedis, like apt in Ubuntu (Only available on Ubuntu 21.04+).

apt install iredis

Packaging status

Download Binary

Or you can download the executable binary with cURL(or wget), untar, then run. It is especially useful when you don't have a python interpreter(E.g. the official Redis docker image which doesn't have Python installed.):

wget  https://github.com/laixintao/iredis/releases/download/v1.15.2/iredis.tar.gz \
 && tar -xzf iredis.tar.gz \
 && ./iredis

(Check the release page if you want to download an old version of IRedis.)

Please note that the single binary build only support until IRedis v1.15.2, all versions before IRedis v1.15.2 has the single binary build that you can download directly. After v1.15.2, as the PyOxidizer is no longer maintained, IRedis doesn't do the single binary build either.

Usage

Once you install IRedis, you will know how to use it. Just remember, IRedis supports similar options like redis-cli, like -h for redis-server's host and -p for port.

$ iredis --help

Usage: iredis [OPTIONS] [CMD]...

  IRedis: Interactive Redis

  When no command is given, IRedis starts in interactive mode.

  Examples:
    - iredis
    - iredis -d dsn
    - iredis -h 127.0.0.1 -p 6379
    - iredis -h 127.0.0.1 -p 6379 -a <password>
    - iredis --url redis://localhost:7890/3

  Type "help" in interactive mode for information on available commands and
  settings.

Options:
  -h TEXT                         Server hostname (default: 127.0.0.1).
  -p TEXT                         Server port (default: 6379).
  -s, --socket TEXT               Server socket (overrides hostname and port).
  -n INTEGER                      Database number.(overwrites dsn/url's db
                                  number)

  -u, --username TEXT             User name used to auth, will be ignore for
                                  redis version < 6.

  -a, --password TEXT             Password to use when connecting to the
                                  server.

  --url TEXT                      Use Redis URL to indicate connection(Can set
                                  with env `IREDIS_URL`), Example:     redis:/
                                  /[[username]:[password]]@localhost:6379/0
                                  rediss://[[username]:[password]]@localhost:6
                                  379/0     unix://[[username]:[password]]@/pa
                                  th/to/socket.sock?db=0

  -d, --dsn TEXT                  Use DSN configured into the [alias_dsn]
                                  section of iredisrc file. (Can set with env
                                  `IREDIS_DSN`)

  --newbie / --no-newbie          Show command hints and useful helps.
  --iredisrc TEXT                 Config file for iredis, default is
                                  ~/.iredisrc.

  --decode TEXT                   decode response, default is No decode, which
                                  will output all bytes literals.

  --client_name TEXT              Assign a name to the current connection.
  --raw / --no-raw                Use raw formatting for replies (default when
                                  STDOUT is not a tty). However, you can use
                                  --no-raw to force formatted output even when
                                  STDOUT is not a tty.

  --rainbow / --no-rainbow        Display colorful prompt.
  --shell / --no-shell            Allow to run shell commands, default to
                                  True.

  --pager / --no-pager            Using pager when output is too tall for your
                                  window, default to True.

  --verify-ssl [none|optional|required]
                                  Set the TLS certificate verification
                                  strategy

  --prompt TEXT                   Prompt format (supported interpolations:
                                  {client_name}, {db}, {host}, {path}, {port},
                                  {username}, {client_addr}, {client_id}).

  --version                       Show the version and exit.
  --help                          Show this message and exit.

Using DSN

IRedis support storing server configuration in config file. Here is a DSN config:

[alias_dsn]
dev=redis://localhost:6379/4
staging=redis://username:password@staging-redis.example.com:6379/1

Put this in your iredisrc then connect via iredis -d staging or iredis -d dev.

Using --natmap with Redis Cluster

Use --natmap when you can connect to a Redis Cluster through local forwarded ports, but the cluster nodes still advertise different remote or private addresses in MOVED replies. This usually happens when the cluster is behind SSH tunnels, Docker port publishing, Kubernetes port-forwarding, or another NAT layer.

--natmap tells IRedis how to translate the address announced by Redis into the address that is actually reachable from your machine.

Format:

iredis --natmap remoteHost:remotePort:localHost:localPort

Use a comma-separated list when more than one cluster node needs translation.

Example: suppose the cluster replies with node addresses on a private network:

10.0.0.11:6379
10.0.0.12:6379
10.0.0.13:6379

but you access those nodes locally through SSH tunnels:

127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003

then start IRedis like this:

iredis -h 127.0.0.1 -p 7001 \
  --natmap 10.0.0.11:6379:127.0.0.1:7001,10.0.0.12:6379:127.0.0.1:7002,10.0.0.13:6379:127.0.0.1:7003

Now when a command hits the wrong node and Redis returns MOVED 12182 10.0.0.12:6379, IRed

Related Skills

View on GitHub
GitHub Stars2.7k
CategoryDevelopment
Updated2d ago
Forks117

Languages

Python

Security Score

100/100

Audited on Aug 6, 2026

No findings