Another Redis Desktop Manager

🚀🚀🚀 A faster, better and more stable redis desktop manager, compatible with Linux, windows, mac. What's more, it won't crash when loading massive keys.


LICENSE Release Download Twitter FOSSA Status

简体中文

Windows

  • Download latest exe package from release [or gitee in China], double click to install.
  • Or by chocolatey: choco install another-redis-desktop-manager
  • Or by winget: winget install qishibo.AnotherRedisDesktopManager
  • Or sponsor by win store, It's not free, and I will be very grateful to you.
    get from microsoft store

Linux

  • Download latest AppImage package from release [or gitee in China], chmod +x, double click to run.
  • Or by snap: sudo snap install another-redis-desktop-manager Tips: If permission denied when selecting private key, run sudo snap connect another-redis-desktop-manager:ssh-keys to give access to ~/.ssh folder.
    Get it from the Snap Store

Mac

If you can't open it after installation by brew or dmg, exec the following command then reopen:
sudo xattr -rd com.apple.quarantine /Applications/Another\ Redis\ Desktop\ Manager.app

  • Download latest dmg package from release [or gitee in China], double click to install.
  • Or by brew: brew install --cask another-redis-desktop-manager
  • Or sponsor by app store, It's not free, and I will be very grateful to you.
    get from app store

Enjoy!

redis status dark

redis key hash dark

redis console dark

redis exec log

Feature Log

  • 2024-04-10: DB custom name support
  • 2024-02-21: Java/Pickle viewers support
  • 2024-02-15: Groups/Consumers in STREAM view
  • 2024-01-31: Hey, long time! Command line(CLI) args support
  • 2023-06-22: Export\Import keys support
  • 2023-05-26: Search support in Stream && Slow log support
  • 2023-04-01: Search support in List && Deflate raw support
  • 2022-10-07: Arrow Keys support in key list && Memory Analysis in folder
  • 2022-08-05: Clone Connection && Tabs Contextmenu\Mousewheel Support
  • 2022-04-01: Protobuf Support && Memory Analysis
  • 2022-03-03: Readonly Mode && Mointor Support
  • 2022-01-24: Command Dump Support
  • 2022-01-05: Support To Load All Keys
  • 2022-01-01: Brotli\Gzip\Deflate Support && RedisJSON Support
  • 2021-11-26: JSON Editable && Subscribe Support
  • 2021-08-30: Execution log Support && Add Hot Keys
  • 2021-08-16: Custom Formatter View Support!
  • 2021-06-30: Sentinel Support!!
  • 2021-06-24: ACL Support
  • 2021-05-03: Stream Support && Cli Command Tips Support
  • 2021-02-28: Connection Color Tag && Search History Support
  • 2021-02-03: Multiple Select\Delete && Msgpack Viewer Support
  • 2020-12-30: Tree View Support!!!
  • 2020-11-03: Binary View Support && SSH Passparse\Timeout Support
  • 2020-09-04: SSH Cluster Support && Extension Commands Support
  • 2020-06-18: SSL/TLS Support!!!
  • 2020-04-28: Page Zoom && Big Key Loads With Scan && Auto Json
  • 2020-04-18: Unvisible Key\Value Format Support
  • 2020-04-04: Cluster Support!!!
  • 2020-03-13: Dark Mode Support!!! && JsonView In Other Place
  • 2020-02-16: SSH Private Key Support
  • 2020-02-13: Open Cli Console In Tabs
  • 2019-06-14: Custom Font-Family Support
  • 2019-05-28: Key List Resizable
  • 2019-05-09: Search Support In Hash List Set Zset
  • 2019-04-26: Auto Updater
  • 2019-04-09: SSH Tunnel Connection Support
  • 2019-04-01: Extract Search Support
  • 2019-02-22: Single Connection Support
  • 2019-01-08: Project Start

Dev Build

Linux Or Mac

# clone code
git clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1
cd AnotherRedisDesktopManager

# install dependencies
npm install

# if download electron failed during installing, use this command
# ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" npm install

# serve with hot reload at localhost:9988
npm start


# after the previous step is completed to 100%, open another tab, build up a desktop client
npm run electron

If linux errors like this:

# if error like this
../src/FontManagerLinux.cc:1:35: fatal error: fontconfig/fontconfig.h: No such file or directory

# then try this
sudo apt install libfontconfig1-dev

Windows

# install build tools for the first time, just execute once
npm install -g windows-build-tools

# clone code
git clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1
cd AnotherRedisDesktopManager

# install dependencies, 32-bit or 64-bit all use win32
npm install --platform=win32

# if download electron failed during installing, use this command
# npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
# npm install --platform=win32

# serve with hot reload at localhost:9988
npm start


# after the previous step is completed to 100%, open another tab, build up a desktop client
npm run electron

Build Package

# prepare before package
npm run pack:prepare

# build package on respective platforms
# on windows build 64bit package
npm run pack:win
# on windows build 32bit package
npm run pack:win32

# on mac
npm run pack:mac

# on linux
npm run pack:linux

Sponsor

  • Give me a star ⭐ or upvote on Producthunt

  • Through OpenCollective

  • If you are a Mac user, you can purchase this software from the app store to sponsor, and then let the app store automatically update it for you.
    app store

  • If you are a Windows user, you can purchase this software from the win store to sponsor.
    windows store

  • Wechat sponsor code [Sponsor me a cup of coffee ☕]

Contributors

This project exists thanks to all the people who contribute. contributors backers

Custom Viewer

When the default viewer does not meet the needs, you can format your content via customize script.
Method: Pull down the viewer list to the bottom, click "Custom -> Add", and then refer to the instructions below
Note: The script needs to output formatted content through print console.log echo etc., which can be any string or JSON string

Config Description
Name Custom name
Command Executable commands, such as xxx.py xxx.js xxx.class etc. The file needs x permission, which can be executed in the form of ./xxx.py; It can also be set to /bin/node /bin/bash or other system commands, and the script path needs to be placed in Params
Params Parameters spliced after Command, such as "--key {KEY} --value {VALUE}", where {KEY} and {VALUE} will be replaced with the corresponding Redis key and value. Note that if the content is invisible such as binary, you can use {HEX} instead of {VALUE}, and {HEX} will be replaced with the hexadecimal string

Configuration example:

Add env to the first line of the script, the final executed command is: ./home/qii/pickle_decoder.py {HEX}, the script can receive parameters via argv[1], ref #978

Command Params
/home/qii/pickle_decoder.py {HEX}
/home/qii/shell_decoder.sh {VALUE}

