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.
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 createProvide data at the prompts:
Name: myTask
Shell command: aws s3 ls
Cache expiration: 20s
Notes (optional): just an exampleNow call it as often as you need:
$ kasher myTaskTask actions
kasher task create [name]— interactively create a new taskkasher task createFor <command>— create a task for a given shell commandkasher task update— update an existing taskkasher task delete— delete a taskkasher task list— list all taskskasher 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.