melcurial
Many non-engineers have contributions for codebases (static sites, docs, design tweaks, image swaps, etc.) and the learning curve on git is steep.
mel is a simplification of a common git flow that makes versioned collaboration more approachable for those non-engineer contributors.
Mission: enable non-engineers to contribute!
Install
macOS/Linux (no sudo). On macOS installs to /opt/homebrew/bin or /usr/local/bin when writable; otherwise to ~/.local/bin.
curl -fsSL https://raw.githubusercontent.com/davefowler/melcurial/main/install.sh | bash
Usage
Use these commands in your project folder. Plain language, safe defaults, and helpful prompts.
Basic commands:
mel save "message" # saves your changes and gets the latest from others
mel status # shows what changes you've made since saving
mel publish # save and publish your work to main
mel reset # ditch your changes and start over from main
mel upgrade # update mel to the latest version
Troubleshooting:
If you get "uncommitted changes" errors, run 'mel clear' to stash them first.
mel is also a great tool for engineers who want a smooth, quick workflow. Toggle to advanced mode with mel mode advanced.
Advanced commands:
mel b <branch name> # create or switch to branch if existing
mel save "message" # save your changes and get the latest from others
mel update # rebase on the latest from main
mel status # shows what changes you've made since saving
mel diff # show staged/unstaged diff stats
mel open # open remote repo page in your browser
mel help # show this help
mel pr # go to the page to make a new PR
mel clear # stash your uncommitted changes (worktree + untracked)
mel reset # restart your branch from the latest main (force-push)
mel upgrade # update mel to the latest version
mel mode <mode> # switch between "basic" and "advanced" help text
mel --version|-v # show CLI version and executable path
mel <name> # run configured or package script; supports `--` for extra args
Troubleshooting:
If you get "uncommitted changes" errors, run 'mel clear' to stash them first.
See Config for scripts, hooks, update strategy, and non‑interactive mode.
How it works
mel is just a wrapper around git. It keeps each person working in their own branch, and automatically pulling in changes from the main branch. If at any point someone gets stuck you can revert to directly using git. We have full documentation explaining each abstracted command.
Team setup
mel can be tailored to your team's specifics through a .mel/config_template.json file. You can add custom scripts, change merge behavior, auto import scripts from packages and more.
For a full description checkout the configuration documentation.
Contribute
Right now we need users and feedback! If you have requests, ideas, or contributions, please file an issue or PR on GitHub.