Pet - A Command Line Snippet Manager
Posted on April 27, 2022 by Adrian Wyssmann ‐ 3 min read
I always look to improve the way I work, often also by the help of tools. Github is always a good place to look what's new, and I eventually always find interesting tools which I did not knew before. For example pet, a command line snippet manager.
In my post Cheatsheets and KB" I talked about cool tools already, which help to organize your knowledge and to help with command line. My latest discovery is called pet, a bit similar to kb, but still different. It’s purpose is to store commands you rarely use, in an easy and searchable manner. It offers nice features, like
- store and search commands
- use of variables (
<param>
or<param=default_value>
) in snippets - execute snippets from your collection
- sync to Gist or Gitlab Snippets
- tag snippets
You can easily add a new command by using pet new
, which then offers you the option to specify a command and a description:
As you can see I parametrized the command, so when I do pet exec
, this will be render output
as an input parameter, before executing the command. So when you run pet exec
Once you select the command we just added and hit enter, you see a dialog with the command - which you can adjust - and the parameters - in our case output
So this will then use the parameter for your command
Sure, there are far much better examples, for instance this command
As you can see, we have 2 parameters, one with a default value <port=443>
. That said, you see now why this is very helpful to store (rarely used) commands in such a way.
Another cool thing is, that you can synchronize your snippets to either Gist or Gitlab Snippets. The latter, was not so well documented, hence made created a PR to make it a bit more clear. Once properly configured you can run a pet sync
which synchronizes the snippets - you can also configure to automatically synchronize if you make changes.
Tagging is also a nice feature, it basically allows you to add keywords to your commands an later search commands based on the keyword. If you are adding a new command, just use -t
i.e. pet new -t
. For existing commands, you can add them by using pet edit
. So I change my config as follows
An then run pet exec -t example
, I see the “Example command”
The website also describe some functions you can add to your shell, to easily add commands you just used, so have a look and try it out.