Kasher

Kasher is a CLI tool for defining and running shell commands and caching their responses. Designed to reduce wait times for simple fetch commands that are slow, rate-limited, or rarely change — such as retrieving Kubernetes pod info (kubectl get pods).

Kasher stores cacheable shell commands as "tasks". Once a task is stored it can be run directly: kasher <taskName>. Tasks are assigned an expiration — when executed before expiration the cache is used; after expiration a new request is made and cached.

kasher terminal demo

Features

  • Define named tasks that wrap shell commands
  • Cache task output for a set expiration time (supports 10m, 1h, 2h30m, etc.)
  • Interactive task definition flow via subcommands

Usage

Capture a slow or rate-limited command as a task:

$ kasher task create

Provide data at the prompts:

Name: myTask
Shell command: aws s3 ls
Cache expiration: 20s
Notes (optional): just an example

Now call it as often as you need:

$ kasher myTask

Task actions

  • kasher task create [name] — interactively create a new task
  • kasher task createFor <command> — create a task for a given shell command
  • kasher task update — update an existing task
  • kasher task delete — delete a task
  • kasher task list — list all tasks
  • kasher task clearAll — delete all tasks and settings

Flags

  • --force / -f — force cache refresh regardless of expiration
  • --clear-timestamp / -c — clear last fetch timestamp, triggering refresh on next run

Run kasher without args to trigger the fuzzy search task finder.