Lettuce is a lightweight, YAML-configurable wrapper for rsync, designed to keep your local project folder in sync with a remote target (like a Docker server or homelab).
It's inspired by tools like Mutagen, but without the agent complexity or platform limitations — perfect for lightweight dev flows from environments like Termux.
- 🧠 Simple YAML config (
lettuce.yml) - 🚀 Fast file sync with
rsync - 🧹 Ignores and allows files with glob patterns
- 👀 Optional
watchmode to sync on file change - 🥗 Lightweight, zero-daemon, no magic
Install directly from GitHub:
pip install git+https://github.com/cr8ivecodesmith/lettuce.gitOr clone and install locally for development:
git clone https://github.com/cr8ivecodesmith/lettuce.git
cd lettuce
pip install -e .Make sure you have:
- Python 3.7+
rsyncinstalled and accessiblewatchdogif you want to uselettuce watch
source: .
target: [email protected]:/srv/projects/myproject
ignore:
- ".git/"
- "*.pyc"
- "__pycache__/"
- "lettuce.yml"
# Optional allow list:
# allow:
# - "src/**"
# - "Makefile"lettuce synclettuce watchlettuce sync --config custom.ymlLettuce wraps rsync with options derived from your YAML config:
--excludefor ignore patterns--includeand fallback--exclude=*for allowlist- Uses
rsync -avz --deleteby default
Lettuce is built for people who:
- Want to code in Termux or remote-first setups
- Use a homelab or external Docker host
- Don’t want to fight with agent binaries or kernel syscall issues
MIT © Matt Lebrun [email protected]
🥬 Lettuce sync, so you don’t have to think.™