Thank you for your interest in molim.
This is a personal project, primarily developed for the author's own use. Pull requests from external contributors are not being accepted at this time.
If molim is useful to you, feel free to fork the repository and adapt it to your own needs — that's what the MIT license is for.
Bug reports and feature suggestions are welcome via GitHub Issues. Please be aware that issues may not be addressed promptly, and feature requests may not be implemented if they fall outside the author's own use cases.
If you fork molim and make improvements you think would be valuable upstream, you are welcome to open an issue describing what you've done. There is no guarantee of a response, but genuinely useful contributions may be considered on a case-by-case basis.
If you are working on your own fork, here is how to get a local development environment running.
System requirements (Linux only):
sudo apt install --no-install-recommends rawtherapee imagemagick ffmpegPython environment:
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install the project and all dependencies (including dev tools)
uv sync --all-extras --devInstall the pre-commit hooks (once per clone):
uv run pre-commit installThis installs the git hooks that enforce code style automatically on every commit. This step must be done once on each machine after cloning.
Running the tests:
uv run pytestAll tests must pass before any commit. The test suite runs real CLI commands over pre-defined test files committed to the repository — no mocking of the underlying tools.
The project uses Ruff for both formatting and linting. Style is enforced at two levels:
Locally via pre-commit hooks — on every git commit, Ruff automatically
formats the staged files and checks for lint violations. If any files are
modified by the formatter, the commit is blocked so you can review and
re-commit the changes:
git add .
git commit -m "your message" # hooks run automatically
# if files were changed by Ruff, review them, then:
git add .
git commit -m "your message" # clean commit goes throughTo run the hooks manually across all files (useful after first setup):
uv run pre-commit run --all-filesIn CI — the lint job in the CI pipeline runs ruff format --check and
ruff check in read-only mode on every push and pull request. Any formatting
or lint violation will fail the pipeline, blocking merge.
Ruff configuration is in pyproject.toml under [tool.ruff].