<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: curioustore</title>
    <description>The latest articles on DEV Community by curioustore (@curioustore_48788631d0e2e).</description>
    <link>https://dev.to/curioustore_48788631d0e2e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3951469%2F0063106a-bb19-47ec-a975-494af57b10c9.jpg</url>
      <title>DEV Community: curioustore</title>
      <link>https://dev.to/curioustore_48788631d0e2e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/curioustore_48788631d0e2e"/>
    <language>en</language>
    <item>
      <title>gitwink — a read-only tray git glance for the AI-agent era</title>
      <dc:creator>curioustore</dc:creator>
      <pubDate>Thu, 28 May 2026 01:32:05 +0000</pubDate>
      <link>https://dev.to/curioustore_48788631d0e2e/gitwink-a-read-only-tray-git-glance-for-the-ai-agent-era-2km0</link>
      <guid>https://dev.to/curioustore_48788631d0e2e/gitwink-a-read-only-tray-git-glance-for-the-ai-agent-era-2km0</guid>
      <description>&lt;p&gt;I used to live in VS Code with GitLens pinned — the branch graph, heat-mapped blame, the lens annotations. That &lt;em&gt;was&lt;/em&gt; my git workflow.&lt;/p&gt;

&lt;p&gt;Then 2026 happened. With Cursor, Claude Code, and Codex doing the actual editing, the editor itself became optional. The only thing dragging me back was GitLens.&lt;/p&gt;

&lt;p&gt;That felt wasteful — booting an entire IDE just to peek at commit history. The agent runs the git commands now; I only need to sanity-check the result, occasionally, when something looks off.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://github.com/var-gg/gitwink" rel="noopener noreferrer"&gt;gitwink&lt;/a&gt;&lt;/strong&gt; — the smallest possible tool for &lt;em&gt;that&lt;/em&gt; loop. A tray icon that expands into a glance, hands the commit off as AI context, and gets out of the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read-only by design.&lt;/strong&gt; It cannot commit, push, merge, or modify anything. If I need git surgery, I tell the agent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6venpbizhsteqo1znby.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6venpbizhsteqo1znby.gif" alt="gitwink hero" width="520" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The 0.5-second confirm loop
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agent commits  →  tray click  →  inline expand  →  "Copy as AI context"
                                                  →  paste into Claude/Codex/Cursor
                                                  →  "did the agent do this right?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No window switching. No IDE boot. The whole loop fits inside a glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tray-resident&lt;/strong&gt; (Windows tray / macOS menu bar) — click to toggle, global hotkey &lt;code&gt;Ctrl+Shift+G&lt;/code&gt; to summon from anywhere. Right-click the tray icon for Reset position / Open settings file / Quit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First-run discovery&lt;/strong&gt; that walks your usual code dirs (&lt;code&gt;source&lt;/code&gt;, &lt;code&gt;Documents&lt;/code&gt;, &lt;code&gt;Projects&lt;/code&gt;, &lt;code&gt;Code&lt;/code&gt;, &lt;code&gt;Dev&lt;/code&gt;, &lt;code&gt;repos&lt;/code&gt;, &lt;code&gt;Desktop&lt;/code&gt;, every non-system drive on Windows; &lt;code&gt;~/Projects&lt;/code&gt;, &lt;code&gt;~/Code&lt;/code&gt;, &lt;code&gt;~/Developer&lt;/code&gt; on macOS) and caches the result in SQLite. No "add repo" friction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified commit timeline&lt;/strong&gt; across all repos, with chips above for filtering by Repo (search + pinning), Time range (24h / 3d / 7d / 30d / All), and Authors (multi-select with counts). Per-row markers — &lt;code&gt;●&lt;/code&gt; commit · &lt;code&gt;◆&lt;/code&gt; merge · &lt;code&gt;★&lt;/code&gt; tagged — and branch label badges when a commit isn't on the currently checked-out branch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single-repo DAG view&lt;/strong&gt; — pick a repo and the panel switches to a per-branch graph with a custom SVG lane drawer (eight-colour palette, hashed from branch name; main / master / develop kept neutral).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inline expand on click&lt;/strong&gt; — commit body + changed-file list with NEW/MOD/REN/DEL badges, &lt;code&gt;+/−&lt;/code&gt; line counts, &lt;code&gt;bin&lt;/code&gt; + size for binaries, GitLens-style filename emphasis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separate diff window&lt;/strong&gt; for the full read — file sidebar + side-by-side diff with synchronised horizontal scroll, PNG / JPG / GIF / WebP / SVG image preview (before / after, with checker background). Singleton, remembers position, size, and maximised state. Local Git LFS objects are looked up automatically; missing ones are explained inline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy as AI context&lt;/strong&gt; — &lt;code&gt;c&lt;/code&gt; key or button. Produces a markdown block with the commit, file list, and (if small enough) the full diff, ready to paste into Claude / Codex / Cursor.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The diff window
