| Crates.io | starter |
| lib.rs | starter |
| version | 0.1.1 |
| created_at | 2025-05-28 21:59:35.054939+00 |
| updated_at | 2025-08-26 20:47:55.080607+00 |
| description | Run and control commands in parallel |
| homepage | https://github.com/jailop/starter |
| repository | https://github.com/jailop/starter |
| max_upload_size | |
| id | 1693301 |
| size | 114,980 |
The problem that Starter solves is running multiple commands at the same time, to:
When can this approach be useful?
Why not use a simple shell script?
Why not use multiple terminals, tmux, or screen?
Why not run the commands as system services?
This program is intended to run just a few commands at the same time (less than 6). It is assumed that these commands are not interactive, i.e., they don't require user input.
Requirements:
cargo install starter
Or, if you prefer to clone the repository:
Clone the repository:
git clone git@github.com:datainquiry/starter.git
Go to the folder, build, and install the program:
cd starter
cargo build --release
cargo install --path .
To use this program, you need to create a configuration file that describes the processes you want to run. The configuration file is a YAML file that contains a list of processes to run. For each process, you need to specify:
name: The name of the process. This is a custom name used to identify the
process in the output.command: The command to run. This is the command that will be executed.args: The arguments to pass to the command. This is a list of strings that
will be passed as arguments to the command.cwd: The current working directory for the command. This is the directory
where the command will be executed. Paths can be absolute or relative.Here is an example:
processes:
- name: "Ping"
command: "ping"
args: ["-c", "10", "google.com"]
cwd: "."
- name: "List"
command: "ls"
args: ["-l", "."]
cwd: "."
Once you have this file, assuming it is named runner.yaml, you can run the
following command to start all the processes:
starter runner.yaml
Each process is assigned a number, starting at 1. Pressing the number key allows you to select the respective process. The space bar is used to stop and restart each process. Use up and down arrow keys to scroll throught the output of each process.
To quit, press q.
See the LICENSE file.