中文 | English
The Redis GUI that opens your million-key database without the spinner — native, GPU-accelerated with Rust 🦀 and GPUI ⚡️
zedis.mp4
Tired of Electron-based Redis clients that eat gigabytes of RAM just to display a JSON string, freeze the instant you open a key with 100,000 elements, turn cluster mode into a chore, or render your compressed and binary values as garbled bytes? We were too.
Zedis is built from the ground up for developers who demand native performance. Powered by GPUI (the same rendering engine behind the Zed Editor), Zedis delivers a native, buttery-smooth 60+ FPS experience with a minimal memory footprint — even when navigating massive databases.
- 🦀 Native, not Electron — every pixel on the GPU, virtual-scrolled
SCAN; millions of keys at 60+ FPS with tiny RAM. - 🧠 Understands your data — auto-decompresses and decodes JSON/JSONPath, Protobuf, MessagePack, Java / PHP / pickle serialization, BSON, JWT, Base64, URL encoding, timestamps, images and hex, with purpose-built viewers for every Redis type and module.
- 📊 Real-time observability — live metrics, a memory analyzer (offline + AI recommendations, server-side key-size histogram), hot-key tracking (
HOTKEYS), per-slot cluster stats, Slow Log ↔ Latency,MONITOR, and value search. - 🔐 Privacy-first & safe — metadata stays in a local file, secrets are encrypted with a per-machine key, and destructive actions escalate their confirms on production.
- 🌐 Connect anything — TLS/SSL, SSH tunnels (incl. passphrase-protected keys), Cluster/Sentinel, import from Redis Insight / ARDM / Tiny RDM, and 8 UI languages.
- ⌨️ Built for power users — ⌘K command palette, redis-cli with completion, table/JSON replies + AI command assistant, batch mode, and cross-server copy/diff.
Paste its database export and every connection lands at once — no re-entering hosts, ports, and passwords one by one. Point Zedis at your real setup in about a minute, then judge the speed for yourself.
![]() |
![]() |
![]() |
| Key browser & data viewer | Memory analyzer | Live metrics |
![]() |
![]() |
![]() |
| Geo map | Vector Set + KNN | Command palette (⌘K) |
| Area | What's inside |
|---|---|
| 🚀 Native & Fast | GPU rendering · virtual-scrolled SCAN, 60+ FPS on millions of keys · macOS / Windows / Linux · Light / Dark / System + 6 bundled themes · configurable UI & monospace fonts |
| 🧠 Smart Data Viewer | Auto-decompress (LZ4 / Snappy / GZIP / ZSTD) · JSON & RedisJSON + JSONPath · Protobuf · MessagePack · Java / PHP / pickle serialization · BSON · JWT · Base64 · URL encoding · timestamps · images · hex · custom script viewer — inside Hash / List / Set / ZSet elements too, where the stored bytes stay what is edited |
| 🗂️ Type & Module Viewers | Bitmap (BITOP) · HyperLogLog (PFMERGE) · Vector Set (KNN) · Geo map (GEOADD / GEODIST, radius + box search) · Bloom / Cuckoo / Count-Min / Top-K · Time Series (TS.ADD / TS.ALTER / compaction rules, plus a multi-series TS.MRANGE explorer) · Streams (live-tail, XSETID, consumer admin) · Pub/Sub (incl. sharded) · RediSearch (index size, FT.TAGVALS values, FT.SPELLCHECK suggestions) · Functions |
| 📊 Observability | Live metrics + 7-day history with CSV export · MEMORY DOCTOR / MEMORY STATS and LATENCY DOCTOR reports · memory analyzer (live scan or offline RDB file) with type/encoding shares and drill-down prefixes + AI tips · Slow Log ↔ Latency (+ Valkey COMMANDLOG size logs) · MONITOR · value search · cluster health, slot reshard / repair / rebalance · primary/replica replication (REPLICAOF / FAILOVER) · persistence & keyspace events · typed CONFIG editor (+ CONFIG REWRITE) · raw INFO browser |
| 🔑 Keys & Data | Namespace tree with TTL chips · paginated Hash / List / Set / ZSet editors (HSCAN/SSCAN/ZSCAN) · multi-select batch delete · type-native ops (LTRIM / LPOP / ZINCRBY / ZPOPMIN / HINCRBY / INCRBY / APPEND / GETEX) · ZSet score-range filter (ZRANGEBYSCORE) · tags / notes / favorites · rename · field-level TTL · absolute expiry (EXPIREAT) · storage encoding / idle time in the key bar · version history · session change log with structured diff for collections · find & replace in the value editor · JSON tree view with path-level ops (JSON.SET / JSON.DEL / JSON.NUMINCRBY / JSON.TOGGLE / JSON.ARRAPPEND / JSON.STRAPPEND / JSON.CLEAR — applied locally for a plain string holding JSON) · JSON check, format & minify before save · local recycle bin (24h) · file import/export · bulk ops (Tools export, prefix filter, binary / JSON / CSV) · cross-server copy & diff — one key, or a whole prefix: bulk copy straight through DUMP/RESTORE and a two-database compare |
| 🔐 Security & Privacy | Env tags with PROD-escalated confirms · read-only lock · ACL editor with security log, dry-run tester, ACL GENPASS and aclfile save/load · TLS/SSL & SSH · staged connection diagnostics · self-healing link with Sentinel/Cluster failover · per-machine encrypted secrets · local-only, no telemetry |
| 🧭 Limited servers | Capability probe after connect: proxies (Twemproxy / Codis / Envoy), managed clouds (ElastiCache / Azure / Tair) and Redis-compatible servers (Valkey / Dragonfly / KeyDB / Kvrocks) get panels and buttons greyed out with the reason (CONFIG GET missing, SLOWLOG denied) instead of failing · key editor keeps working without SCAN · the full command matrix lives under Tools → Server capabilities |
| ⌨️ Productivity | Multi-connection workspace tabs · ⌘K palette · ⌘P recent keys · ⌘⇧F multi-database key search · ⌘/ shortcut reference · custom keybindings (keybindings.toml) · ⌘+/− zoom · one instance per profile + redis:// links · redis-cli with per-server history, completion & Ctrl+R search · AI command assistant (? in terminal) · multi-line batch mode · Lua script library · opt-out update check with checksum-verified download (+ pre-release / nightly channel) · time zone & date format · local-data backup (tags, favorites, scripts) · optional system tray (macOS / Windows) · HTTP / SOCKS5 proxy for the app's own requests · rotating file logs · Export Diagnostics (one zip: logs, crash reports, redacted config, connection state) |
🔐 Where connection secrets live: passwords and SSH keys are encrypted with a random per-machine key — kept in the macOS Keychain or Windows Credential Manager, and in a
0600-permission key file under the config dir on Linux (no Secret Service / D-Bus dependency, so it works headless too). The key never leaves the machine, so a copied config won't decrypt elsewhere — use the passphrase-protected export to move connections between machines.
Ready to feel the speed? Install Zedis via your favorite package manager:
The recommended way to install Zedis is via Homebrew:
brew install --cask zedisscoop bucket add extras
scoop install zedisThe .msi and the .exe in the .zip are Authenticode-signed — see the Code signing policy.
Arch Linux (AUR):
yay -S zedis-binOther distributions: .deb, .rpm, an AppImage and a plain tarball (x86_64 and aarch64) are attached to every release.
Note: Zedis depends on an unreleased (git) version of GPUI, which crates.io doesn't allow — so the latest version can't be published to crates.io, and the crates.io build may lag behind. For the newest version, prefer Homebrew / Scoop / the AUR above or a release download; to build from source, use the
--gitcommand below.
# From crates.io — may be an older version (see note above)
cargo install --locked zedis-gui
# Latest: build straight from GitHub (resolves the git dependencies)
cargo install --git https://github.com/vicanso/zedis --locked zedis-guiFree code signing provided by SignPath.io, certificate by SignPath Foundation.
The Windows binaries attached to each release — zedis-windows-*.msi and the zedis.exe inside zedis-windows-*.zip — are Authenticode-signed with the SignPath Foundation certificate. What gets signed is exactly what GitHub Actions built from the tagged commit of this repository (publish.yml), and every release is approved by hand before it is signed. macOS builds are signed and notarized separately with the maintainer's Apple Developer ID.
Team
Changes from outside the team arrive as pull requests and are reviewed by a committer before they are merged.
Privacy policy
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it, with two exceptions, both under your control:
- Update check. On startup, at most once every two days, Zedis downloads the release manifest from GitHub Releases to learn whether a newer version exists. The request carries nothing but the app version in its
User-Agent— nothing about you, your machine or your data. Turn it off with Settings → Check for Updates Automatically; a new version is only downloaded when you click Update. - AI assistant. Only after you enter an endpoint under Settings → AI Base URL, the text you explicitly hand it — a command description, a memory report — is sent to that endpoint and nowhere else.
Your Redis servers, SSH tunnels and the optional proxy connect only where you point them. Zedis has no telemetry and sends no crash reports: they stay on disk until you export a diagnostics bundle yourself.
We want to make Zedis the ultimate Redis client, and we'd love your help! Whether it's adding new features, translating the UI, or fixing bugs, all contributions are welcome.
Open an issue or a PR to get started. By submitting a PR, you agree to our lightweight Contributor License Agreement (CLA).
Zedis is open-source software licensed under the Apache License, Version 2.0.





