ASD

Upstash Redis Kv

Lee y escribe en el almacén clave-valor compatible con Redis de Upstash vía su REST API, para cachés, contadores, listas, sets, hashes y sorted sets.

Estrellas
281

en todo el repo

Actividad
28

0–100, la ruta de este skill

Actualizado
hace 6 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
2.8k tok

75 tok en reposo

Paquete
2 archivos

32 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add intellectronica/agent-skills --skill upstash-redis-kv --agent claude-code

Se instala solo en este repositorio.

Este skill makes network requests, needs API credentials.

Qué hace

  • Ejecuta comandos de Redis (strings, hashes, lists, sets, sorted sets, claves, servidor) vía la REST API de Upstash usando scripts/upstash-client.ts con bun run
  • Pide confirmación antes de operaciones de escritura, modificación o borrado, salvo que se active el modo YOLO
  • Permite sobreescribir credenciales de entorno con las flags --url y --token
  • Formatea la salida: valores string directos, (nil) para nulos, JSON con formato para objetos/arrays

Úsalo cuando

  • El usuario pide explícitamente guardar o recuperar datos en Upstash/Redis
  • Se necesita persistir datos entre conversaciones o sesiones
  • Se implementa caching, contadores, rate limits, leaderboards, colas, tags o almacenamiento de objetos estructurados
  • Se necesita almacenamiento clave-valor rápido para la interacción actual

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Guarda esta preferencia de usuario en Redis con Upstash
    • Crea un leaderboard con sorted sets en Upstash
    • Incrementa el contador de visitas en Redis
    • Activa YOLO mode y borra todas las claves de sesión expiradas
    • Consulta el TTL de la clave session:abc

    SKILL.md

    En inglés

    Upstash Redis Key-Value Store

    Interact with Upstash's Redis-compatible key-value store using the REST interface.

    Script Location

    bun run scripts/upstash-client.ts <command> [args...]
    

    IMPORTANT: Always run with bun run, not directly.

    Configuration

    Environment Variables

    The script uses these environment variables by default:

    • UPSTASH_REDIS_REST_URL - The Upstash REST API URL
    • UPSTASH_REDIS_REST_TOKEN - The Upstash REST API token

    Overriding Credentials

    If the user provides credentials from another source (conversation context, a file, etc.), use the --url and --token flags to override environment variables:

    bun run scripts/upstash-client.ts --url "https://..." --token "AX..." GET mykey
    

    Priority: Command-line flags > Environment variables

    Command Reference

    String Commands

    # Get/Set
    GET <key>
    SET <key> <value> [--ex seconds] [--px ms] [--nx] [--xx] [--keepttl] [--get]
    SETNX <key> <value>                    # Set if not exists
    SETEX <key> <seconds> <value>          # Set with expiration
    
    # Multiple keys (key/value pairs)
    MGET <key1> [key2...]
    MSET <key1> <val1> [key2 val2...]
    MSETNX <key1> <val1> [key2 val2...]    # Set all if none exist
    
    # Counters
    INCR <key>
    INCRBY <key> <increment>
    INCRBYFLOAT <key> <increment>
    DECR <key>
    DECRBY <key> <decrement>
    
    # String manipulation
    APPEND <key> <value>
    STRLEN <key>
    GETRANGE <key> <start> <end>
    SETRANGE <key> <offset> <value>
    

    Hash Commands

    Hashes store field-value pairs. Pass fields and values as alternating arguments:

    # Set hash fields (field/value pairs)
    HSET <key> <field1> <val1> [field2 val2...]
    HSETNX <key> <field> <value>           # Set field if not exists
    
    # Get hash fields
    HGET <key> <field>
    HMGET <key> <field1> [field2...]
    HGETALL <key>
    
    # Hash operations
    HDEL <key> <field1> [field2...]
    HEXISTS <key> <field>
    HKEYS <key>
    HVALS <key>
    HLEN <key>
    HINCRBY <key> <field> <increment>
    HINCRBYFLOAT <key> <field> <increment>
    HSCAN <key> <cursor> [MATCH pattern] [COUNT count]
    

    Examples:

    # Store user data
    bun run scripts/upstash-client.ts HSET user:1 name "John" email "john@example.com" age 30
    
    # Get single field
    bun run scripts/upstash-client.ts HGET user:1 name
    
    # Get all fields
    bun run scripts/upstash-client.ts HGETALL user:1
    
    # Increment numeric field
    bun run scripts/upstash-client.ts HINCRBY user:1 age 1
    

    List Commands

    Lists are ordered collections. Values are pushed/popped from left (head) or right (tail):

    # Push elements
    LPUSH <key> <val1> [val2...]           # Push to head
    RPUSH <key> <val1> [val2...]           # Push to tail
    LPUSHX <key> <val1> [val2...]          # Push if list exists
    RPUSHX <key> <val1> [val2...]
    
    # Pop elements
    LPOP <key> [count]
    RPOP <key> [count]
    
    # Access elements
    LRANGE <key> <start> <stop>            # Get range (0 = first, -1 = last)
    LLEN <key>
    LINDEX <key> <index>
    
    # Modify
    LSET <key> <index> <value>
    LREM <key> <count> <value>             # Remove count occurrences
    LTRIM <key> <start> <stop>             # Keep only range
    LINSERT <key> <BEFORE|AFTER> <pivot> <value>
    LPOS <key> <value>
    LMOVE <src> <dst> <LEFT|RIGHT> <LEFT|RIGHT>
    

    Examples:

    # Create a task queue
    bun run scripts/upstash-client.ts RPUSH tasks "task1" "task2" "task3"
    
    # Get all tasks
    bun run scripts/upstash-client.ts LRANGE tasks 0 -1
    
    # Pop task from front (FIFO queue)
    bun run scripts/upstash-client.ts LPOP tasks
    
    # Pop task from back (LIFO stack)
    bun run scripts/upstash-client.ts RPOP tasks
    

    Set Commands

    Sets store unique, unordered members:

    # Add/remove members
    SADD <key> <member1> [member2...]
    SREM <key> <member1> [member2...]
    
    # Query
    SMEMBERS <key>
    SISMEMBER <key> <member>
    SMISMEMBER <key> <member1> [member2...]
    SCARD <key>
    
    # Random access
    SPOP <key> [count]
    SRANDMEMBER <key> [count]
    
    # Set operations
    SINTER <key1> [key2...]
    SINTERSTORE <dest> <key1> [key2...]
    SUNION <key1> [key2...]
    SUNIONSTORE <dest> <key1> [key2...]
    SDIFF <key1> [key2...]
    SDIFFSTORE <dest> <key1> [key2...]
    SMOVE <src> <dst> <member>
    SSCAN <key> <cursor> [MATCH pattern] [COUNT count]
    

    Examples:

    # Add tags
    bun run scripts/upstash-client.ts SADD article:1:tags "javascript" "redis" "nodejs"
    
    # Check membership
    bun run scripts/upstash-client.ts SISMEMBER article:1:tags "javascript"
    
    # Get all members
    bun run scripts/upstash-client.ts SMEMBERS article:1:tags
    
    # Find common tags between articles
    bun run scripts/upstash-client.ts SINTER article:1:tags article:2:tags
    

    Sorted Set Commands

    Sorted sets store members with scores for ranking:

    # Add members (score/member pairs)
    ZADD <key> <score1> <member1> [score2 member2...] [--nx] [--xx] [--gt] [--lt] [--ch]
    
    # Remove
    ZREM <key> <member1> [member2...]
    ZREMRANGEBYRANK <key> <start> <stop>
    ZREMRANGEBYSCORE <key> <min> <max>
    
    # Scores and ranks
    ZSCORE <key> <member>
    ZMSCORE <key> <member1> [member2...]
    ZRANK <key> <member>                   # Rank (low to high)
    ZREVRANK <key> <member>                # Rank (high to low)
    ZINCRBY <key> <increment> <member>
    
    # Range queries
    ZRANGE <key> <start> <stop> [--withscores] [--rev] [--byscore] [--bylex]
    ZRANGEBYSCORE <key> <min> <max> [--withscores] [--limit off,count]
    ZREVRANGE <key> <start> <stop> [--withscores]
    ZREVRANGEBYSCORE <key> <max> <min> [--withscores] [--limit off,count]
    
    # Counting
    ZCARD <key>
    ZCOUNT <key> <min> <max>
    
    # Pop
    ZPOPMIN <key> [count]
    ZPOPMAX <key> [count]
    
    # Set operations
    ZINTERSTORE <dest> <numkeys> <key1> [key2...]
    ZUNIONSTORE <dest> <numkeys> <key1> [key2...]
    ZSCAN <key> <cursor> [MATCH pattern] [COUNT count]
    

    Examples:

    # Create leaderboard (score member pairs)
    bun run scripts/upstash-client.ts ZADD leaderboard 1000 "player1" 1500 "player2" 1200 "player3"
    
    # Get top 3 with scores (highest first)
    bun run scripts/upstash-client.ts ZRANGE leaderboard 0 2 --rev --withscores
    
    # Get player's rank
    bun run scripts/upstash-client.ts ZREVRANK leaderboard "player2"
    
    # Increment player's score
    bun run scripts/upstash-client.ts ZINCRBY leaderboard 100 "player1"
    
    # Get players with scores between 1000 and 1500
    bun run scripts/upstash-client.ts ZRANGEBYSCORE leaderboard 1000 1500 --withscores
    

    Key Commands

    # Delete
    DEL <key1> [key2...]
    UNLINK <key1> [key2...]                # Async delete
    
    # Existence/Type
    EXISTS <key1> [key2...]
    TYPE <key>
    
    # Expiration
    EXPIRE <key> <seconds>
    EXPIREAT <key> <timestamp>
    PEXPIRE <key> <milliseconds>
    PEXPIREAT <key> <timestamp>
    TTL <key>
    PTTL <key>
    PERSIST <key>                          # Remove expiration
    
    # Rename
    RENAME <key> <newkey>
    RENAMENX <key> <newkey>
    
    # Search
    KEYS <pattern>                         # Use with caution in production
    SCAN <cursor> [MATCH pattern] [COUNT count]
    
    # Other
    COPY <src> <dst>
    DUMP <key>
    TOUCH <key1> [key2...]
    RANDOMKEY
    OBJECT ENCODING|FREQ|IDLETIME|REFCOUNT <key>
    

    Examples:

    # Set key with 1 hour expiration
    bun run scripts/upstash-client.ts SET session:abc "data"
    bun run scripts/upstash-client.ts EXPIRE session:abc 3600
    
    # Or in one command
    bun run scripts/upstash-client.ts SET session:abc "data" --ex 3600
    
    # Check TTL
    bun run scripts/upstash-client.ts TTL session:abc
    
    # Scan keys matching pattern
    bun run scripts/upstash-client.ts SCAN 0 MATCH "user:*" COUNT 100
    

    Server Commands

    PING [message]
    ECHO <message>
    DBSIZE
    TIME
    INFO [section]
    FLUSHDB                                # Delete all keys in current DB (DANGEROUS)
    FLUSHALL                               # Delete all keys in all DBs (DANGEROUS)
    

    Command Options

    SET Options

    --ex <seconds>     # Expire in seconds
    --px <ms>          # Expire in milliseconds
    --exat <ts>        # Expire at Unix timestamp (seconds)
    --pxat <ts>        # Expire at Unix timestamp (ms)
    --nx               # Only set if key does not exist
    --xx               # Only set if key exists
    --keepttl          # Retain existing TTL
    --get              # Return old value
    

    ZADD Options

    --nx               # Only add new members
    --xx               # Only update existing members
    --gt               # Only update if new score > current
    --lt               # Only update if new score < current
    --ch               # Return number of changed elements
    

    ZRANGE Options

    --withscores       # Include scores in output
    --byscore          # Range by score instead of rank
    --bylex            # Range by lexicographical order
    --rev              # Reverse order
    --limit off,count  # Limit results (e.g., --limit 0,10)
    

    Output Format

    • String values: Printed directly
    • null/nil: Prints (nil)
    • Objects/arrays: Pretty-printed as JSON

    Confirmation Behaviour

    Default: Ask for Confirmation

    Before executing any destructive operation (write, modify, or delete), you MUST ask the user for confirmation. This includes:

    Write operations:

    • SET, SETNX, SETEX, PSETEX, MSET, MSETNX
    • HSET, HSETNX
    • LPUSH, RPUSH, LPUSHX, RPUSHX, LSET, LINSERT
    • SADD
    • ZADD

    Modify operations:

    • INCR, INCRBY, INCRBYFLOAT, DECR, DECRBY
    • APPEND, SETRANGE
    • HINCRBY, HINCRBYFLOAT
    • LREM, LTRIM, LMOVE
    • ZINCRBY

    Delete operations:

    • DEL, UNLINK
    • HDEL
    • LPOP, RPOP
    • SREM, SPOP, SMOVE
    • ZREM, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZPOPMIN, ZPOPMAX
    • FLUSHDB, FLUSHALL (extra caution)

    TTL/Rename operations:

    • EXPIRE, EXPIREAT, PEXPIRE, PEXPIREAT, PERSIST
    • RENAME, RENAMENX

    Example confirmation prompt:

    "I'm about to HSET user:1 with fields {name: "John", email: "john@example.com"}. Proceed?"

    YOLO Mode: Skip Confirmation

    If the user indicates they do not want to be asked for confirmation, respect this for all subsequent operations. Indicators include:

    • "YOLO mode"
    • "Don't ask for confirmation"
    • "You're free to make changes without asking"
    • "Just do it"
    • "No need to confirm"
    • "Auto-approve" or "auto-confirm"
    • Any similar phrasing indicating blanket approval

    Once YOLO mode is activated, proceed with destructive operations without asking, but still inform the user what was done.

    Example:

    Set user:1 with {name: "John", email: "john@example.com"} - done.

    Error Handling

    If credentials are missing or invalid, the script will exit with an error message. Ensure the user has configured either:

    1. Environment variables (UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN)
    2. Or provides credentials via --url and --token flags

    When to Use This Skill

    • User explicitly asks to store or retrieve data from Upstash/Redis
    • Need to persist data across conversations or sessions
    • Implementing caching for expensive operations
    • Maintaining counters, rate limits, or statistics
    • Storing user preferences or session data
    • Building leaderboards or rankings (sorted sets)
    • Managing queues or task lists (lists)
    • Tagging or categorisation (sets)
    • Storing structured objects (hashes)
    • Any scenario requiring fast key-value storage

    Reproducido de intellectronica/agent-skills bajo licencia CC0-1.0. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere bun y las credenciales UPSTASH_REDIS_REST_URL y UPSTASH_REDIS_REST_TOKEN (o las flags --url y --token).

    Necesita en el PATH:bun

    Variables de entorno:UPSTASH_REDIS_REST_TOKENUPSTASH_REDIS_REST_URL

    Detalles

    Categoría
    Bases de datos
    Licencia
    CC0-1.0
    Recursos incluidos
    scripts en typescript
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de intellectronica/agent-skills

    Este repo incluye 22 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo cuando el usuario quiera operar Google Workspace desde la línea de comandos con gog/gogcli: Gmail, Calendar, Drive, Docs, Sheets, Slides, Forms, Apps Script, Chat, Classroom, Contacts, Tasks, Groups, Admin, Keep y auth.

    Costo de contexto al activarse
    2.2k tok
    Tamaño del paquete
    9 archivos
    Última actualización
    hace 3 meses
    automatizacion

    Úsalo para leer o buscar notas de Monologue mediante su API REST: autenticación con MONOLOGUE_API_KEY, listado, paginación, filtros y manejo de errores, todo por HTTP directo con curl.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 3 meses
    desarrollo apis

    Ayuda con el trabajo del GitHub Copilot SDK en Node.js/TypeScript, Python, Go, .NET y Java: setup, autenticación, permisos, streaming, tools personalizadas, custom agents, servidores MCP, hooks, skills y persistencia de sesiones.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    5 archivos
    Última actualización
    hace 4 meses
    desarrollo apis

    Genera y edita imágenes con Nano Banana 2 (Gemini 3.1 Flash Image Preview) de Google, para iteración rápida y control de aspect-ratio y resolución de 512px a 4K.

    Costo de contexto al activarse
    977 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 5 meses
    diseno ui

    Inicializa un repositorio git con instrucciones opcionales de commit para el agente y un .gitignore.

    Costo de contexto al activarse
    790 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Instrucciones para interactuar con Todoist mediante la CLI td: operaciones CRUD sobre tareas, proyectos, secciones, etiquetas y comentarios, con confirmación previa a acciones destructivas.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 6 meses
    productividad

    Skills relacionados

    Skill de generación de imágenes para conceptos premium de pantallas de apps móviles (iOS, Android, cross-platform), con mockups de teléfono, jerarquía limpia y consistencia multi-pantalla. Solo genera imágenes, no código.'

    Costo de contexto al activarse
    10.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 3 meses
    diseno ui

    Skill de sistema de diseño semántico para Google Stitch. Genera DESIGN.md que imponen estándares de UI premium anti-genéricos: tipografía, color, layouts asimétricos, micro-movimiento perpetuo y rendimiento.

    Costo de contexto al activarse
    3k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    diseno ui

    Skill anti-slop para frontend: landing pages, portafolios y rediseños. El agente lee el brief, infiere la dirección de diseño correcta y evita interfaces que parezcan plantillas genéricas.

    Costo de contexto al activarse
    21.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    diseno ui