Savepoint Project

Lobsters Hottest Tools

Summary

Savepoint is a command watcher tool that automatically creates a git commit when a specified command (e.g., tests) runs successfully, helping developers save progress after fixing errors.

<p><a href="https://lobste.rs/s/fq5huz/savepoint_project">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 05/17/26, 09:22 AM

# Savepoint Project Source: [https://www.namtao.com/savepoint/](https://www.namtao.com/savepoint/) ![savepoint-white.png200](https://www.namtao.com/img/user/Resources/Meta/attachments/savepoint-white.png) ## Can't Beat the Boss? Load a Previous Save *A command watcher that commits when you fix errors* Feel free to poke around the[code](https://github.com/NamtaoProductions/savepoint/tree/main/), I would love[feature suggestions](https://github.com/NamtaoProductions/savepoint/issues/new/choose)\! ## Usage ``` Usage: savepoint [OPTIONS] --filetype <filetype> [COMMAND]... Arguments: [COMMAND]... Command to run (use after -- if your shell requires it) Options: -f, --filetype <filetype> Filename extension to watch (eg rs, js, py, java) -d, --dryrun Don't run git commit when tests pass -c, --clear Clear screen between exections -q, --quiet Don't display test output -h, --help Print help -V, --version Print version ``` ## DEMO `savepoint`runs the test, and it fails: ``` 🏁 SAVEPOINT: Running command... Compiling savepoint v0.1.4 (/home/oatman/projects/savepoint) error: expected one of `!` or `::`, found `SavePoint` src/main.rs:37:10 | 37 | uhoh! impl SavePoint<Passing> { | ^^^^^^^^^ expected one of `!` or `::` error: could not compile `savepoint` (bin "savepoint") due to 1 previous error 🏁 SAVEPOINT: Error! 🏁 SAVEPOINT: Monitoring.. ``` When tests pass, savepoint makes a commit: ``` 🏁 SAVEPOINT: Running command... Compiling savepoint v0.1.4 (/home/oatman/projects/savepoint) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s 🏁 SAVEPOINT: Autosaving! [main 3d65083] SAVEPOINT REACHED! 2 files changed, 16 insertions(+), 1 deletion(-) 🏁 SAVEPOINT: Monitoring.. ``` --- ``` flowchart LR PASSING|fail|FAILING FAILING|pass; git commit|PASSING ``` > Other transitions are no\-ops \(such as tests passing while in passing state\) ![Brain mark.](https://brainmade.org/black-logo.svg)

Similar Articles

git-absorb: git commit --fixup, but automatic

Lobsters Hottest

git-absorb automatically creates fixup commits for staged changes, mirroring hg absorb's functionality. It integrates with git's autosquash to streamline applying code review feedback without manual commit SHA hunting.

Git Commit Skill for you Agents while coding

Reddit r/AI_Agents

An auto-commit agent skill for Git that tracks changes and commits automatically to speed up development, with future updates planned for branching and GitHub pull request management.

Staging patches with Git add -p

Hacker News Top

A tutorial on using git add -p to interactively stage hunks of changes, allowing for selective commits and cleaner version control history.

Quoting David Crawshaw's prompt

Simon Willison's Blog

Simon Willison shares a quote from David Crawshaw's prompt, which suggests setting up a nightly cron job to fetch upstream changes, rebase local changes, and verify the software works. It highlights the open-source devtools philosophy.