rootrun
v1.0.1
Published
Zero-config concurrent script runner for monorepos
Maintainers
Readme
🚀 rootrun
The Zero-Config Concurrent Script Runner for Modern Monorepos
rootrun is a lightweight, high-performance CLI tool designed to simplify the development workflow in projects with multiple subdirectories (monorepos). Instead of opening multiple terminal tabs to start your backend, frontend, and documentation servers, rootrun allows you to launch them all with a single, elegant command.
✨ Key Features
- Zero Configuration: Works out of the box. No complex config files required.
- Concurrent Execution: Spawns multiple child processes simultaneously.
- Smart Prefixing: Automatically prefixes every line of output with the folder name.
- Color-Coded Logs: Assigns a unique, rotating color to each folder for easy readability.
- Graceful Cleanup: Kills all child processes cleanly when you press
Ctrl+C. - Intelligent Scanning: Only runs scripts in folders that actually contain them.
🛠️ Installation
You can run rootrun instantly without installation using npx, or install it globally for faster access.
Use with npx (Recommended)
npx rootrun devInstall Globally
npm install -g rootrun📖 How to Use
Simply navigate to the root of your project and run:
rootrun [script-name]Commands & Examples
| Command | Description |
| :--- | :--- |
| rootrun | Runs the dev script in all subdirectories (default). |
| rootrun build | Runs the build script concurrently in all packages. |
| rootrun start | Starts all your production processes at once. |
| rootrun test | Executes unit tests across your entire repository. |
| rootrun --verbose | Displays extra debugging info (which scripts were skipped and why). |
📂 Example Project Structure
Imagine a project like this:
my-awesome-app/
├── backend/ # Node.js Express Server
├── frontend/ # React (Vite) App
├── docs/ # Docusaurus Site
└── package.jsonRunning rootrun dev from the my-awesome-app folder will produce beautifully organized logs:
[backend ] Server listening on port 5000...
[frontend] VITE v5.1.0 ready in 450 ms
[docs ] Docusaurus started on http://localhost:3000
[backend ] Connected to MongoDB.🛡️ Ignoring Directories
If you want to skip certain folders, create a .rootrunignore file in your project root.
# .rootrunignore
node_modules
dist
temp-logs
legacy-backupBy default, rootrun always ignores node_modules and .git.
⚙️ Requirements
- Node.js:
v14.0.0or higher. - NPM: Works with standard npm-based projects.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ for developers who love clean terminals.
