Warning lote is early (
0.0.x). The config and commands may still change.
pip install lote # the lote command, ready to use
chefe add lote --pypi # or pull it into a chefe projectThe command is lote. It drives each host through chefe, which lote setup installs for you and which brings up pixi on first run.
You have a laptop and a handful of machines, each one running a different scheduler and expecting a different incantation. lote is one bridge over all of them. You pick a host, lote rsyncs your repo there, runs your job under whatever scheduler that host has (pueue, slurm, pbs, or bare bash), and pulls the results back. One job script runs anywhere, no code changes.
It works in three layers. The control plane lote onboards hosts, dispatches jobs, and tracks them across your machines. The on-host executor lote exec runs, submits, and monitors a single job on one machine. Underneath are typed clients over qsub, sbatch, pueue, and rsync. Targets come from your ~/.ssh/config aliases, so there is nothing new to declare.
lote setup dgx # onboard: probe, sync, install the env, start the queue
lote submit dgx train.sh # ship the repo, launch the job, get a handle back
lote submit auto train.sh --needs 40 # or route to the smallest host that fits
lote ps # recent runs across every target
lote pull <handle> # rsync the run's results back homeTip
lote reconcile <target>shows each run's live state, exit code, and a verdict (ok, failed, running, vanished). The docs cover the full command set.
A lote is a load shipped as one consignment. lote ships your work the same way: pick a machine, send the job, bring the results home.
