Written by GuillaumeTechProject Gitnetix
Gitnetix, two weeks later: from v0.7 to v0.20
From October 25 to November 9, 2026, 37 releases of my Git client: a new theme, blame inside the diff, GitLab, Bitbucket and Gitea, Jira sprints in the analytics, profiles, local dictation, and agents you can message while they work.

Gitnetix is my release-centric Git client. The screenshots on its project page dated from October 25, 2026, at version 0.7.1. On November 9, it’s at version 0.20.5, 37 releases and 341 commits later. Those commits touch 190 files of the engine, the interface and the app, with 34,067 lines added and 4,368 removed. This article puts each old screenshot next to the new one, then shows the screens that didn’t exist yet.
The old screenshots show my own repositories. The new ones use the made-up data of the gitnetix.app demo: the Acme team, its acme-web, acme-api and design-system repositories, its pull requests and its Jira board.
Table of contents
- A new theme and a new frame
- The branch tree
- The diff and blame
- Pull requests
- Agents
- Release notes
- Analytics and tickets
- AI setup
- Profiles and a first-run setup
- Dictation
- Faster and safer
- How the new screenshots were made
- What’s next
A new theme and a new frame
On October 25, Gitnetix had a dark theme and a light theme, with an orange accent. Version 0.8.0 added more themes to pick from, with an Appearance pane that shows their colors. There are now 36, including Tokyo Night, Catppuccin, Rosé Pine, Dracula, Nord, Everforest and Kanagawa. Since 0.13.0, the app starts on Tokyo Night Storm until you pick another one. Since 0.12.0, the logo is drawn in the theme’s colors.
The frame changed too. The menu at the top left is gone. The profile button, at the top right, now opens the menu, and the settings, the AI setup and the templates open in a panel over the page (0.15.0). Worktrees & agents is no longer a page tab. It has its own square button at the top left, and opening it no longer disturbs the open project’s page (0.14.0).


The commit list loads older commits as you scroll, back to the repository’s first commit (0.13.0). The commit menu can now create or delete a tag (0.9.1 and 0.10.0).
The branch tree
The tree is still the main screen, with main at the top, releases under it, and features and fixes under their release. On October 28, version 0.12.0 added a commit graph preview beside the tree, with the local and origin tips, the tags and HEAD. Version 0.13.0 removed it the next day.


What changed in the tree:
- Agent state. A worktree’s tag shows its agent’s state (working, waiting or done) instead of “worktree”, and it glows while the agent works (0.13.2 and 0.14.0).
- Shipped cleanup. A button deletes the branches of shipped releases, locally and on origin, and keeps their tags (0.13.2).
- Find. Ctrl+F searches the tree and the diff, marks every match and steps through them with the arrows (0.15.0).
- Rename and rebase. You can rename a branch or an open release, locally and on origin (0.9.0), and rebase a branch onto any other one with “Rebase onto…” (0.11.0).
- Stopped operations. A branch stopped in the middle of a rebase, merge, cherry-pick or revert shows it in the tree, and its menu can abort the operation (0.17.2).
- Uncommitted changes. Switching branch or pulling with uncommitted changes asks what to do with them: bring them along, or stash them (0.11.1 and 0.11.2). Before, git refused and Gitnetix showed its error.
The diff and blame
There was no blame on October 25. Version 0.20.0 added it as a separate view, along with a file’s history, renames included. The next day, version 0.20.4 put blame in the diff itself and removed the view. You hover a line, or select a few, and the author of the commit that last changed it shows over its line number. Clicking the avatar opens that commit in the file’s history.

The rest of the diff moved too:
- Staging part of a file. You pick lines in the line numbers, or a whole hunk from its header, and a file can be both staged and unstaged (0.11.0). Picked lines can also be discarded, after a confirmation.
- Syntax colors, loaded per language without blocking the interface, a color swatch before hex values, and a code view for SVG files (0.10.0).
- Where the branch starts. A branch’s commit list ends with the commit where it left its base, in a “Branched from” section with its own reset actions (0.20.5).
Pull requests
In October, Gitnetix read pull requests from GitHub and Azure DevOps. Version 0.18.0 added GitLab, Bitbucket Cloud and Gitea. Their pull requests, reviews, protected branches and repository lists for cloning work as they do with GitHub, and releases publish to GitLab and Gitea. GitLab signs in with a code, on gitlab.com or on a self-managed server, and Bitbucket and Gitea through the browser.


The list now has a search box and a sync button (0.11.2), and a Mine, Others and All filter that is kept between visits (0.10.0). The welcome screen clones a repository, listing your GitHub repositories, last pushed first (0.18.0). When git can’t sign in to an HTTPS host, Gitnetix asks for a username and a token, saves them in the OS keychain and runs the action again.
Agents
The old screenshot showed the dialog that starts an agent session. It changed little. You still pick the project, the base, the ticket, the branch type and the agent. It now shrinks to a chip in a corner of the window (0.13.0), keeps its draft across pages and restarts, and has a mic for dictation.