Without execute permission x

The final executed command is: /bin/node /home/qii/node_decoder.js {HEX} --key={KEY}, the script can receive parameters via argv[1]

Command Params
/bin/bash /home/qii/shell_decoder.sh {VALUE}
/bin/node /home/qii/node_decoder.js {HEX} --key={KEY}

Start From Command Line(CLI)

If you want to start from command line(CLI), you can pass args to the App.

Examples

# Linux
# ./Another Redis Desktop Manager.AppImage

# Mac
# open /Applications/Another\ Redis\ Desktop\ Manager.app --args

# Windows
"D:\xxxx\Another Redis Desktop Manager.exe"

# COMMON
--host 127.0.0.1 --port 6379 --auth 123
--name tmp_connection

# CLUSTER
--cluster

# SSH
--ssh-host 192.168.0.110
--ssh-username root --ssh-password 123

# SENTINEL
--sentinel-master-name mymaster
--sentinel-node-password 123

# save connection
--save
# readonly mode
--readonly

Parameter Description

Common

Args Description Args Description
--host Redis host* --port Redis port
--auth Password --name Custom name
--separator Key separator --readonly Enable readonly mode
--username Username(Redis6 ACL) --save Enable saving, one-time link by default

SSH

Args Description Args Description
--ssh-host SSH host* --ssh-port SSH port(default:22)
--ssh-username Username* --ssh-password Password
--ssh-private-key Path of private key --ssh-passphrase Password of private key
--ssh-timeout SSH timeout(s)  

CLUSTER

Args Description
--cluster Enable CLUSTER mode

SSL

Args Description Args Description
--ssl Enable SSL* --ssl-key SSL Private Key Pem
--ssl-ca SSL Certificate Authority --ssl-cert SSL Public Key Pem

SENTINEL

Args Description
--sentinel-master-name Name of master group*,like 'mymaster'
--sentinel-node-password Password of Redis node

FAQ

1. How to connect to Redis Cluster in internal network (such as Docker, LAN, AWS)?

Answer: Connect via SSH+Cluster (SSH to the internal network and then connecting to Cluster with internal IP such as 127.0.0.1, 192.168.x.x), you need to fill Redis Host with the internal IP.

How to get Redis internal IP? Connect through SSH, uncheck Cluster option, and then open the console to execute CLUSTER NODES, select any IP in the result.

2. Do I need to fill in the 'Username' in the Redis configuration?

Answer: The access control list (ACL) is only supported in Redis>=6.0, so do not fill it unless you need a special user.

License

MIT

Support

goanother.com   Producthunt   Twitter@shibo   Download Analysis

qishibo/AnotherRedisDesktopManager

