v0.1.11 · macOS · Linux · Windows

Delayed send, for your git commits.

Write code at midnight. Let it commit at 9 AM — locally or in the cloud. A Rust CLI for scheduling commits and pull requests.

▼ Install★ GitHub

Built in Rust · MIT licensed · zero config

mafex — zsh — 92×24

Schedule commits

Relative or absolute time — --in 2h, --at "fri 3pm". Up to 7 days out.

Remote via Actions

Runs on GitHub Actions even when your machine is asleep or off.

Scheduled PRs

Open pull requests on a timer with the gh CLI and your staged changes.

Edit, cancel, undo

Reschedule the time, change the message, or undo your last schedule.

Failed queue + retry

Missed or failed commits move to a queue. Re-stage the files and retry.

System notifications

Native success and failure notifications fire when commits run.

how it works

Commit on your schedule, not your keyboard's.

01

Capture

The CLI snapshots your staged changes as a patch and unstages them so you can keep working.

02

Store

The schedule is saved to ~/.git-schedule/ and a lightweight daemon picks it up.

03

Wait

The daemon waits until the scheduled time — locally, or on GitHub Actions with --remote.

04

Commit

It applies the patch, creates the commit, optionally pushes, and sends a notification.

install

Up and running in 10 seconds.

brew install mafex11/tap/git-schedule

then verify: git schedule --version

commands

The whole toolbox.

git schedule "msg" --in 2hSchedule a commit in relative time
git schedule "msg" --at "fri 9am"Schedule at an absolute time / weekday
git schedule … --pushAuto-push after the commit lands
git schedule … --remoteRun via GitHub Actions (PC can be off)
git schedule pr "title" --to devSchedule a pull request
git schedule listList pending schedules
git schedule statusDaemon status and next commit
git schedule edit ID --in 3hReschedule or edit the message
git schedule cancel IDCancel a schedule
git schedule undoCancel the most recent schedule
git schedule failedList failed / missed commits
git schedule retry IDRe-stage files from a failed commit

full reference on GitHub →