6 releases

0.3.1 Sep 12, 2024
0.3.0 Aug 15, 2024
0.2.2 May 21, 2024
0.2.1 Apr 11, 2024
0.1.0 Feb 18, 2024

#1921 in Command line utilities

30 downloads per month

MIT license

66KB
1.5K SLoC

Together

A tool to run multiple commands in parallel selectively by an interactive prompt. Inspired by concurrently.

Crates.io MIT licensed Build Status

Installation

The easiest way to install together is to use cargo. If you don't have cargo installed, you can install it by following the instructions on the Rust official website.

cargo install together-rs

Alternatively, together can be installed using the pre-built binaries for your platform. You can find the latest release on the releases page. Download the binary for your platform and add it to your PATH.

# For example, on macOS
curl -L https://github.com/michaelblawrence/together-rs/releases/download/0.3.0/together-rs_0.3.0_x86_64-apple-darwin.zip -o together.zip
unzip together.zip
mv together /usr/local/bin

Usage

Getting Started

To start the interactive prompt:

together run -- "echo 'hello'" "echo 'world'"

This allows you to select which of the commands to run in parallel.

To run all commands in parallel:

together run --all -- "echo 'hello'" "echo 'world'"

Example

In the example below we are using yarn workspace to run multiple package.json scripts, forwarding stdout/stderr to the terminal:

together run --raw -- \
 "yarn workspace server dev" \
 "yarn workspace client dev" \
 "yarn workspace event-processor dev" \
 "yarn workspace api-types watch"

Running the above command will start together and you will see the following interactive prompt:

image

You can select which commands to run by pressing spacebar to toggle the selection. Press enter to start the selected commands.

together works well with monorepos, allowing you to run all of your required executables in the same terminal window.

Need to kill or restart a single command? Press ? at any time to see options on managing commands (see below).

Managing Commands

While the interactive prompt is running, you can manage the commands by pressing the following keys while together is running:

  • t: Trigger another command to start
  • k: Kill a running command
  • r: Restart a running command
  • h or ?: Show the help message, which also lists all running commands, and more interactive options

Configuration

Every time you run together, it saves the configuration to local disk.

You can use the together load [toml_path] option to specify a configuration file to use. Or use the following command to start together with the last saved configuration:

together rerun

Contributing

If you're interested in contributing to the project, you can start by cloning the repository and building the project:

git clone https://github.com/michaelblawrence/together-rs.git
cd together
cargo build

Please follow standard Rust community guidelines and submit a PR on our repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Dependencies

~5–16MB
~153K SLoC