Advanced project-aware task runner
Project description
Shemul
Shemul is a simple and lightweight project-aware task runner for development workflows. 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.
Table of Contents
- Requirements
- Features
- Change log
- Installation
- Usage
- License
- Security
- Future Plan
- Author
- Contributors
- About S Technologies
- Support
- Hire Us
- Contribute
- More
- Copyright
Requirements
- Python >= 3.14
- Optional: shell completion (bash, zsh, or fish) via scripts in
completion/
Features
- Dual scope config: project and global
- Deterministic precedence: project overrides global on command conflicts
- Project discovery with
shemul.json - Command model supporting
varsandenvtemplating - Safe execution controls:
confirm,danger,--dry,--trace - Diagnostics via
shemul doctor - Rich CLI output with grouped command lists and contextual help
- Built-in template-based initialization (
shemul init) - Global initializer:
shemul init -g - JSON Schema validation for
shemul.json - Friendly command listing, info, help, and suggestions
- Shell completion scripts for bash, zsh, and fish
Change log
Version 1.0.0 (February 11, 2026)
- Initial release.
- Project and global scope config.
- Template-based init and safety controls.
Please see CHANGELOG for more information on what has changed recently.
Installation
Shemul can be installed using pip:
pip install shemul
Usage
Scope model
Shemul supports two config scopes:
- Project scope:
<project>/shemul.json - Global scope (OS-native):
- Windows:
%APPDATA%\Shemul\shemul.json - macOS:
~/Library/Application Support/Shemul/shemul.json - Linux:
$XDG_CONFIG_HOME/shemul/shemul.json(fallback:~/.config/shemul/shemul.json)
- Windows:
If both scopes define the same command, project scope wins. If no config exists, Shemul suggests running shemul init -g.
Initialize global config
shemul init -g
Initialize project config
shemul init --list
shemul init fastapi-backend
List and run commands
shemul ls
shemul <command>
Init behavior
shemul init <template>creates projectshemul.json.shemul init -g [template]creates globalshemul.json; without template usesnone.- If config already exists,
initwarns with path and opens the file for editing. - Use
--forceto overwrite existing config.
Available templates: docker-fastapi-backend, fastapi-backend, django-drf-backend, expressjs-backend, nestjs-backend, react-native-expo-app, nextjs-frontend, none.
Common commands
shemul ls
shemul info
shemul help <name|group>
shemul doctor
shemul schema
shemul <command>
Safety flags
confirm: truein config prompts before run.danger: trueprompts with stronger warning.--dryprints resolved command.--traceprints resolved command and env context.
Configuration example
{
"$schema": "https://shemul.dev/schema.json",
"name": "example-project",
"version": "1.0",
"runtime": "docker",
"env": {
"local": {
"compose": "docker-compose.yml"
}
},
"vars": {
"API": "api"
},
"commands": {
"up": {
"run": "docker compose up --build",
"env": "local",
"desc": "Start stack"
},
"migrate:up": {
"run": "docker compose exec {{API}} alembic upgrade head",
"confirm": true
}
}
}
Development
- Source layout uses
src/. Tests are intest/. - Run tests:
python -m pytest -q
License
Shemul is open-sourced software licensed under the MIT License.
Security
If you discover any security-related issues, please email product@stechbd.net instead of using the issue tracker.
Future Plan
- Plugin/extensibility system for custom resolvers and runners
- More built-in templates and community template registry
- Better cross-platform editor/open behavior and UX polish
- Optional remote/team-shared config patterns
- Additional command introspection and diagnostics
Author
Contributors
None yet.
About S Technologies
S Technologies (STechBD.Net) is a research-based technology company in Bangladesh. It was founded in 2013. It provides services like domain registration, web hosting, web servers, software development, AI model development, software as a service (SaaS), UI/UX design, SEO, business solutions, etc. S Technologies has been working in research of new technologies especially in artificial intelligence, and developing new products. You'll find an overview of all our open source products on our website.
Support
If you are having general issues with this package, feel free to contact us on STechBD.Net/support.
If you believe you have found an issue, please report it using the GitHub issue tracker, or better yet, fork the repository and submit a pull request.
- Home Page
- GitHub Repository
- GitHub Issues
- PyPI Package
- Support Page
- Contact Form
- X (Twitter)
- YouTube
Hire Us
Contribute
More
Copyright
© 2013–26 S Technologies. All rights reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shemul-1.0.0.tar.gz.
File metadata
- Download URL: shemul-1.0.0.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83700bc3b7c6df9b37b8eea184afa484741baaffd24c1eb16d22f1edb72574d4
|
|
| MD5 |
2a0cd41164ed8ca6b255d8d91c8ef317
|
|
| BLAKE2b-256 |
faa9f4c4e91e6306d944224b5cc315af0197a7be9097825cc12d8e7989ee2c09
|
Provenance
The following attestation bundles were made for shemul-1.0.0.tar.gz:
Publisher:
publish.yml on STechBD/Shemul-PIP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shemul-1.0.0.tar.gz -
Subject digest:
83700bc3b7c6df9b37b8eea184afa484741baaffd24c1eb16d22f1edb72574d4 - Sigstore transparency entry: 940141730
- Sigstore integration time:
-
Permalink:
STechBD/Shemul-PIP@8b2e2ec4730db562015a9e262100638d164972f2 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/STechBD
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8b2e2ec4730db562015a9e262100638d164972f2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file shemul-1.0.0-py3-none-any.whl.
File metadata
- Download URL: shemul-1.0.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07cf67faf87abf09ade291f9fcb922e81d2c84228eb5a695a2f8ebce3b2e8124
|
|
| MD5 |
23d8d4a18593782f63a23961a2865961
|
|
| BLAKE2b-256 |
0204f4ec88042593bb0852d22f44dd36a98677d90d3c64a1e06f7812bee7169e
|
Provenance
The following attestation bundles were made for shemul-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on STechBD/Shemul-PIP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shemul-1.0.0-py3-none-any.whl -
Subject digest:
07cf67faf87abf09ade291f9fcb922e81d2c84228eb5a695a2f8ebce3b2e8124 - Sigstore transparency entry: 940141795
- Sigstore integration time:
-
Permalink:
STechBD/Shemul-PIP@8b2e2ec4730db562015a9e262100638d164972f2 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/STechBD
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8b2e2ec4730db562015a9e262100638d164972f2 -
Trigger Event:
release
-
Statement type: