Makim lets you define repeatable tasks with arguments, conditionals, hooks, scheduling, and remote execution — all in a single .makim.yaml
. Clean, documented, CI‑friendly.
.makim.yaml
groups:
build:
env:
GROUP_ENV: group_value
tasks:
clean:
help: Clean build artifacts
args:
cache:
type: bool
action: store_true
help: Remove all cache files
log:
path: ./logs/clean.txt
level: err
format: "% (asctime)s - % (file)s - % (levelname)s - % (message)s"
run: |
echo "Cleaning build directory..."
rm -rf build/
compile:
help: Compile the project
hooks:
pre-run:
- task: build.clean
run: |
echo "Compiling the project..."
scheduler:
daily-clean:
task: build.clean
schedule: "0 0 * * *"
Makim is a Python package. Install it with pip and add a .makim.yaml
to your repo.
pip install makim
# run a task
makim build.compile
# run with an argument
makim build.clean --cache
Everything you need to tame your helper commands.
Detailed help
for tasks/args flows straight into the CLI help screen.
Types, defaults, and descriptions with validation.
Chain tasks with if
rules to adapt at runtime.
Interpolate args, variables, and env in commands and files.
Expand tasks over parameter combinations—perfect for CI.
Cron‑like periodic jobs powered by APScheduler.
Execute tasks via SSH with flexible inventory.
Structured logs with custom format and stream control.
Schema checks ensure your .makim.yaml
stays correct.
Define tasks in YAML, then run them from the CLI with discoverable help. Hooks and conditionals let you compose robust flows.
makim --help
makim build.clean --help
makim build.compile
makim cron run # example extension
Usage: makim [OPTIONS] COMMAND [ARGS]...
Makim is a tool that helps you to organize and simplify your helper commands.
Options:
--version -v Show the version and exit
--file TEXT Makim config file [default: .makim.yaml]
--dry-run Execute the command in dry mode
--verbose Execute the command in verbose mode
--skip-hooks Skip hooks while executing the command
--install-completion / --show-completion
--help Show this message and exit.
Groups:
build.clean Clean build artifacts
build.compile Compile the project
Extensions:
cron Tasks Scheduler
Experiment with Makim directly in your browser using Google Colab. Fork the notebook, tweak tasks, and run.
Open Colab notebookUse Makim for repeatable dev flows: bootstrapping, lint + test, release pipelines, DB snapshots, or multi‑host ops. Put knowledge in code, not in wikis.