Corgi - CLI workflow manager
Corgi is a command-line tool that helps with your repetitive command usages by organizing them into reusable snippet. See usage by simply running corgi
or corgi --help
Current version: v0.2.0-alpha
Examples
Create a new snippet to automate the commands you run repetitively
Execute an existing snippet knowing what command is being run and its output
Table of Contents
Installation
Since this project is still in its very early phase, installation via package managers like brew
or apt-get
is not supported. Here are the steps to follow if you would like to try it out:
- Download the latest
corgi
executable from releases tab
chmod a+x ./corgi
to give execution permission to all users & groups
- (Optional) If you already have a previous release of corgi installed, remove the soft link in your
bin
folder first
- Create a soft link of the
corgi
executable to your local bin
folder - (if you are on Mac, you can use ln -s $(pwd)/corgi /usr/local/bin/corgi
)
- Start
Corgi
ing
Features
To view usage of a specific action, run corgi <action> --help
Create a snippet
corgi provides an interactive CLI interface to create snippet, and you can start by running
corgi new
If you would like to quickly combine the last couple commands you just executed into a snippet, you could also run
corgi new --last <number of commands to look back>
Furthermore, you could also save a command template (with or without default value) as part of the snippet and reuse the same parameter, for example:
tar -xzf <project>.tgz && scp <project> <user=ec2-user>@<ec2-instance-address>:~/
And you can enter the values for those parameters when the snippet executes.
List snippets
To view all snippets saved on your system, run
corgi list
Describe a snippet
To see the details of a snippet, you can run
corgi describe <title of the snippet>
And it will print out each step of the snippet so that you don't have to memorize them.
Execute a snippet
To execute a snippet, simply run
corgi exec <title of the snippet>
Your commands will run smoothly just as they were being run on a terminal directly, and any prompt that asks for input (for example, password prompt when you ssh
into a remote server) will work seamlessly as well.
Also note that if you run cd
command in one of the steps, the current working directory will not change for subsequent steps. But you can always put cd <target dir> && <do something else>
to get commands executed inside of your target directory.
Edit a snippet
To edit a snippet, run
corgi edit <title of the snippet>
You'll be able to edit the snippet json file directly with your preferred editor (configurable via corgi config
command, details see below)
Share snippets
If someone shares his/her snippet json file(s) with you, you can import it by running
corgi import <snippet json file 1> [<snippet json file 2>...]
And similarly, if you already have a workflow defined in a snippet, you can easily share it by exporting via
corgi export <title of the snippet> [-o <output file path>]
and send the json file to another person
Currently the only editable option is your text editor choice (default is vim
), to configure the corgi CLI, run
corgi config --editor <editor of your choice>
Roadmap
Here are some features that are currently on the roadmap:
- Support concurrent execution of steps
- Support remote server configuration, so that snippet can run seamlessly on a remote computer
Note
Corgi is inspired by Pet, and aims to advance Pet's command-level usage to a workflow level.