Cache

Manage a local key-value cache store using bash and Python. Use when caching API responses, session data, or computed results with TTL support.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 124 · 0 current installs · 0 all-time installs
bybytesagain4@xueyetianya
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (local key-value cache with TTL) matches the provided script and SKILL.md: commands (set/get/list/flush/ttl/stats/import/export/search/config) and storage in ~/.cache-tool are coherent with the stated purpose.
Instruction Scope
Runtime instructions direct the agent to run bash scripts/script.sh and the script persistently writes/reads files under ~/.cache-tool (data.jsonl and config.json). This is expected for a cache tool, but users should note that data is stored on disk and 'get' prints raw values to stdout. The script exports ARGS into the environment for embedded Python parsers, which may affect how argument quoting/spaces are handled.
Install Mechanism
No install spec or external downloads; the skill is instruction-only with a bundled script. Nothing is fetched from remote URLs or installed system-wide.
Credentials
The skill declares no required environment variables or credentials and the script only uses internally-defined DATA_FILE/CONFIG_FILE derived from $HOME. No unrelated secrets or external service credentials are requested.
Persistence & Privilege
The skill is user-invocable and not 'always:true'. It creates and writes files under the user's home directory (~/.cache-tool). This is normal for a local cache but does mean persistent data will remain on disk until removed.
Assessment
This skill appears to do exactly what it says: a lightweight, local file-backed cache. Before installing, be aware that (1) it creates and maintains data/config files in ~/.cache-tool which will persist on disk; (2) 'get' prints raw stored values (so do not store secrets you don't want exposed); (3) the tool does not request or use external credentials or network access; and (4) the script uses simple file writes without locking, so concurrent access could result in races. If you need to store sensitive data, consider encrypting values or using a different secure store. If you want absolute assurance, review the full script (scripts/script.sh) for the remaining truncated sections before use.

Like a lobster shell, security has layers — review code before you run it.

Current versionv2.0.0
Download zip
latestvk97dmp03tj41avgebh9tfhn0nn835x8f

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Cache — Local Key-Value Cache Manager

A lightweight, file-backed key-value cache with TTL (time-to-live) support, search, bulk import/export, and statistics. Ideal for caching API responses, computed results, or any ephemeral data that benefits from quick local retrieval.

Prerequisites

  • Python 3.6+
  • Bash 4+

Data Storage

Cache entries are stored in ~/.cache-tool/data.jsonl (note: uses cache-tool to avoid conflicts with ~/.cache). Each line is a JSON object with fields: key, value, ttl, created_at, expires_at, tags, etc.

Configuration lives in ~/.cache-tool/config.json.

Commands

Run via: bash scripts/script.sh <command> [options]

CommandDescription
setStore a key-value pair with optional TTL and tags
getRetrieve the value for a given key
deleteRemove a key from the cache
listList all cache entries (with optional tag filter)
flushDelete all cache entries or those matching a pattern
ttlCheck or update the TTL for an existing key
statsShow cache statistics (size, hit/miss ratio, memory)
exportExport the cache to a JSON file
importImport cache entries from a JSON file
searchSearch keys or values by substring or regex
configView or update cache settings (default TTL, max size)
helpShow usage information
versionPrint the tool version

Usage Examples

# Set a simple key-value pair
bash scripts/script.sh set --key api_response --value '{"status":"ok"}' --ttl 3600

# Set with tags
bash scripts/script.sh set --key user:42 --value '{"name":"Kelly"}' --tags user,profile

# Get a value
bash scripts/script.sh get --key api_response

# Delete a key
bash scripts/script.sh delete --key old_data

# List all entries
bash scripts/script.sh list

# List entries by tag
bash scripts/script.sh list --tag user

# Check remaining TTL
bash scripts/script.sh ttl --key api_response

# Update TTL
bash scripts/script.sh ttl --key api_response --set 7200

# Flush all entries
bash scripts/script.sh flush

# Flush by pattern
bash scripts/script.sh flush --pattern "user:*"

# Search by key pattern
bash scripts/script.sh search --query "api_" --field key

# Show cache stats
bash scripts/script.sh stats

# Export cache
bash scripts/script.sh export --output cache_backup.json

# Import cache
bash scripts/script.sh import --input cache_backup.json

# Configure defaults
bash scripts/script.sh config --set default_ttl=3600 --set max_entries=10000

Notes

  • Expired entries are lazily cleaned: they are skipped on get and purged during flush or stats.
  • The search command supports both simple substring matching and Python regex patterns.
  • import merges entries; existing keys are overwritten.
  • stats reports total entries, expired count, active count, and approximate data size.

Output Format

get returns the raw value to stdout. All other commands return JSON objects with status and metadata.


Powered by BytesAgain | bytesagain.com | hello@bytesagain.com

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…