Start kivo, open http://localhost:3001, and paste any command below. Results render RESP-style (+OK, -ERR, :42, "value", arrays). No redis-cli. No client library. Nothing to install.
go run ./cmd/kivo (or docker run -p 6379:6379 -p 3001:3001 ghcr.io/itsmunim/kivo).http://localhost:3001 in your browser.GET it. It refreshes every 5 seconds.| Command | Expected |
|---|---|
PING | +PONG |
ECHO "hi" | "hi" |
DBSIZE | :0 (an empty key count) |
| Command | Expected |
|---|---|
SET name "alice smith" | +OK |
GET name | "alice smith" |
APPEND name "!" | :12 (new length) |
STRLEN name | :12 |
SET counter 10 | +OK |
INCR counter | :11 |
INCRBY counter 5 | :16 |
DECR counter | :15 |
MSET a 1 b 2 c 3 | +OK |
MGET a b c | array "1","2","3" |
| Command | Expected |
|---|---|
RPUSH tasks "write code" "review pr" "deploy" | :3 |
LPUSH tasks "kickoff" | :4 (now at head) |
LRANGE tasks 0 -1 | array of all 4 |
LRANGE tasks 0 1 | first 2 items |
LLEN tasks | :4 |
LINDEX tasks 1 | "write code" |
RPOP tasks | "deploy" |
LPOP tasks | "kickoff" |
LREM tasks 1 "review pr" | :1 |
LTRIM tasks 0 1 | +OK (keeps 2) |
| Command | Expected |
|---|---|
SADD tags go redis cache | :3 |
SADD tags go | :0 (already a member) |
SMEMBERS tags | array of 3 |
SISMEMBER tags redis | :1 |
SISMEMBER tags rust | :0 |
SCARD tags | :3 |
SPOP tags | one random member |
SADD a 1 2 3 · SADD b 2 3 4 | :3 each |
SINTER a b | "2","3" |
SUNION a b | "1","2","3","4" |
SDIFF a b | "1" |
| Command | Expected |
|---|---|
HSET user:1 name "Alice" email "a@x.io" age 30 | :3 |
HGET user:1 name | "Alice" |
HMGET user:1 name age | "Alice","30" |
HGETALL user:1 | flat array name/Alice/email/… |
HKEYS user:1 | name,email,age |
HVALS user:1 | Alice,a@x.io,30 |
HEXISTS user:1 email | :1 |
HLEN user:1 | :3 |
HINCRBY user:1 age 1 | -ERR (not in v1 command set — expected) |
| Command | Expected |
|---|---|
ZADD board 100 alice 200 bob 150 carol | :3 |
ZSCORE board alice | "100" |
ZRANGE board 0 -1 WITHSCORES | alice/100, carol/150, bob/200 (ascending) |
ZREVRANGE board 0 2 | bob,carol,alice (top 3) |
ZRANGEBYSCORE board 150 200 | carol,bob |
ZINCRBY board 50 alice | "150" |
ZCARD board | :3 |
ZCOUNT board 100 150 | :2 |
ZREMRANGEBYSCORE board 160 1000 | :1 (removes bob) |
| Command | Expected |
|---|---|
SET temp value EX 5 | +OK |
TTL temp | :4 or :5 (counts down) |
PEXPIRE temp 3000 | :1 |
PTTL temp | ~3000, decreasing |
PERSIST temp | :1 (removes TTL) |
TTL temp | :-1 (no expiry) |
EXISTS temp | :1 |
RENAME temp temp2 | +OK |
TYPE temp2 | string |
TYPE tasks | list |
TYPE user:1 | hash |
KEYS * | all keys |
KEYS t* | tasks, temp2, tags… |
| Command | Expected |
|---|---|
GET missingkey | (nil) |
LPUSH 42 | -ERR wrong number of arguments |
BOGUSCMD x | -ERR unknown command |
LPOP name | -ERR WRONGTYPE (name is a string) |
FLUSHDB | +OK (nuclear reset — clears all keys) |
FLUSHDB the keys panel empties and DBSIZE returns :0. Any unexpected -ERR elsewhere is a bug — report it at github.com/itsmunim/kivo/issues.