Version current

The rvl CLI

RedisVL ships with rvl, a purpose-built command-line tool for creating, inspecting, and managing Redis search indices from the terminal — a Go port of the Python library’s rvl CLI. It also hosts the MCP server.

Installation

Prebuilt binaries

Every release ships standalone rvl binaries for macOS, Linux, and Windows (amd64 and arm64) — no Go toolchain required. Archives are named rvl_<version>_<os>_<arch>. For example, on macOS (Apple Silicon):

VERSION=0.2.0
curl -sSfLO "https://github.com/redis/redis-vl-golang/releases/download/v${VERSION}/rvl_${VERSION}_darwin_arm64.tar.gz"
tar -xzf "rvl_${VERSION}_darwin_arm64.tar.gz" rvl
sudo mv rvl /usr/local/bin/
rvl version

Substitute linux_amd64, linux_arm64, or darwin_amd64 as appropriate; Windows users download the .zip and place rvl.exe on their PATH. Verify downloads against the release’s checksums.txt:

curl -sSfLO "https://github.com/redis/redis-vl-golang/releases/download/v${VERSION}/checksums.txt"
shasum -a 256 -c checksums.txt --ignore-missing

With the Go toolchain

go install github.com/redis/redis-vl-golang/cmd/rvl@latest

From source

Build from a checkout of the repository:

go build -o bin/rvl ./cmd/rvl   # or: make build-rvl

Connecting to Redis

Every command resolves the Redis connection URL in this order:

  1. The -u / --url flag on the command.

  2. The REDIS_URL environment variable.

  3. redis://localhost:6379.

export REDIS_URL=redis://:password@redis.example.com:6379
rvl index listall

# or per command:
rvl index listall -u redis://localhost:6380

Commands

$ rvl --help

rvl - RedisVL command line tool

Commands:
  index create  -s schema.yaml [--overwrite]   Create a new index from a schema file
  index info    -i <name> [--json]             Show details about an index
  index listall [--json]                       List all indexes
  index delete  -i <name>                      Delete an index, keep its data
  index destroy -i <name>                      Delete an index and drop its data
  stats         -i <name> | -s schema.yaml     Display index statistics
  mcp           --config mcp.yaml              Run the RedisVL MCP server
  version       [-s]                           Print the library version

Options:
  -u, --url    Redis connection URL (default: $REDIS_URL or redis://localhost:6379)

index create

Creates an index from a schema YAML file (-s / --schema, required). Pass --overwrite to replace an existing index definition.

index:
  name: user-idx
  prefix: user
  storage_type: json

fields:
  - name: user
    type: tag
  - name: embedding
    type: vector
    attrs:
      algorithm: flat
      dims: 4
      distance_metric: cosine
      datatype: float32
$ rvl index create -s schemas/schema.yaml
Index created successfully: user-idx

$ rvl index create -s schemas/schema.yaml --overwrite
Index created successfully: user-idx

index info

Shows the full FT.INFO details for an index, identified by name (-i / --index) or by schema file (-s). Add --json for machine-readable output.

$ rvl index info -i user-idx
Index Information for "user-idx":
  attributes                       [...]
  index_name                       user-idx
  num_docs                         42
  ...

$ rvl index info -i user-idx --json

index listall

Lists every search index on the server.

$ rvl index listall
Indices (2):
  user-idx
  products

$ rvl index listall --json
{
  "indices": [
    "user-idx",
    "products"
  ]
}

index delete and index destroy

Both take an index name via -i / --index. delete removes only the index definition; destroy also drops the indexed documents.

$ rvl index delete -i user-idx
Index deleted (data preserved): user-idx

$ rvl index destroy -i user-idx
Index destroyed (index and data deleted): user-idx
index destroy deletes the underlying documents from Redis. Use index delete when you only want to drop the index definition.

stats

Displays index statistics (document counts, memory usage, indexing failures, and more), mirroring the rows shown by the Python rvl stats table. The index can be identified by name (-i) or schema file (-s), and --json is supported.

$ rvl stats -i user-idx
Statistics:
Stat Key                         Value
------------------------------------------------
num_docs                         42
num_terms                        118
max_doc_id                       42
num_records                      160
percent_indexed                  1
hash_indexing_failures           0
...
vector_index_sz_mb               0.31

mcp

Runs the RedisVL MCP server, exposing an existing index to MCP-compatible clients:

rvl mcp --config mcp.yaml [--read-only] [--transport stdio|streamable-http] \
        [--host <host>] [--port <port>] [--allow-unauthenticated]
Flag Description Default

--config

Path to the MCP YAML config file (required).

--read-only

Disable the upsert tool.

false

--transport

stdio or streamable-http.

stdio

--host

Host to bind for the HTTP transport.

127.0.0.1

--port

Port to bind for the HTTP transport.

8000

--allow-unauthenticated

Allow binding the HTTP transport to a non-loopback host.

false

See MCP Server for the configuration format and tool contract.

version

$ rvl version
RedisVL for Golang version 0.1.0

$ rvl version -s   # or --short
0.1.0

See also