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 →