Frequently Asked Questions
What is shemul.json? It is the project or global JSON config that defines your commands, variables and environment presets.
Do I need both global and project configs? No. Either one is enough. When both exist, project commands override global commands with the same name.
How is Shemul different from Make? Make is a build system that tracks file timestamps to rebuild targets. Shemul is a task runner: it keeps named commands in JSON, runs them across operating systems and adds safety gates. Shemul is not an incremental build tool, and a Shemul command can call make.
Does Shemul phone home? Only an opt-out update check: one best-effort request to the Shemul manifest (with a PyPI fallback) at most once every 24 hours, cached locally, with no telemetry or identifiers. Disable it with SHEMUL_NO_UPDATE_CHECK=1, --no-update-check or "update_check": false. Background auto-update is off by default and is turned on with shemul /settings.
Can one command run on Windows, macOS and Linux? Yes. Use the os key for per-OS variants, bin maps to define a tool once per platform, and magic variables to write commands that run the same way on each system.