Most of the work went into what happens after the start:
- Messaging an agent while it works. Messages wait in a queue and go out together when its turn ends (0.9.2). You can edit them, remove them or send them right away (0.18.0).
- Questions. An agent’s questions show as its chat bubbles, one per question, with answer buttons, and a question can take several answers (0.17.2).
- Each turn’s files. The log lists the files each turn changed, with added and removed lines. Clicking one opens that turn’s diff (0.18.0).
- Usage limits. When a CLI stops at a usage limit, the session waits for the reset, then goes on with its queued messages (0.19.0).
- Each CLI’s models. GitHub Copilot, Codex and Gemini pick their model from a menu read from their CLI, and the effort menu shows only the levels the model takes (0.20.5).
- An app that stays smooth. Agents and every command they start run below the app’s CPU priority. Before, a build on every core slowed the app’s drawing about 4 times (0.17.3).

Release notes
The screen kept its shape: a range of tags or branches, a template, a language, then the text. The language choice has a third option, “Template base”. With it, AI writes in each language the template asks for, so a template that asks for French and English gets both (0.18.1). The prompts now include the pull requests, the changed files and the diff.


Shipping can update and date the changelog as the release ships (0.9.1), and it now pushes before moving main and creating the tag, so a refused push leaves the release open (0.19.6). Version 0.17.2 also added global skills, which go in front of every template. The one shipped by default, Unslop, keeps the writing free of the words and patterns that give machine-written text away.
Analytics and tickets
The commits tab looks like it did in October. Clicking a day shows its commits by person and type, and clicking a release shows its features, fixes and merged branches (0.9.0). Since 0.19.0, you can count only one or a few people, and each person’s email addresses are grouped under one name.


The new tab is named after the connected ticket trackers. For Jira, it charts the running sprint and the ones before it: the burndown against the ideal line, the velocity, the bugs fixed, the estimated hours left on tickets not completed, and the completion per person. Each ticket shows how long it took from the start of work to done, from its Jira history, and tickets open longer than 85% of the finished ones are flagged. Every chart opens as a table and exports as CSV, and “Ask AI” answers questions about the sprints on screen (0.19.0). The Weekly view counts the tickets done per week and per person in Jira, Trello, Asana and, since 0.19.2, GitHub issues.

AI setup
AI setup now opens in the menu panel instead of taking over the screen. Gemini runs through the Antigravity CLI (agy) since 0.18.0, with its own effort choice since 0.20.5, and Claude now has a Max effort level. Gitnetix also finds CLIs that are not on PATH, such as those installed through nvm or shipped with the Claude Desktop app.


Commit messages, branch names and PR descriptions start faster, because they no longer open a full Claude Code session in the repository (0.17.3).
Profiles and a first-run setup
Version 0.15.0 added profiles. Each keeps its own projects, connections, tokens, AI setup and settings, with a name, an emoji, a photo or a Gravatar, and a color. Since 0.16.0, a profile has one Git identity for all its projects, prefilled from the git config (0.17.3). The settings panel shows the active profile at the top, with the others beside it.

A new profile opens on a first-run setup: the theme, the profile, the agent, the Git host, Jira, the Git identity, the dictation shortcut and phone pairing (0.16.0). Since 0.18.0, every step can be skipped except agent setup. You can’t go on until an agent CLI (Claude Code, Codex, Antigravity, GitHub Copilot or Ollama) answers a test, and each one has a button that opens its download page.

The shortcuts page lists every keyboard shortcut and lets you change each one (0.17.0).
Dictation
Since 0.10.0, you can dictate into any text box with a shortcut, or with the mic on the phone. Transcription runs on the computer. The first version used Whisper, with a model per language. Since 0.13.1, it’s Parakeet Ultra, which detects the language by itself, in English, French and 23 more European languages, even mixed in one sentence. The 740 MB model downloads once. Dictation gets the names of the projects, the branch and the changed files as vocabulary, and AI can rewrite the text cleanly. Without that rewrite, nothing you say leaves the computer.

Faster and safer
Part of the 341 commits doesn’t show in the screenshots:
- Fewer git calls. Gitnetix watches each checkout’s files and refreshes on save, instead of checking every 4 seconds. It fetches origin only when its branches or tags moved, with an
ls-remoteevery 5 seconds while the window is visible. All refs are read in one git call, because each git process costs about 40 ms on Windows (0.17.4). - Less work for the interface. Endless animations run on one shared 12 fps tick and pause after 30 seconds without input (0.13.1 and 0.17.1). Dialogs no longer draw a blurred shadow (0.17.3).
- Security checks. Version 0.19.6 accepts an OAuth callback only when it carries the state of the sign-in in progress, refuses a saved token when the server changes, removes the user and password from logged URLs, checks the token before reading an RPC request’s body, and drops ref names that start with a dash, so no git command reads them as options.
How the new screenshots were made
The new screenshots show the real 0.20.5 interface, opened in a browser and connected to a headless Gitnetix server. That server runs on git repositories made for the occasion with the people and branches of the site’s demo: Grace Hopper, Ana Moreau, Jules Laurent, Riya Kapoor and Tom Becker, releases 0.4.0 to 0.5.2 shipped and 0.6.0 under way. The tree, the history, blame and the commit analytics come from those repositories. The pull requests, the Jira board, the AI-written notes, the agent session and the CLI models are made-up answers, slipped in between the interface and the server.
What’s next
The to-do list in the repository starts with a rework of Worktrees & agents, an Undo action, and a dashboard that gathers the pull requests and analytics of every repository.


