tratto

A Git client whose interface is data.

tratto is a desktop Git client for people with many repositories and AI agents. Its themes, texts, settings and layout are files that you, or the copilot, change while it runs. Underneath, a Rust core does the Git work and does not know the interface exists.

Download for Linux AppImage · x86_64
tratto's Git view: workspaces on the left, the commit graph and history in the middle, the changed files and a side-by-side diff below, branches, remotes, tags, stashes, submodules, subtrees and worktrees on the right.

History and diff. The commit graph, the history and a side-by-side diff of the selected commit, on tratto's own repository.

Interface as data

Your interface is a file

Change one line of the settings and the window changes with it. Nothing is rebuilt and nothing restarts.

~/.config/tratto/settings.jsonas shipped
1 {2   "general.appearance": "dark",3   "general.style": "violet"4 }
The same Git window in the Violet dark style.

Features

What it does today

Version 0.1 is early. Everything below is in the build you can download; what is not built yet says so.

The Home page: workspaces and the repositories found on this computer, each with its branch.

All your repositories, one page

Workspaces for your projects, and the repositories on this computer found for you, each with its branch, how far it is from its upstream and how many files changed.

The commit graph and history list, with branch labels and authors.

History you can read

Branches and merges drawn as a graph. Commits that exist only on the remote are dimmed, and the ones you have not pushed yet are marked.

A side-by-side diff of a Dart file, removed lines in red on the left, added lines in green on the right.

A diff side by side

Side by side or unified, with whitespace rules, invisible characters and wrapped lines as settings. Images get a diff of their own.

The Diff tab of the settings: diff layout, invisible characters, wrap and whitespace options, with some options marked Soon.

Settings that tell the truth

Every option comes from one schema and lives in a file. An option that is not built yet is greyed out and says “Soon” instead of pretending.

A core that decides once

Git runs behind tratto-sidecar, a separate Rust program that answers in JSON, one object per line. The interface draws the answer; it never parses Git itself.

crates/tratto-sidecar/tests/transcripts/history.jsonlexcerpt
<{"id":0,"ok":{"protocol":28,"git":"<git>","floor":true}}>{"id":1,"method":"open","params":{"path":"<repo>"}}<{"id":1,"ok":{"repo":1,"worktree":"<repo>","git_dir":"<repo>/.git","bare":false,"object_format":"sha1","ref_storage":"files"}}>{"id":10,"method":"count","params":{"repo":1,"cursor":"1.1"}}<{"id":10,"ok":{"commits":4}}

A copilot that can change the app

It runs Claude Code or Codex on your machine, in the project's repository. Because the interface is data, it can restyle the window or move a setting through tratto's own tools, served only on 127.0.0.1. Anything that deletes waits for your yes.

  • style_set
  • settings_set
  • sidebar_set
  • mode_set
  • workspace_create
  • workspaces_list
  • open_project

Install

One line in a terminal

It downloads the latest build, checks its SHA-256 and gets it ready to run. Every file and checksum is on the download page.

Reading the latest release…

Built today

Everything else

The rest of what is built, by area.

Branches and remotes

  • Create, switch, track and delete branches
  • Fetch, pull by merge or rebase, and push
  • Add and remove remotes, change their URL
  • Create, push and delete tags
  • Activity: who pushed what, and where, after a fetch

Changes and commits

  • Stage, unstage and commit
  • The signature state of each commit
  • Merge, see the files in conflict, abort
  • Stash: save, apply, pop and drop
  • Shrink PNG and SVG files, strip JPEG metadata, and undo it

Repositories

  • Workspaces for your projects, and the repositories on this computer found for you
  • Clone
  • Worktrees: add, lock, unlock, prune and remove
  • Submodules: update and sync
  • Subtrees: add, pull and push
  • Search the whole repository, as text or regular expression

With an AI tool

  • A commit message written from the staged changes
  • Explain changes, for the staged files or one file
  • Claude Code or Codex, run by tratto on your machine

The interface

  • Two styles, Violet and Classic, each dark and light
  • Zoom from 50 to 200%
  • English and Romanian
  • Lists and trees from the keyboard, with a visible focus ring
  • Text contrast of 4.5:1 or better in all four themes, checked by a test

Not built yet

  • Interactive rebase
  • Blame and file history
  • External diff and merge tools
  • Windows

Get started

Install it, then make it yours

Free and open source. Found something wrong? Open an issue.

Download for Linux AppImage · x86_64