{
"props": {
"initialPayload": {
"allShortcutsEnabled": false,
"path": "/",
"repo": {
"id": 164574693,
"defaultBranch": "master",
"name": "AnotherRedisDesktopManager",
"ownerLogin": "qishibo",
"currentUserCanPush": false,
"isFork": false,
"isEmpty": false,
"createdAt": "2019-01-08T06:01:56.000Z",
"ownerAvatar": "https://avatars.githubusercontent.com/u/5136418?v=4",
"public": true,
"private": false,
"isOrgOwned": false
},
"currentUser": null,
"refInfo": {
"name": "master",
"listCacheKey": "v0:1712712747.0",
"canEdit": false,
"refType": "branch",
"currentOid": "8fd3b2007180e3ce865edfb21c61de2cc94a7940"
},
"tree": {
"items": [
{
"name": ".github",
"path": ".github",
"contentType": "directory"
},
{
"name": "build",
"path": "build",
"contentType": "directory"
},
{
"name": "config",
"path": "config",
"contentType": "directory"
},
{
"name": "pack",
"path": "pack",
"contentType": "directory"
},
{
"name": "src",
"path": "src",
"contentType": "directory"
},
{
"name": "static",
"path": "static",
"contentType": "directory"
},
{
"name": ".editorconfig",
"path": ".editorconfig",
"contentType": "file"
},
{
"name": ".eslintrc.json",
"path": ".eslintrc.json",
"contentType": "file"
},
{
"name": ".gitattributes",
"path": ".gitattributes",
"contentType": "file"
},
{
"name": ".gitignore",
"path": ".gitignore",
"contentType": "file"
},
{
"name": ".jshintrc",
"path": ".jshintrc",
"contentType": "file"
},
{
"name": ".postcssrc.js",
"path": ".postcssrc.js",
"contentType": "file"
},
{
"name": "LICENSE",
"path": "LICENSE",
"contentType": "file"
},
{
"name": "PRIVACY.md",
"path": "PRIVACY.md",
"contentType": "file"
},
{
"name": "README.md",
"path": "README.md",
"contentType": "file"
},
{
"name": "README.zh-CN.md",
"path": "README.zh-CN.md",
"contentType": "file"
},
{
"name": "SECURITY.md",
"path": "SECURITY.md",
"contentType": "file"
},
{
"name": "babel.config.json",
"path": "babel.config.json",
"contentType": "file"
},
{
"name": "element-variables.scss",
"path": "element-variables.scss",
"contentType": "file"
},
{
"name": "index.html",
"path": "index.html",
"contentType": "file"
},
{
"name": "package-lock.json",
"path": "package-lock.json",
"contentType": "file"
},
{
"name": "package.json",
"path": "package.json",
"contentType": "file"
}
],
"templateDirectorySuggestionUrl": null,
"readme": null,
"totalCount": 22,
"showBranchInfobar": false
},
"fileTree": null,
"fileTreeProcessingTime": null,
"foldersToFetch": [],
"treeExpanded": false,
"symbolsExpanded": false,
"isOverview": true,
"overview": {
"banners": {
"shouldRecommendReadme": false,
"isPersonalRepo": false,
"showUseActionBanner": false,
"actionSlug": null,
"actionId": null,
"showProtectBranchBanner": false,
"publishBannersInfo": {
"dismissActionNoticePath": "/settings/dismiss-notice/publish_action_from_repo",
"releasePath": "/qishibo/AnotherRedisDesktopManager/releases/new?marketplace=true",
"showPublishActionBanner": false
},
"interactionLimitBanner": null,
"showInvitationBanner": false,
"inviterName": null
},
"codeButton": {
"contactPath": "/contact",
"isEnterprise": false,
"local": {
"protocolInfo": {
"httpAvailable": true,
"sshAvailable": null,
"httpUrl": "https://github.com/qishibo/AnotherRedisDesktopManager.git",
"showCloneWarning": null,
"sshUrl": null,
"sshCertificatesRequired": null,
"sshCertificatesAvailable": null,
"ghCliUrl": "gh repo clone qishibo/AnotherRedisDesktopManager",
"defaultProtocol": "http",
"newSshKeyUrl": "/settings/ssh/new",
"setProtocolPath": "/users/set_protocol"
},
"platformInfo": {
"cloneUrl": "https://desktop.github.com",
"showVisualStudioCloneButton": false,
"visualStudioCloneUrl": "https://windows.github.com",
"showXcodeCloneButton": false,
"xcodeCloneUrl": "https://developer.apple.com",
"zipballUrl": "/qishibo/AnotherRedisDesktopManager/archive/refs/heads/master.zip"
}
},
"newCodespacePath": "/codespaces/new?hide_repo_select=true&repo=164574693"
},
"popovers": {
"rename": null,
"renamedParentRepo": null
},
"commitCount": "803",
"overviewFiles": [
{
"displayName": "README.md",
"repoName": "AnotherRedisDesktopManager",
"refName": "master",
"path": "README.md",
"preferredFileType": "readme",
"tabName": "README",
"richText": "<article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div class=\"markdown-heading\" dir=\"auto\"><h1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Another Redis Desktop Manager</h1><a id=\"user-content-another-redis-desktop-manager\" class=\"anchor\" aria-label=\"Permalink: Another Redis Desktop Manager\" href=\"#another-redis-desktop-manager\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/9e1d0c9436c54b55cfda142f93e01e52580fcaaaa465fc3a4d03c0f52f951289/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f616e6f2d7371756172652d69636f6e2d3132382e706e67\"><img align=\"right\" width=\"120\" src=\"https://camo.githubusercontent.com/9e1d0c9436c54b55cfda142f93e01e52580fcaaaa465fc3a4d03c0f52f951289/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f616e6f2d7371756172652d69636f6e2d3132382e706e67\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/ano-square-icon-128.png\" style=\"max-width: 100%;\"></a></p>\n<blockquote>\n<p dir=\"auto\">🚀🚀🚀 A faster, better and more stable redis desktop manager, compatible with Linux, windows, mac. What's more, it won't crash when loading massive keys.</p>\n</blockquote>\n<br>\n<p dir=\"auto\"><a href=\"/qishibo/AnotherRedisDesktopManager/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/d35407c8ccdc5c3836202174c9ee2dfb06d54b09405cfe650c827d77809e0560/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7169736869626f2f416e6f7468657252656469734465736b746f704d616e61676572\" alt=\"LICENSE\" data-canonical-src=\"https://img.shields.io/github/license/qishibo/AnotherRedisDesktopManager\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/releases\"><img src=\"https://camo.githubusercontent.com/a549eae7688146bafdc92a21fb878a2fb6def022291e3e6b16df3d2e680204c5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7169736869626f2f416e6f7468657252656469734465736b746f704d616e616765722e737667\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/github/release/qishibo/AnotherRedisDesktopManager.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/releases\"><img src=\"https://camo.githubusercontent.com/c5f750c179c6c361562a3c3b254ff30e125bdf9c8e164a593059bf982b7db6d5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f7169736869626f2f416e6f7468657252656469734465736b746f704d616e616765722f746f74616c\" alt=\"Download\" data-canonical-src=\"https://img.shields.io/github/downloads/qishibo/AnotherRedisDesktopManager/total\" style=\"max-width: 100%;\"></a>\n<a href=\"https://twitter.com/qii404\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/01584dea648d844343c883b6cb256cb464087f55fa4b44752ab0792eff361c38/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547769747465722d40736869626f2d626c75652e737667\" alt=\"Twitter\" data-canonical-src=\"https://img.shields.io/badge/[email protected]\" style=\"max-width: 100%;\"></a>\n<a href=\"https://app.fossa.com/projects/git%2Bgithub.com%2Fqishibo%2FAnotherRedisDesktopManager?ref=badge_shield\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9b530ec5437b77861af7c45c4989865786fe2b7b147fee5b377afd1912be9f6e/68747470733a2f2f6170702e666f7373612e636f6d2f6170692f70726f6a656374732f6769742532426769746875622e636f6d2532467169736869626f253246416e6f7468657252656469734465736b746f704d616e616765722e7376673f747970653d736869656c64\" alt=\"FOSSA Status\" data-canonical-src=\"https://app.fossa.com/api/projects/git%2Bgithub.com%2Fqishibo%2FAnotherRedisDesktopManager.svg?type=shield\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.producthunt.com/posts/another-redis-desktop-manager?utm_source=badge-featured\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/601ec94d5bbf51f78d46d36efbe76b226a60841e142cfc751f587caa8a876c52/68747470733a2f2f6170692e70726f6475637468756e742e636f6d2f776964676574732f656d6265642d696d6167652f76312f66656174757265642e7376673f706f73745f69643d333430353532267468656d653d6461726b\" height=\"20\" width=\"93\" data-canonical-src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=340552&amp;theme=dark\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"/qishibo/AnotherRedisDesktopManager/blob/master/README.zh-CN.md\">简体中文</a></p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Windows</h2><a id=\"user-content-windows\" class=\"anchor\" aria-label=\"Permalink: Windows\" href=\"#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ul dir=\"auto\">\n<li>Download latest <a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/releases\">exe</a> package from release [or <a href=\"https://gitee.com/qishibo/AnotherRedisDesktopManager/releases\" rel=\"nofollow\">gitee</a> in China], double click to install.</li>\n<li>Or by <strong>chocolatey</strong>: <code>choco install another-redis-desktop-manager</code></li>\n<li>Or by <strong>winget</strong>: <code>winget install qishibo.AnotherRedisDesktopManager</code></li>\n<li>Or <strong>sponsor</strong> by win store, It's not free, and I will be very grateful to you.\n<br><a href=\"https://apps.microsoft.com/store/detail/9MTD84X0JFHZ?launch=true&amp;cid=github&amp;mode=mini\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/64623299b99d37232cd18d378ba245656f00b6bf40af2c842759a345b3fcee70/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f6d6963726f736f66742d73746f72652e706e67\" height=\"58\" width=\"180\" alt=\"get from microsoft store\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/microsoft-store.png\" style=\"max-width: 100%;\"></a></li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Linux</h2><a id=\"user-content-linux\" class=\"anchor\" aria-label=\"Permalink: Linux\" href=\"#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ul dir=\"auto\">\n<li>Download latest <a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/releases\">AppImage</a> package from release [or <a href=\"https://gitee.com/qishibo/AnotherRedisDesktopManager/releases\" rel=\"nofollow\">gitee</a> in China], <code>chmod +x</code>, double click to run.</li>\n<li>Or by <strong>snap</strong>: <code>sudo snap install another-redis-desktop-manager</code>\n<strong>Tips</strong>: If permission denied when selecting private key, run <code>sudo snap connect another-redis-desktop-manager:ssh-keys</code> to give access to ~/.ssh folder.\n<br><a href=\"https://snapcraft.io/another-redis-desktop-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/46aa03c94aa80f6545e01f2ce3966a1d7ae73552495f177b9b71f411408ce325/68747470733a2f2f736e617063726166742e696f2f7374617469632f696d616765732f6261646765732f656e2f736e61702d73746f72652d626c61636b2e737667\" alt=\"Get it from the Snap Store\" data-canonical-src=\"https://snapcraft.io/static/images/badges/en/snap-store-black.svg\" style=\"max-width: 100%;\"></a></li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Mac</h2><a id=\"user-content-mac\" class=\"anchor\" aria-label=\"Permalink: Mac\" href=\"#mac\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<blockquote>\n<p dir=\"auto\">If you can't open it after installation by brew or dmg, exec the following command then reopen:<br><code>sudo xattr -rd com.apple.quarantine /Applications/Another\\ Redis\\ Desktop\\ Manager.app</code></p>\n</blockquote>\n<ul dir=\"auto\">\n<li>Download latest <a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/releases\">dmg</a> package from release [or <a href=\"https://gitee.com/qishibo/AnotherRedisDesktopManager/releases\" rel=\"nofollow\">gitee</a> in China], double click to install.</li>\n<li>Or by <strong>brew</strong>: <code>brew install --cask another-redis-desktop-manager</code></li>\n<li>Or <strong>sponsor</strong> by app store, It's not free, and I will be very grateful to you.\n<br><a href=\"https://apps.apple.com/app/id1516451072\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bf07b7eac8aef6824dcd5ade9a7b7083219dacfdbcc7be91f0c5391510c03393/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f617661696c5f6170705f73746f72653138302e737667\" alt=\"get from app store\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/avail_app_store180.svg\" style=\"max-width: 100%;\"></a></li>\n</ul>\n\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Enjoy!</h2><a id=\"user-content-enjoy\" class=\"anchor\" aria-label=\"Permalink: Enjoy!\" href=\"#enjoy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/7047925426ada3416dffdad659552dd6b5fbbc86dfdec7ce37560102d1a1fb7e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834333439372d7374617475732e706e67\"><img src=\"https://camo.githubusercontent.com/7047925426ada3416dffdad659552dd6b5fbbc86dfdec7ce37560102d1a1fb7e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834333439372d7374617475732e706e67\" alt=\"redis status dark\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/1630655843497-status.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/b5fd3cf6b69d94b0a33a26393221ccceecca200c3aa584679a66a2c25b631647/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834343535392d7374722e706e67\"><img src=\"https://camo.githubusercontent.com/b5fd3cf6b69d94b0a33a26393221ccceecca200c3aa584679a66a2c25b631647/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834343535392d7374722e706e67\" alt=\"redis key hash dark\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/1630655844559-str.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/839b9de167e9dafd6bb17c379f4b4d9e99b5b53c4ca2eb672e3a68d75a1f81b2/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834363130372d636c692e706e67\"><img src=\"https://camo.githubusercontent.com/839b9de167e9dafd6bb17c379f4b4d9e99b5b53c4ca2eb672e3a68d75a1f81b2/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834363130372d636c692e706e67\" alt=\"redis console dark\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/1630655846107-cli.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/069966ba093ebbfef13fde002a78493bfc9c414b81ff90b19e30ab9746f18a67/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834373734302d6c6f672e706e67\"><img src=\"https://camo.githubusercontent.com/069966ba093ebbfef13fde002a78493bfc9c414b81ff90b19e30ab9746f18a67/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f313633303635353834373734302d6c6f672e706e67\" alt=\"redis exec log\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/1630655847740-log.png\" style=\"max-width: 100%;\"></a></p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Feature Log</h2><a id=\"user-content-feature-log\" class=\"anchor\" aria-label=\"Permalink: Feature Log\" href=\"#feature-log\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ul dir=\"auto\">\n<li>2024-04-10: DB custom name support</li>\n<li>2024-02-21: Java/Pickle viewers support</li>\n<li>2024-02-15: Groups/Consumers in STREAM view</li>\n<li>2024-01-31: Hey, long time! Command line(CLI) args support</li>\n<li>2023-06-22: Export\\Import keys support</li>\n<li>2023-05-26: Search support in Stream &amp;&amp; Slow log support</li>\n<li>2023-04-01: Search support in List &amp;&amp; Deflate raw support</li>\n<li>2022-10-07: Arrow Keys support in key list &amp;&amp; Memory Analysis in folder</li>\n<li>2022-08-05: Clone Connection &amp;&amp; Tabs Contextmenu\\Mousewheel Support</li>\n<li>2022-04-01: Protobuf Support &amp;&amp; Memory Analysis</li>\n<li>2022-03-03: Readonly Mode &amp;&amp; Mointor Support</li>\n<li>2022-01-24: Command Dump Support</li>\n<li>2022-01-05: Support To Load All Keys</li>\n<li>2022-01-01: Brotli\\Gzip\\Deflate Support &amp;&amp; RedisJSON Support</li>\n<li>2021-11-26: JSON Editable &amp;&amp; Subscribe Support</li>\n<li>2021-08-30: Execution log Support &amp;&amp; Add Hot Keys</li>\n<li>2021-08-16: Custom Formatter View Support!</li>\n<li>2021-06-30: Sentinel Support!!</li>\n<li>2021-06-24: ACL Support</li>\n<li>2021-05-03: Stream Support &amp;&amp; Cli Command Tips Support</li>\n<li>2021-02-28: Connection Color Tag &amp;&amp; Search History Support</li>\n<li>2021-02-03: Multiple Select\\Delete &amp;&amp; Msgpack Viewer Support</li>\n<li>2020-12-30: Tree View Support!!!</li>\n<li>2020-11-03: Binary View Support &amp;&amp; SSH Passparse\\Timeout Support</li>\n<li>2020-09-04: SSH Cluster Support &amp;&amp; Extension Commands Support</li>\n<li>2020-06-18: SSL/TLS Support!!!</li>\n<li>2020-04-28: Page Zoom &amp;&amp; Big Key Loads With Scan &amp;&amp; Auto Json</li>\n<li>2020-04-18: Unvisible Key\\Value Format Support</li>\n<li>2020-04-04: Cluster Support!!!</li>\n<li>2020-03-13: Dark Mode Support!!! &amp;&amp; JsonView In Other Place</li>\n<li>2020-02-16: SSH Private Key Support</li>\n<li>2020-02-13: Open Cli Console In Tabs</li>\n<li>2019-06-14: Custom Font-Family Support</li>\n<li>2019-05-28: Key List Resizable</li>\n<li>2019-05-09: Search Support In Hash List Set Zset</li>\n<li>2019-04-26: Auto Updater</li>\n<li>2019-04-09: SSH Tunnel Connection Support</li>\n<li>2019-04-01: Extract Search Support</li>\n<li>2019-02-22: Single Connection Support</li>\n<li>2019-01-08: Project Start</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Dev Build</h2><a id=\"user-content-dev-build\" class=\"anchor\" aria-label=\"Permalink: Dev Build\" href=\"#dev-build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Linux Or Mac</h3><a id=\"user-content-linux-or-mac\" class=\"anchor\" aria-label=\"Permalink: Linux Or Mac\" href=\"#linux-or-mac\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# clone code\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\ncd AnotherRedisDesktopManager\n\n# install dependencies\nnpm install\n\n# if download electron failed during installing, use this command\n# ELECTRON_MIRROR=&quot;https://npm.taobao.org/mirrors/electron/&quot; npm install\n\n# serve with hot reload at localhost:9988\nnpm start\n\n\n# after the previous step is completed to 100%, open another tab, build up a desktop client\nnpm run electron\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> clone code</span>\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\n<span class=\"pl-c1\">cd</span> AnotherRedisDesktopManager\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> install dependencies</span>\nnpm install\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> if download electron failed during installing, use this command</span>\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> ELECTRON_MIRROR=\"https://npm.taobao.org/mirrors/electron/\" npm install</span>\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> serve with hot reload at localhost:9988</span>\nnpm start\n\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> after the previous step is completed to 100%, open another tab, build up a desktop client</span>\nnpm run electron</pre></div>\n<p dir=\"auto\">If linux errors like this:</p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# if error like this\n../src/FontManagerLinux.cc:1:35: fatal error: fontconfig/fontconfig.h: No such file or directory\n\n# then try this\nsudo apt install libfontconfig1-dev\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> if error like this</span>\n../src/FontManagerLinux.cc:1:35: fatal error: fontconfig/fontconfig.h: No such file or directory\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> then try this</span>\nsudo apt install libfontconfig1-dev</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Windows</h3><a id=\"user-content-windows-1\" class=\"anchor\" aria-label=\"Permalink: Windows\" href=\"#windows-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# install build tools for the first time, just execute once\nnpm install -g windows-build-tools\n\n# clone code\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\ncd AnotherRedisDesktopManager\n\n# install dependencies, 32-bit or 64-bit all use win32\nnpm install --platform=win32\n\n# if download electron failed during installing, use this command\n# npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/\n# npm install --platform=win32\n\n# serve with hot reload at localhost:9988\nnpm start\n\n\n# after the previous step is completed to 100%, open another tab, build up a desktop client\nnpm run electron\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> install build tools for the first time, just execute once</span>\nnpm install -g windows-build-tools\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> clone code</span>\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\n<span class=\"pl-c1\">cd</span> AnotherRedisDesktopManager\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> install dependencies, 32-bit or 64-bit all use win32</span>\nnpm install --platform=win32\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> if download electron failed during installing, use this command</span>\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/</span>\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> npm install --platform=win32</span>\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> serve with hot reload at localhost:9988</span>\nnpm start\n\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> after the previous step is completed to 100%, open another tab, build up a desktop client</span>\nnpm run electron</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Build Package</h3><a id=\"user-content-build-package\" class=\"anchor\" aria-label=\"Permalink: Build Package\" href=\"#build-package\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# prepare before package\nnpm run pack:prepare\n\n# build package on respective platforms\n# on windows build 64bit package\nnpm run pack:win\n# on windows build 32bit package\nnpm run pack:win32\n\n# on mac\nnpm run pack:mac\n\n# on linux\nnpm run pack:linux\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> prepare before package</span>\nnpm run pack:prepare\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> build package on respective platforms</span>\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> on windows build 64bit package</span>\nnpm run pack:win\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> on windows build 32bit package</span>\nnpm run pack:win32\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> on mac</span>\nnpm run pack:mac\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> on linux</span>\nnpm run pack:linux</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Sponsor</h2><a id=\"user-content-sponsor\" class=\"anchor\" aria-label=\"Permalink: Sponsor\" href=\"#sponsor\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Give me a star ⭐ or upvote on <a href=\"https://www.producthunt.com/posts/another-redis-desktop-manager\" rel=\"nofollow\">Producthunt</a></p>\n</li>\n<li>\n<p dir=\"auto\">Through <a href=\"https://opencollective.com/AnotherRedisDesktopManager\" rel=\"nofollow\">OpenCollective</a></p>\n</li>\n<li>\n<p dir=\"auto\">If you are a Mac user, you can purchase this software from the <a href=\"https://apps.apple.com/app/id1516451072\" rel=\"nofollow\">app store</a> to sponsor, and then let the app store automatically update it for you.\n<br><a href=\"https://apps.apple.com/app/id1516451072\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bf07b7eac8aef6824dcd5ade9a7b7083219dacfdbcc7be91f0c5391510c03393/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f617661696c5f6170705f73746f72653138302e737667\" alt=\"app store\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/avail_app_store180.svg\" style=\"max-width: 100%;\"></a></p>\n</li>\n<li>\n<p dir=\"auto\">If you are a Windows user, you can purchase this software from the <a href=\"https://www.microsoft.com/store/apps/9MTD84X0JFHZ\" rel=\"nofollow\">win store</a> to sponsor.\n<br><a href=\"https://www.microsoft.com/store/apps/9MTD84X0JFHZ\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/3e5719fc5c3f23d91c3cb1a63a88fdcce43b4523a5937e98ca65e85447e81111/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f77696e646f77732d73746f72652d69636f6e3138322d35362e706e67\" alt=\"windows store\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/windows-store-icon182-56.png\" style=\"max-width: 100%;\"></a></p>\n</li>\n<li>\n<p dir=\"auto\">Wechat sponsor code [Sponsor me a cup of coffee ☕]</p>\n<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/11ddb690190bdd851e06fc9e8bee2e91d39ed95854c7cec210703a481d2e25dc/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f3230323130393033313635353830372e6a706567\"><img width=\"150px\" src=\"https://camo.githubusercontent.com/11ddb690190bdd851e06fc9e8bee2e91d39ed95854c7cec210703a481d2e25dc/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f7169736869626f2f696d672f3230323130393033313635353830372e6a706567\" data-canonical-src=\"https://cdn.jsdelivr.net/gh/qishibo/img/202109031655807.jpeg\" style=\"max-width: 100%;\"></a>\n</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Contributors</h2><a id=\"user-content-contributors\" class=\"anchor\" aria-label=\"Permalink: Contributors\" href=\"#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">This project exists thanks to all the people who contribute.\n<a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/graphs/contributors\"><img src=\"https://camo.githubusercontent.com/ac23ecf47ea548682619bae4ebc731b5cb2a019eb893ec11e33b8eba196652b0/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f416e6f7468657252656469734465736b746f704d616e616765722f636f6e7472696275746f72732e7376673f77696474683d38393026627574746f6e3d66616c7365\" alt=\"contributors\" data-canonical-src=\"https://opencollective.com/AnotherRedisDesktopManager/contributors.svg?width=890&amp;button=false\" style=\"max-width: 100%;\"></a>\n<a href=\"https://opencollective.com/AnotherRedisDesktopManager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b5f056673a25c0be0d8fb4633850ea2ee943aa54fd58e0491e3d060624031d64/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f416e6f7468657252656469734465736b746f704d616e616765722f6261636b6572732e737667\" alt=\"backers\" data-canonical-src=\"https://opencollective.com/AnotherRedisDesktopManager/backers.svg\" style=\"max-width: 100%;\"></a></p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Custom Viewer</h2><a id=\"user-content-custom-viewer\" class=\"anchor\" aria-label=\"Permalink: Custom Viewer\" href=\"#custom-viewer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<blockquote>\n<p dir=\"auto\">When the default viewer does not meet the needs, you can format your content via customize script.\n<br>Method: Pull down the viewer list to the bottom, click \"Custom -&gt; Add\", and then refer to the instructions below\n<br>Note: The script needs to output formatted content through <code>print</code> <code>console.log</code> <code>echo</code> etc., which can be any string or JSON string</p>\n</blockquote>\n<table>\n<thead>\n<tr>\n<th>Config</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Name</code></td>\n<td>Custom name</td>\n</tr>\n<tr>\n<td><code>Command</code></td>\n<td>Executable commands, such as <code>xxx.py</code> <code>xxx.js</code> <code>xxx.class</code> etc. The file needs <code>x</code> permission, which can be executed in the form of <code>./xxx.py</code>; It can also be set to <code>/bin/node</code> <code>/bin/bash</code> or other system commands, and the script path needs to be placed in Params</td>\n</tr>\n<tr>\n<td><code>Params</code></td>\n<td>Parameters spliced after <code>Command</code>, such as \"--key <code>{KEY}</code> --value <code>{VALUE}</code>\", where <code>{KEY}</code> and <code>{VALUE}</code> will be replaced with the corresponding Redis key and value. Note that if the content is invisible such as binary, you can use <code>{HEX}</code> instead of <code>{VALUE}</code>, and <code>{HEX}</code> will be replaced with the hexadecimal string</td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Configuration example:</h3><a id=\"user-content-configuration-example\" class=\"anchor\" aria-label=\"Permalink: Configuration example:\" href=\"#configuration-example\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<blockquote>\n<p dir=\"auto\">Add env to the first line of the script, the final executed command is: <code>./home/qii/pickle_decoder.py {HEX}</code>, the script can receive parameters via <code>argv[1]</code>, ref <a href=\"https://github.com/qishibo/AnotherRedisDesktopManager/issues/987#issuecomment-1294844707\" data-hovercard-type=\"issue\" data-hovercard-url=\"/qishibo/AnotherRedisDesktopManager/issues/987/hovercard\">#978</a></p>\n</blockquote>\n<table>\n<thead>\n<tr>\n<th>Command</th>\n<th>Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>/home/qii/pickle_decoder.py</code></td>\n<td><code>{HEX}</code></td>\n</tr>\n<tr>\n<td><code>/home/qii/shell_decoder.sh</code></td>\n<td><code>{VALUE}</code></td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Without execute permission <code>x</code>:</h3><a id=\"user-content-without-execute-permission-x\" class=\"anchor\" aria-label=\"Permalink: Without execute permission x:\" href=\"#without-execute-permission-x\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<blockquote>\n<p dir=\"auto\">The final executed command is: <code>/bin/node /home/qii/node_decoder.js {HEX} --key={KEY}</code>, the script can receive parameters via <code>argv[1]</code></p>\n</blockquote>\n<table>\n<thead>\n<tr>\n<th>Command</th>\n<th>Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>/bin/bash</code></td>\n<td><code>/home/qii/shell_decoder.sh {VALUE}</code></td>\n</tr>\n<tr>\n<td><code>/bin/node</code></td>\n<td><code>/home/qii/node_decoder.js {HEX} --key={KEY}</code></td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Start From Command Line(CLI)</h2><a id=\"user-content-start-from-command-linecli\" class=\"anchor\" aria-label=\"Permalink: Start From Command Line(CLI)\" href=\"#start-from-command-linecli\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<blockquote>\n<p dir=\"auto\">If you want to start from command line(CLI), you can pass args to the App.</p>\n</blockquote>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Examples</h3><a id=\"user-content-examples\" class=\"anchor\" aria-label=\"Permalink: Examples\" href=\"#examples\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# Linux\n# ./Another Redis Desktop Manager.AppImage\n\n# Mac\n# open /Applications/Another\\ Redis\\ Desktop\\ Manager.app --args\n\n# Windows\n&quot;D:\\xxxx\\Another Redis Desktop Manager.exe&quot;\n\n# COMMON\n--host 127.0.0.1 --port 6379 --auth 123\n--name tmp_connection\n\n# CLUSTER\n--cluster\n\n# SSH\n--ssh-host 192.168.0.110\n--ssh-username root --ssh-password 123\n\n# SENTINEL\n--sentinel-master-name mymaster\n--sentinel-node-password 123\n\n# save connection\n--save\n# readonly mode\n--readonly\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Linux</span>\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> ./Another Redis Desktop Manager.AppImage</span>\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Mac</span>\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> open /Applications/Another\\ Redis\\ Desktop\\ Manager.app --args</span>\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Windows</span>\n<span class=\"pl-s\"><span class=\"pl-pds\">\"</span>D:\\xxxx\\Another Redis Desktop Manager.exe<span class=\"pl-pds\">\"</span></span>\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> COMMON</span>\n--host 127.0.0.1 --port 6379 --auth 123\n--name tmp_connection\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> CLUSTER</span>\n--cluster\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> SSH</span>\n--ssh-host 192.168.0.110\n--ssh-username root --ssh-password 123\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> SENTINEL</span>\n--sentinel-master-name mymaster\n--sentinel-node-password 123\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> save connection</span>\n--save\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> readonly mode</span>\n--readonly</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Parameter Description</h3><a id=\"user-content-parameter-description\" class=\"anchor\" aria-label=\"Permalink: Parameter Description\" href=\"#parameter-description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Common</h4><a id=\"user-content-common\" class=\"anchor\" aria-label=\"Permalink: Common\" href=\"#common\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<table>\n<thead>\n<tr>\n<th>Args</th>\n<th>Description</th>\n<th>Args</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>--host</td>\n<td>Redis host*</td>\n<td>--port</td>\n<td>Redis port</td>\n</tr>\n<tr>\n<td>--auth</td>\n<td>Password</td>\n<td>--name</td>\n<td>Custom name</td>\n</tr>\n<tr>\n<td>--separator</td>\n<td>Key separator</td>\n<td>--readonly</td>\n<td>Enable readonly mode</td>\n</tr>\n<tr>\n<td>--username</td>\n<td>Username(Redis6 ACL)</td>\n<td>--save</td>\n<td>Enable saving, one-time link by default</td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">SSH</h4><a id=\"user-content-ssh\" class=\"anchor\" aria-label=\"Permalink: SSH\" href=\"#ssh\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<table>\n<thead>\n<tr>\n<th>Args</th>\n<th>Description</th>\n<th>Args</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>--ssh-host</td>\n<td>SSH host*</td>\n<td>--ssh-port</td>\n<td>SSH port(default:22)</td>\n</tr>\n<tr>\n<td>--ssh-username</td>\n<td>Username*</td>\n<td>--ssh-password</td>\n<td>Password</td>\n</tr>\n<tr>\n<td>--ssh-private-key</td>\n<td>Path of private key</td>\n<td>--ssh-passphrase</td>\n<td>Password of private key</td>\n</tr>\n<tr>\n<td>--ssh-timeout</td>\n<td>SSH timeout(s)</td>\n<td></td>\n<td> </td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">CLUSTER</h4><a id=\"user-content-cluster\" class=\"anchor\" aria-label=\"Permalink: CLUSTER\" href=\"#cluster\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<table>\n<thead>\n<tr>\n<th>Args</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>--cluster</td>\n<td>Enable CLUSTER mode</td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">SSL</h4><a id=\"user-content-ssl\" class=\"anchor\" aria-label=\"Permalink: SSL\" href=\"#ssl\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<table>\n<thead>\n<tr>\n<th>Args</th>\n<th>Description</th>\n<th>Args</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>--ssl</td>\n<td>Enable SSL*</td>\n<td>--ssl-key</td>\n<td>SSL Private Key Pem</td>\n</tr>\n<tr>\n<td>--ssl-ca</td>\n<td>SSL Certificate Authority</td>\n<td>--ssl-cert</td>\n<td>SSL Public Key Pem</td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">SENTINEL</h4><a id=\"user-content-sentinel\" class=\"anchor\" aria-label=\"Permalink: SENTINEL\" href=\"#sentinel\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<table>\n<thead>\n<tr>\n<th>Args</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>--sentinel-master-name</td>\n<td>Name of master group*,like 'mymaster'</td>\n</tr>\n<tr>\n<td>--sentinel-node-password</td>\n<td>Password of Redis node</td>\n</tr>\n</tbody>\n</table>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">FAQ</h2><a id=\"user-content-faq\" class=\"anchor\" aria-label=\"Permalink: FAQ\" href=\"#faq\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">1. How to connect to Redis Cluster in internal network (such as Docker, LAN, AWS)?</h4><a id=\"user-content-1-how-to-connect-to-redis-cluster-in-internal-network-such-as-docker-lan-aws\" class=\"anchor\" aria-label=\"Permalink: 1. How to connect to Redis Cluster in internal network (such as Docker, LAN, AWS)?\" href=\"#1-how-to-connect-to-redis-cluster-in-internal-network-such-as-docker-lan-aws\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Answer: Connect via <code>SSH+Cluster</code> (SSH to the internal network and then connecting to Cluster with internal IP such as <code>127.0.0.1</code>, <code>192.168.x.x</code>), you need to fill Redis Host with the internal IP.</p>\n<p dir=\"auto\">How to get Redis internal IP? Connect through SSH, uncheck Cluster option, and then open the console to execute <code>CLUSTER NODES</code>, select any IP in the result.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">2. Do I need to fill in the 'Username' in the Redis configuration?</h4><a id=\"user-content-2-do-i-need-to-fill-in-the-username-in-the-redis-configuration\" class=\"anchor\" aria-label=\"Permalink: 2. Do I need to fill in the 'Username' in the Redis configuration?\" href=\"#2-do-i-need-to-fill-in-the-username-in-the-redis-configuration\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Answer: The access control list (ACL) is only supported in <code>Redis&gt;=6.0</code>, so do not fill it unless you need a special user.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">License</h2><a id=\"user-content-license\" class=\"anchor\" aria-label=\"Permalink: License\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\"><a href=\"/qishibo/AnotherRedisDesktopManager/blob/master/LICENSE\">MIT</a></p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Support</h2><a id=\"user-content-support\" class=\"anchor\" aria-label=\"Permalink: Support\" href=\"#support\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\"><a href=\"https://goanother.com/\" rel=\"nofollow\">goanother.com</a>   <a href=\"https://www.producthunt.com/posts/another-redis-desktop-manager\" rel=\"nofollow\">Producthunt</a>   <a href=\"https://twitter.com/qii404\" rel=\"nofollow\">Twitter@shibo</a>   <a href=\"https://qii404.me/github-release-statistics/?repo=/qishibo/AnotherRedisDesktopManager/\" rel=\"nofollow\">Download Analysis</a></p>\n</article>",
"loaded": true,
"timedOut": false,
"errorMessage": null,
"headerInfo": {
"toc": [
{
"level": 1,
"text": "Another Redis Desktop Manager",
"anchor": "another-redis-desktop-manager",
"htmlText": "Another Redis Desktop Manager"
},
{
"level": 2,
"text": "Windows",
"anchor": "windows",
"htmlText": "Windows"
},
{
"level": 2,
"text": "Linux",
"anchor": "linux",
"htmlText": "Linux"
},
{
"level": 2,
"text": "Mac",
"anchor": "mac",
"htmlText": "Mac"
},
{
"level": 2,
"text": "Enjoy!",
"anchor": "enjoy",
"htmlText": "Enjoy!"
},
{
"level": 2,
"text": "Feature Log",
"anchor": "feature-log",
"htmlText": "Feature Log"
},
{
"level": 2,
"text": "Dev Build",
"anchor": "dev-build",
"htmlText": "Dev Build"
},
{
"level": 3,
"text": "Linux Or Mac",
"anchor": "linux-or-mac",
"htmlText": "Linux Or Mac"
},
{
"level": 3,
"text": "Windows",
"anchor": "windows-1",
"htmlText": "Windows"
},
{
"level": 3,
"text": "Build Package",
"anchor": "build-package",
"htmlText": "Build Package"
},
{
"level": 2,
"text": "Sponsor",
"anchor": "sponsor",
"htmlText": "Sponsor"
},
{
"level": 2,
"text": "Contributors",
"anchor": "contributors",
"htmlText": "Contributors"
},
{
"level": 2,
"text": "Custom Viewer",
"anchor": "custom-viewer",
"htmlText": "Custom Viewer"
},
{
"level": 3,
"text": "Configuration example:",
"anchor": "configuration-example",
"htmlText": "Configuration example:"
},
{
"level": 3,
"text": "Without execute permission x:",
"anchor": "without-execute-permission-x",
"htmlText": "Without execute permission x:"
},
{
"level": 2,
"text": "Start From Command Line(CLI)",
"anchor": "start-from-command-linecli",
"htmlText": "Start From Command Line(CLI)"
},
{
"level": 3,
"text": "Examples",
"anchor": "examples",
"htmlText": "Examples"
},
{
"level": 3,
"text": "Parameter Description",
"anchor": "parameter-description",
"htmlText": "Parameter Description"
},
{
"level": 4,
"text": "Common",
"anchor": "common",
"htmlText": "Common"
},
{
"level": 4,
"text": "SSH",
"anchor": "ssh",
"htmlText": "SSH"
},
{
"level": 4,
"text": "CLUSTER",
"anchor": "cluster",
"htmlText": "CLUSTER"
},
{
"level": 4,
"text": "SSL",
"anchor": "ssl",
"htmlText": "SSL"
},
{
"level": 4,
"text": "SENTINEL",
"anchor": "sentinel",
"htmlText": "SENTINEL"
},
{
"level": 2,
"text": "FAQ",
"anchor": "faq",
"htmlText": "FAQ"
},
{
"level": 4,
"text": "1. How to connect to Redis Cluster in internal network (such as Docker, LAN, AWS)?",
"anchor": "1-how-to-connect-to-redis-cluster-in-internal-network-such-as-docker-lan-aws",
"htmlText": "1. How to connect to Redis Cluster in internal network (such as Docker, LAN, AWS)?"
},
{
"level": 4,
"text": "2. Do I need to fill in the 'Username' in the Redis configuration?",
"anchor": "2-do-i-need-to-fill-in-the-username-in-the-redis-configuration",
"htmlText": "2. Do I need to fill in the 'Username' in the Redis configuration?"
},
{
"level": 2,
"text": "License",
"anchor": "license",
"htmlText": "License"
},
{
"level": 2,
"text": "Support",
"anchor": "support",
"htmlText": "Support"
}
],
"siteNavLoginPath": "/login?return_to=https%3A%2F%2Fgithub.com%2Fqishibo%2FAnotherRedisDesktopManager"
}
},
{
"displayName": "LICENSE",
"repoName": "AnotherRedisDesktopManager",
"refName": "master",
"path": "LICENSE",
"preferredFileType": "license",
"tabName": "MIT",
"richText": null,
"loaded": false,
"timedOut": false,
"errorMessage": null,
"headerInfo": {
"toc": null,
"siteNavLoginPath": "/login?return_to=https%3A%2F%2Fgithub.com%2Fqishibo%2FAnotherRedisDesktopManager"
}
},
{
"displayName": "SECURITY.md",
"repoName": "AnotherRedisDesktopManager",
"refName": "master",
"path": "SECURITY.md",
"preferredFileType": "security",
"tabName": "Security",
"richText": null,
"loaded": false,
"timedOut": false,
"errorMessage": null,
"headerInfo": {
"toc": null,
"siteNavLoginPath": "/login?return_to=https%3A%2F%2Fgithub.com%2Fqishibo%2FAnotherRedisDesktopManager"
}
}
],
"overviewFilesProcessingTime": 110.192945
}
},
"appPayload": {
"helpUrl": "https://docs.github.com",
"findFileWorkerPath": "/assets-cdn/worker/find-file-worker-a007d7f370d6.js",
"findInFileWorkerPath": "/assets-cdn/worker/find-in-file-worker-d0f0ff069004.js",
"githubDevUrl": null,
"enabled_features": {
"code_nav_ui_events": false,
"copilot_conversational_ux": false,
"react_blob_overlay": false,
"copilot_conversational_ux_embedding_update": false,
"copilot_popover_file_editor_header": true,
"copilot_smell_icebreaker_ux": true,
"copilot_workspace": false
}
}
}
}
{
"accept-ranges": "bytes",
"cache-control": "max-age=0, private, must-revalidate",
"content-encoding": "gzip",
"content-security-policy": "default-src 'none'; base-uri 'self'; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com api.githubcopilot.com objects-origin.githubusercontent.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/",
"content-type": "text/html; charset=utf-8",
"date": "Mon, 22 Apr 2024 10:21:28 GMT",
"etag": "73f337b84cfefb5e6862e72b60bc48da",
"referrer-policy": "no-referrer-when-downgrade",
"server": "GitHub.com",
"set-cookie": "logged_in=no; Path=/; Domain=github.com; Expires=Tue, 22 Apr 2025 10:21:28 GMT; HttpOnly; Secure; SameSite=Lax",
"strict-transport-security": "max-age=31536000; includeSubdomains; preload",
"transfer-encoding": "chunked",
"vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With",
"x-content-type-options": "nosniff",
"x-frame-options": "deny",
"x-github-request-id": "A0CA:214787:2FFF1D:48752E:66263A23",
"x-xss-protection": "0"
}