Skip to content

Run all your .sh scripts from one place. Scans project folders, detects envs, independent terminal per script.

License

Notifications You must be signed in to change notification settings

leobrqz/ShScriptHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShScriptHub

Scans your project, detects environments and runs scripts.

License: GPLv3 Windows Python PySide6

A .sh script runner for anyone tired of hopping between folders and scripts. It scans your selected folder to build a centralized hub, opens a new terminal per script for easier project management and auto-detects Python environments.

interface

🛠️ Features

Toolbar

Toolbar for easy configuration access:

  • Project — Set project path | Refresh to rescan scripts
  • Terminal — Set Git Bash path
  • Venv — Venv activate path for scripts that interact with Python | Clear venv path to revert to auto-detect.

All of the above, plus per-script categories and favorites, are stored in config.json in the app directory.

Script cards

Scripts are shown in a responsive card grid. Each card has:

  • File name — Relative to project root.
  • Favorite — Star to pin; favorites sort first.
  • Category — None, backend, or frontend; default from folder name, editable per script.
  • Env — Shown per script.
  • Status — Idle, Running, or Stopped.
  • Run — Opens the configured terminal with CWD = script’s folder.
  • Kill — Stops only the process tree launched by the app for that script.

Metrics

When a script is running, each card shows these live metrics (updated every second):

  • PID — Process ID.
  • CPU % — Current CPU usage.
  • RAM (RSS) — Resident memory in use (MB).
  • RAM % — Share of system RAM.
  • Elapsed — Time since the script started.
  • Peak memory — Maximum RSS reached (MB).
  • CPU time — Total CPU time consumed.
  • Threads — Number of threads.

Search and filter

  • Search — Type in the search box to filter cards by folder or file name (live filter).
  • Folder — Dropdown to show "All" or only scripts under a first-level folder (e.g. backend, frontend).

📁 How scripts are discovered

The app scans the selected folder recursively and lists every .sh file. Names are shown relative to the project (e.g. backend/run.sh, scripts/docker-up.sh). Scripts run with CWD = their own folder, not the project root.

Env is detected in the script’s folder: .venv, venv, or node_modules. For scripts in category backend, a configured venv path (see Configuration) overrides that.

Example layout (any structure works):

your-project/
├── backend/          # auto = backend; .venv/venv 
├── frontend/         # auto = frontend; node_modules
├── api/              # category to None
└── scripts/          # category None

⚙️ Setup & Run

1. Clone or open the project

git clone https://github.com/leobrqz/ShScriptHub.git
cd ShScriptHub

2. Install dependencies

pip install -r requirements.txt

3. Run the app

python src/main.py

Credits

Author

Leonardo B.

Check out my other projects <3

About

Run all your .sh scripts from one place. Scans project folders, detects envs, independent terminal per script.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published