Metadata-Version: 2.4
Name: monoplane
Version: 0.2.1
Summary: Monoplane is a tiny tool designed to help you run multiple processes in your local development environment. Especially useful for monorepos.
License: MIT
License-File: LICENSE
Keywords: monorepo,development,local
Author: Yegor Tokmakov
Author-email: yegor@tokmakov.biz
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: PyYAML (>=6.0.3,<7.0.0)
Requires-Dist: readchar (>=4.2.2,<5.0.0)
Requires-Dist: tabulate (>=0.10.0,<0.11.0)
Project-URL: Bug Tracker, https://github.com/yegortokmakov/monoplane/issues
Project-URL: Repository, https://github.com/yegortokmakov/monoplane
Description-Content-Type: text/markdown

# Monoplane

Monoplane is a tiny tool designed to help you run multiple processes in your local development environment. It is like a very stripped down docker compose for local shell commands. Especially useful for monorepos. Obviously, not for production.

![Screenshot](./assets/screenshot.png)

## Using Monoplane

```bash
pip install monoplane
```

Create a `monoplane.yml` file in your project root:

```yaml
color_stderr: "[91m"

services:
    - name: api
      cwd: resources/api
      command: skaffold dev
      build: npm run generate
      color: "[0;33m"
      notes: http://localhost:30005
      env:
          - name: PORT
            value: 30005

    - name: console
      cwd: resources/web_console
      command: npm run dev
      build: npm run build
      color: "[0;36m"
      notes: http://localhost:30001
```

Then run `monoplane` or `mp` in your project root. It will start all services in parallel.

Some useful commands (just press key while running):

-   `r` - restart all services
-   `s` - print status of all services
-   `b` - execute all build commands
-   `c` - clear screen
-   `q` - stop all services and quit

Notes added in the config file will be printed when you press `s`. Useful for adding links to your service endpoints to avoid remembering ports and typing them over and over again.

