Shemul CLI
A project-aware command line tool that centralizes repetitive development commands in a JSON file and runs them with safety controls.
Overview
Shemul CLI is an advanced project-aware CLI tool for task automation based on JSON configuration. It is a free and open-source CLI that centralizes repetitive development commands in shemul.json and runs them with safety controls, supporting both project-local and user-global command scopes.
Key features
- Dual scope configuration: project and global command definitions. A project command overrides a global command with the same name.
- Project discovery: the project is found through
shemul.json. - Safety controls:
confirm,danger,--drypreviews and--traceoutput. - Cross-OS commands (v2.0.0): per-OS
osvariants,bininterpreter maps and magic variables such as{{os}}and{{python}}. - Task pipelines (v2.0.0):
needsdependencies,preandposthooks, andparallelgroups. - Templates and validation: built-in project templates (
shemul init [template]) and JSON Schema validation forshemul.json. - Diagnostics:
shemul /doctorchecks the environment, and completion scripts exist for bash, zsh and fish. - Plugins: a plugin API through the
shemul.pluginsentry-point group and a per-commandrunner.
Requirements
- Python 3.9 or newer.
- Dependencies, installed automatically:
rich,jsonschemaandquestionary. - Optional: shell completion for bash, zsh or fish, from the scripts in
completion/. - Arrow-key prompts need a real terminal. Set
SHEMUL_NO_INTERACTIVE=1, or pipe input or run in CI, to use plain typed prompts.