A terminal-first process manager for running and maintaining multiple Node services from one place.
Note: Don't forget to replace this placeholder with a GIF or screenshot of your tool in action! (Place it in the
assetsfolder)
Prozessor is a lightweight terminal process manager. Instead of juggling multiple terminal tabs, it lets you manage all your project repositories from a single Live TUI Dashboard.
It handles cloning, branch tracking, log streaming, and process monitoring automatically.
- 🔄 Automated Git Ops: Auto-clones your project repos and periodically checks for branch updates.
- 📊 Live TUI Dashboard: Monitor all your services in one terminal window with multiplexed log streaming.
- 🛡️ Resilient: Automatic process restarts, crash retries, and cooldown periods keep your services healthy.
- 🪶 Lightweight: Plain Node.js (ESM), zero build steps, and no heavy dependencies.
Follow these steps to set up and run it on your machine.
Ensure you have the following installed on your system:
- Node.js:
v18+ - Git: Required for cloning and managing repositories.
Clone PROZESSOR to your local machine and install its dependencies:
git clone https://github.com/SiddDevZ/prozessor-cli.git
cd prozessor
npm installYou need to tell it which projects to manage. We provide a safe template to start with. Run the following command to create your local config file:
cp projects.example.json projects.jsonOpen projects.json in your editor and define your repositories.
If your managed projects require .env files, you can store them securely in the envs/ directory.
- Create your env files (e.g.,
envs/.env.myproject). - Link them in your
projects.jsonby setting theenvSrcproperty for that project.
Start the process manager to bring up the dashboard and spawn your services:
npm startEach project entry in your projects.json supports the following:
| Property | Description | Default |
|---|---|---|
name |
Display key and local folder name (created under projects/) |
- |
repoUrl |
Git remote URL to clone from | - |
branch |
Branch to track and auto-update | - |
envSrc |
Env filename inside the envs/ folder (Optional) |
- |
subdir |
Project subdirectory where the Node service lives | backend |
entrypoint |
Node entry file to run | server.js |
enabled |
Whether it should manage this project | true |
Global Application Settings:
pollInterval: How often to check for git updates.logBufferSize: Number of log lines to keep in memory.maxCrashRetries: How many times to restart a crashing process.autoUpdateCli: Automatically fetch and update the CLIcrashCooldownMins: Cooldown duration after exceeding max retries.
Navigate your services effortlessly using these built-in keyboard shortcuts:
| Key | Action |
|---|---|
m |
Open the management menu |
f |
Cycle through project log filters |
0 |
Clear active log filter |
1-9 |
Quick-filter to a specific project by index |
↑ / ↓ / PgUp / PgDn |
Scroll through the log history |
q / Ctrl+C |
Quit and gracefully shut down all services |
prozessor/
├── lib/
│ ├── config.js
│ ├── git-ops.js
│ ├── process-manager.js
│ ├── log-store.js
│ ├── theme.js
│ ├── ui.js
│ └── flair.js
├── envs/
│ └── .env.example
├── projects/ # Managed repositories are cloned here
├── main.js # Application Entrypoint
├── projects.json # Your local configuration
├── package.json
└── .gitignore
For a clean and secure public release, ensure you:
- Never commit real
.envfiles to github. - Never commit your populated
projects.json. - Never commit the cloned repositories under the
projects/directory.
(These paths are already ignored in .gitignore by default).
(Add your preferred license before publishing)
