Inspiration
Friends who avoid git because of all the commands, and messy histories that make review and rollbacks hard. I wanted a way to keep commits clean, grouped, and easy to understand without needing to know git in depth.
What it does
GitPulse watches your project, groups changes semantically, uses AI to write conventional commit messages, and runs AI code review before pushing. You can fix issues manually, let the AI fix them, or continue anyway. A dashboard shows commit history, diffs, line stats, and review findings.
How I built it
Go with fsnotify for file watching and debouncing, go-git and shell git diff for real diffs, and Claude (Anthropic API) for semantic grouping, commit messages, and code review. A JSON store holds history in .gitpulse/, and a web dashboard serves stats and history via HTTP.
Challenges I ran into
Getting real diffs from the go-git API (placeholder diffs at first), two stdin readers competing and causing hangs on the review prompt, and AI sometimes returning truncated full-file fixes instead of focused patches. I solved these by shelling out to git diff, using a single stdin channel, and switching to a patch-based fix flow.
Accomplishments that I'm proud of
Semantic grouping with heuristic + AI refinement, AI code review that blocks pushes and offers manual or AI fix, a JSON history with diffs and line stats, and a dashboard that visualizes the full workflow.
What I learned
How to balance AI automation with user control, how to use go-git and honestly Go in general, and how tricky stdin/stdout can be when mixing watchers and interactive prompts in a single process.
What's next for GitPulse
Lots can be improved on. Want to give the user more control (ie push this but dont push this, or use AI review or dont use AI review). Also want to optimize API calls on big diffs that could break token cap, lots of fancy ways to do this but no time
Log in or sign up for Devpost to join the conversation.