&lt;/h2&gt;

&lt;p&gt;For the &lt;em&gt;"wait, did the agent actually do that?"&lt;/em&gt; moments. Click any commit and a separate window opens — full file sidebar, side-by-side diff with synchronised scroll, inline image preview for binary assets, and a singleton that remembers position, size, and maximised state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhu4fz99wj7cvsa9u4vp.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhu4fz99wj7cvsa9u4vp.gif" alt="diff window" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://tauri.app/" rel="noopener noreferrer"&gt;Tauri 2&lt;/a&gt;&lt;/strong&gt; — Rust core, web frontend, native tray&lt;/li&gt;
&lt;li&gt;Rust + &lt;a href="https://crates.io/crates/git2" rel="noopener noreferrer"&gt;&lt;code&gt;git2&lt;/code&gt;&lt;/a&gt; for the git plumbing&lt;/li&gt;
&lt;li&gt;React + TypeScript for the panel&lt;/li&gt;
&lt;li&gt;SQLite for the repo discovery cache&lt;/li&gt;
&lt;li&gt;Custom SVG DAG drawer (eight-colour palette, hashed from branch name)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;No telemetry. No phone-home.&lt;/strong&gt; The only network access is an opt-out update check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Microsoft Store&lt;/strong&gt; — &lt;a href="https://apps.microsoft.com/detail/9P0S21GJD53F" rel="noopener noreferrer"&gt;gitwink on the Microsoft Store →&lt;/a&gt;. The Store build is signed by Microsoft during certification, so no SmartScreen prompt appears, and the Store owns updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WinGet:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;winget &lt;span class="nb"&gt;install &lt;/span&gt;gitwink
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Scoop:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scoop bucket add var-gg https://github.com/var-gg/scoop-bucket
scoop &lt;span class="nb"&gt;install &lt;/span&gt;gitwink
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Scoop installs by extraction, so no SmartScreen prompt either. Update later with &lt;code&gt;scoop update gitwink&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Or grab the release directly&lt;/strong&gt; — &lt;a href="https://github.com/var-gg/gitwink/releases/latest" rel="noopener noreferrer"&gt;latest release on GitHub&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt; — &lt;code&gt;.exe&lt;/code&gt; (NSIS installer) or &lt;code&gt;.msi&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS&lt;/strong&gt; — &lt;code&gt;.dmg&lt;/code&gt; (universal)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Direct downloads are currently unsigned (gitwink participates in the &lt;a href="https://signpath.org/" rel="noopener noreferrer"&gt;SignPath Foundation&lt;/a&gt; free code-signing program for OSS; the certificate will sign these artefacts once approved). The release notes have the SmartScreen / Gatekeeper bypass steps.&lt;/p&gt;

&lt;p&gt;Building from source is straightforward — &lt;code&gt;pnpm install &amp;amp;&amp;amp; pnpm tauri dev&lt;/code&gt;. Requires Node 20+, Rust stable (msvc toolchain on Windows), Visual C++ Build Tools or Xcode CLT.&lt;/p&gt;

&lt;h2&gt;
  
  
  Status
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;v0.4&lt;/strong&gt; — usable, daily-driven. Cold-start friendly tray app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows 10/11&lt;/strong&gt; — primary target, tested on dev hardware&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS 13+&lt;/strong&gt; — should work, less battle-tested&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux&lt;/strong&gt; — later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/var-gg/gitwink" rel="noopener noreferrer"&gt;&lt;strong&gt;Source on GitHub →&lt;/strong&gt;&lt;/a&gt; (MIT licensed)&lt;/p&gt;

&lt;p&gt;If the AI-agent workflow describes your week too, give it a wink. Feedback and issues welcome on &lt;a href="https://github.com/var-gg/gitwink/issues" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>rust</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
