Guck (Git Duck) is a tiny (almost) always-on-top git toolbar that lives on your screen as a little dude in a duck costume. Click the duck and it expands into a command bar for everyday git: status, diff, staging, commit, pull, push, branch actions, revert, reset, and file browsing.
The duck keeps an eye on your repo even while idle: a ? bubble appears when you have uncommitted changes.
The goal is a dev tool I actually want to use, with an emphasis on a minimalistic UI and clean experience. While I can leverage the git CLI (or so I claim), I wanted to make something that is equally efficient yet minimalistic. Additionally, I believe it's important to dogfood (duckfood?) your own work, so the plan is to keep Guck running across my other projects. As I run into bugs or find new features I want to implement, I'll file issues and work through them over time.
It started with the goal of only addressing the most basic git use cases with a bit more of a visual flair without relying on a full app or IDEs. Somewhere along the way I got emotionally attached to the little duck guy. Try him out. Drag him around. It's really fun.
AI Notice - Guck is built through agentic engineering: I file issues as I dogfood it, then direct coding agents through fixes and features, reviewing and testing each before I update the repo (to varying degrees of rigor). The design direction and the duck premise are all my ideas (for better or worse). Since this tool is currently reliant on an auth token, I believe it is worth disclosing. There may be bugs I haven't experienced yet, if you want to test the tool but want to be cautious, use a fine-grained token scoped to non-essential repos.
V0.1 - Linux | MacOS | Windows
Note: Linux and MacOS will require more extensive testing as I have primarily been playing with it on Windows. I plan to test the Linux version more, the core UI appears to work but full workflows have not been validated.
Why is it such a large download? Electron apps comes with the chromium browser and Node.js runtime bundled in. It's a feature, albeit an expensive feature.
- git — must be on your
PATH(Guck drives the real git binary) - Node.js 18+ and npm — only needed to install/run from source
Guck has exactly one npm dependency: Electron, pinned to an exact version. Everything else is hand-written on Node/Electron built-ins — no other framework, no wrapper packages. Considering recent supply chain attacks for Node.js, I have really been trying to be less dependent on unnecessary dependencies.
npm install
npm startThe duck appears near the right edge of your screen. Click it to open the bar; drag it (or the bar, by its left-edge grip) to wherever you like — positions are remembered.
npm run packageThis assembles a double-clickable app at dist/Guck/Guck.exe (Windows),
dist/Guck/Guck.app (macOS), or dist/Guck/guck (Linux) from the Electron
runtime you already installed — no extra packaging tools. It's ~250 MB
because it bundles the Electron/Chromium runtime.
To start Guck automatically at login on Windows: press Win+R,
run shell:startup, and drop a shortcut to Guck.exe there.
- The ✕ at the right end of the bar collapses Guck back to the duck, meaning it will keep running quietly.
- Right-click the duck (or anywhere on the bar/panel) and choose Quit Guck to exit completely.
- Config (last directory, theme, duck/bar positions) lives at
%APPDATA%\guck\config.jsonon Windows (~/Library/Application Support/guckon macOS). - For HTTPS pull/push you can store a GitHub personal access token via the gear menu → remote & github auth. It is encrypted at rest with the OS keychain (DPAPI on Windows, Keychain on macOS), is never written to disk in plaintext, and never leaves your machine.
MIT

