What is Proggy?

Proggy is a tool to help you design CLI programs (called, you guessed it, a “Proggy”) that you can use on Linux, Mac, or Windows operating systems without any prior scripting knowledge.

Using the Proggy dashboard, you can specify what you want your custom CLI program to do.

Proggy has a powerful templating system that allows you to insert variables at runtime, ask user for input, and override environment variables when needed.

Proggy also allows you to design CLI programs that can perform remote SSH commands, such as copy your public SSH key to a new server.

If you’re working with a team, you can share your Proggyes with others. This is useful, for example, when onboarding new team members who may have to run multiple terminal commands to get their local development environment set up.

Basic Terminology

Proggy

A “Proggy” is used to describe a collection of steps.

For example, let’s say you want to create a Proggy that copies the files you have in your ~/Download folder to your ~/Archived folder. Then, after it is done, you want Proggy to send a POST request to your API endpoint.

Your Proggy could be named “copy_files”. Within this Proggy, the sequence would be:

  1. Move files from ~/Download folder to ~/Archived folder
  2. Send a POST request to https://your-server.com/done

Sequence

A sequence is the ordered steps within a Proggy.

Steps are organized by their position and are executed in the sequence it was defined.

Step

A step contains the directive (ie. the action) that Proggy will carry out.

The output of a step are automatically saved within a unique Step Prefix, so you can pipe the output of one step to another step later in the Sequence.

Directive

Each step has a directive.

Here are some commonly used directives:

  • Display Text
  • Change Directory
  • Create File
  • Make GET Request

The full list of directives can be found under Directives.

Directives tell the Proggy command what to do during a particular step.

Output

After each Proggy step is executed, an output is generated.

You can reference these outputs as inputs, or as conditions to perform flow control actions (ie. only execute if conditions are satisfied).

Pipe

Piping refers to the output of the immediate previous step. Similar to Output, it is most commonly used to reference the result of the previous step.

Step Prefix

Each step has a unique prefix that is generated by Proggy automatically. This prefix can be used to reference the specific Output from that step from other steps.

Conditions

Flow control can be programmed into a Proggy command. For example, you can specify whether a particular step will execute depending on specific conditions.

Liquid Template

Everything in Proggy, including the command, input, output, and conditions are processed first using the Liquid templating language.

This allows you flexibility when creating CLI programs, by being able to reference other steps easily.