All projects

In progress2026Personal

Gitnetix

A release-centric Git client with AI built in: no commit graph but a tree of branches under their release, worktrees where AI agents work in parallel, and a ship step that dates the changelog, moves main and tags it. Drivable from your phone.

Since
2026
Stack
  • Tauri 2
  • React
  • TypeScript
  • Rust
  • MCP
Links

Gitnetix is a Git client built around releases, with AI built in. The engine is in Rust, the interface in React, and Tauri 2 wraps both into a desktop app for Linux, macOS and Windows. The same interface also ships as a phone app that drives the desktop remotely.

A tree, not a graph

Most Git clients draw the commit graph: coloured rails, crossing merges, hundreds of dots. It shows what Git stored, not what you are working on. Gitnetix has no commit graph. It shows branches as a tree: main at the top, releases under it, features and fixes under their release. See your work, not your commits.

  • The orange path. The checked-out branch gets a glowing path drawn from main down to it, with a pulse running along it, and the branches it only passes by are dimmed. One glance tells you where you are and what you will merge into.
  • Merged work moves aside on its own, even after a squash-merged PR.
  • Shipped releases sit apart with their version tag. Delete the tag and the release reopens.
  • Falling behind gathers the stale branches, cleaned up in one click.

The workflow

  • Releases first. A release is a release/x.y.z branch cut from main (or from the latest tag for a hotfix). Features and fixes branch off it, either in place or in their own worktree.
  • Agents in parallel. An AI agent (Claude Code, Codex, Gemini…) can work on each branch at the same time, each in its own worktree, with its session log kept running when you switch project.
  • Ship. One action dates the Unreleased section of CHANGELOG.md, fast-forwards main to the release branch, tags vx.y.z and can push both.
  • AI where it saves time. Commit messages, branch names, PR descriptions, release notes, changelog updates, conflict resolutions and ticket triage, all driven by editable templates and per-task model routing: a light model for commit messages, a stronger one where it matters.

What it does

  • Workspace: the branch tree, commit lists that show local and origin side by side, diffs, stashes, rebase with conflict resolution.
  • Pull requests: GitHub and Azure DevOps sign-in through a device code, review threads, editing your own comments, closing and reopening, with “Improve” to polish a reply.
  • Tickets: Jira, Trello and Asana, planned into releases, a branch started from any ticket.
  • Analytics: releases shipped, lead time, merges and how many commit messages the AI wrote.

How it’s built

  • Finding each branch’s parent. The tree only works if every branch lands under the right release, so the engine works it out in order: the declared parent (a release base, or the branch you attached it to), then a merge commit that names where it went, then a GitHub or Azure DevOps pull request that took it in (or a squash that carries it), and otherwise the closest target by history: fewest commits of its own, then fewest missing. A branch whose ticket key shows up in a later squash gets a “likely merged” tag, and is never deleted automatically.
  • One RPC surface. Every client goes through the same table of methods: Tauri invoke on desktop, POST /rpc over HTTP for the phone or a browser, and MCP tools for agents. Adding a method there makes it available everywhere.
  • A phone that manages, a desktop that works. The mobile build ships the UI without the engine and pairs with a desktop (or a headless server) through a token.
  • An MCP bridge, so an agent can drive Gitnetix itself: claude mcp add gitnetix.
  • Tested on real repositories: an integration test runs the full release flow, from cutting a release to shipping and tagging, on an actual Git repository.

Posts about this project

No posts about this project yet.