| Crates.io | pacs-cli |
| lib.rs | pacs-cli |
| version | 0.1.1 |
| created_at | 2026-01-22 21:07:45.96226+00 |
| updated_at | 2026-01-24 17:44:09.30198+00 |
| description | Project Aware Command Storage - A CLI for managing and running saved shell commands |
| homepage | |
| repository | https://github.com/preiter93/pacs |
| max_upload_size | |
| id | 2062626 |
| size | 63,023 |
Project Aware Command Storage - A CLI for managing and running saved shell commands.

| Package manager | Command |
|---|---|
| Homebrew | brew install preiter93/pacs/pacs |
| Cargo | cargo install pacs |
pacs init # initialize pacs and create first project
pacs add build "cargo build" # save a command to active project
pacs run build # run it
pacs ls # list all commands in active project
pacs edit build # edit in $EDITOR
pacs rm build # delete it
pacs project add MyProject # create a project
pacs project switch MyProject # set active project
pacs project active # show active project
MyProject
hello-world:
echo "Hello World"
[k8s]
get-pods:
kubectl --context dev get pods -o wide
Use double curly braces to mark placeholders:
pacs add get-pods -t k8s 'kubectl --context {{kube-context}} get pods -o wide'
Define project-specific environments and values:
pacs env add dev # add an environment to active project
pacs env edit # edit environments in $EDITOR
pacs env ls # list all environments
pacs env switch dev # set active environment
Listing, running, and copying with a specific environment:
pacs ls -e dev # list with environment
pacs run get-pods -e dev # run with environment
pacs copy get-pods -e dev # copy with environment
Notes:
Zsh (~/.zshrc):
source <(COMPLETE=zsh pacs)
Bash (~/.bashrc):
source <(COMPLETE=bash pacs)
Fish (~/.config/fish/config.fish):
source (COMPLETE=fish pacs | psub)
Why PACS? Why not just use another command runner like make or just? I use PACS more like a vault than a sophisticated runner. Over time, I’ve accumulated commands that I need every now and then; commands that don’t quite make it into the official scripts, makefiles or justfiles of my projects.
Even more so when collaborating with others, I don't want to dump all those commands into the repo. But usually the day comes when I have to deploy a busybox or a postgres database in a kubernetes cluster but the docker command is just too difficult for me to remember. Then I find myself scouring through my terminal history to search for it, hoping its still not pushed off the cliff of my history limit...
I wished I could have all those commands sorted and lying around, ready for the day I need them. That’s why I created PACS. And to be honest, it was also an excuse to write more Rust and to create a new TUI, but that’s still to come.