tratto

What's new in tratto

Every version, newest first: what is new, what was fixed and what we know is not right yet.

tratto 0.3.0

· Released for Linux

What's new

  • Stage a hunk or just some lines. Each hunk in the diff has Stage hunk and Unstage hunk, and you can pick lines in the gutter and move only those; previews follow your .gitattributes, and a file that can only move whole says so instead of offering lines.
  • Conflicts seen before the pull request. tratto checks your active branches against the base and against each other, without touching your working copy, and marks a branch that would conflict, with the files in its tooltip; a pair it could not check shows as unknown, never as clean.
  • Agents on your other machines. Add your machines in Settings › Agents and the Agents module shows a card for each, this one first, with the reason when one is down; choose a machine to see its worktrees and tasks, how each session runs (terminal, tmux or claude --bg) and whether you can take it over.
  • A simpler Settings window. Settings has one panel per module and shows only what works: nothing marked Soon, a layer bar only where a profile or the open project can change a value, and Configure in Modules opens that module's panel.
  • A new first-start assistant. A step list on the side, the required step checked before you continue, and tratto runs for you only what is reversible and needs no administrator (git config, an SSH key, signing in to GitHub or GitLab in the browser, cloning, installing the AI agents); package managers stay a command to copy, with a button to check again.
  • The full menu on a file in Local Changes. Discard or Delete, Revert Mode Change, Open Diff in your diff tool, Export Diff as Patch, Edit in your editor, Edit HEAD Version, Open Folder, Copy Path and Path Display Style, on one file or on the whole selection.
  • A new version announces itself. When an update is downloaded, Notifications gets a row with Restart now and What's new, plus one system notification per version; you can turn it off in Settings › Updates.
  • Choose your icons. Settings › General › Icons: Phosphor (the new default), Material or Lucide, redrawn at once without a restart.
  • The history in its lane colours. Graph lanes have distinct colours, each row can be tinted in its lane's colour, and branch labels can sit next to the node in the graph, in the lane's colour; each is an option in Settings › Git › History.
  • Quicker motion. Switching modules, the palette and the shortcuts sheet open instantly from the keyboard and with one short curve from a click, and Reduce Motion (from your system or from Settings) turns every transition into a short fade.
  • A wider workspace sidebar. Drag its right edge to make it wider; the width is kept while tratto runs.

Fixed

  • Diff of a new file with whitespace ignored. With Ignore whitespace on, a new, untracked file showed "Git could not do it." instead of its content.
  • Module shortcuts no longer clash with the desktop. Modules switch with Ctrl+Alt+1 to 6 on Linux (⌃⌘1 to 6 on macOS), instead of keys your desktop or screen reader already uses.
  • Screen readers and long paths. Commit and file rows can be read and activated by a screen reader, long file paths are cut in the middle so the file name stays visible, and counts use the right plural.

Known issues

  • Other machines' agents are read-only. You can see another machine's agents and sessions; starting or stopping them there comes in a later version.
  • Settings reach other windows on restart. A setting changed in one window shows in the others after they restart; nothing is lost.
  • The tarball does not update itself. Only the AppImage installs updates; for the tarball, unpack the new version and run its install.sh to add it to your desktop menu.
  • macOS is not available yet. The macOS version comes once it is signed and notarized.
  • Windows is not supported yet. The Windows version is on its way.
  • Not built yet. Interactive rebase, blame and file history come in later versions.
În română · 28 octombrie 2026

Ce e nou

  • Stage pe un hunk sau doar pe câteva linii. Fiecare hunk din diff are Stage hunk și Unstage hunk, iar liniile le alegi în marginea diff-ului și muți numai ce ai ales; previzualizările urmează .gitattributes, iar un fișier care se poate muta doar întreg spune asta în loc să ofere linii.
  • Conflictele văzute înainte de pull request. tratto verifică ramurile active față de bază și una față de alta, fără să atingă copia de lucru, și marchează ramura care ar intra în conflict, cu fișierele în tooltip; o pereche pe care n-a putut-o verifica apare ca necunoscută, niciodată ca fără conflict.
  • Agenții de pe celelalte mașini. Îți adaugi mașinile în Setări › Agenți, iar modulul Agenți arată câte un card pentru fiecare, întâi pe cea curentă, cu motivul când una nu răspunde; alegi o mașină ca să vezi worktree-urile și sarcinile ei, cum rulează fiecare sesiune (terminal, tmux sau claude --bg) și dacă o poți prelua.
  • O fereastră de Setări mai simplă. Setările au câte un panou pe modul și arată numai ce funcționează: nimic marcat „În curând”, bara straturilor numai unde un profil sau proiectul deschis poate schimba valoarea, iar Configurează din Module deschide panoul acelui modul.
  • Un asistent de prim start nou. O listă de pași pe lateral, pasul obligatoriu verificat înainte să continui, iar tratto rulează singur numai ce e reversibil și nu cere administrator (git config, o cheie SSH, conectarea la GitHub sau GitLab din browser, clonarea, instalarea agenților AI); managerii de pachete rămân o comandă de copiat, cu un buton care verifică din nou.
  • Meniul complet pe un fișier din Local Changes. Discard sau Delete, Revert Mode Change, Open Diff în unealta ta de diff, Export Diff as Patch, Edit în editorul tău, Edit HEAD Version, Open Folder, Copy Path și Path Display Style, pe un fișier sau pe toată selecția.
  • O versiune nouă se anunță singură. Când s-a descărcat o actualizare, Notifications primește un rând cu Repornește acum și Ce e nou, plus o notificare de sistem pentru fiecare versiune; o poți opri din Setări › Actualizări.
  • Îți alegi iconițele. Setări › General › Iconițe: Phosphor (noul implicit), Material sau Lucide, redesenate pe loc, fără repornire.
  • Istoria în culorile benzilor. Benzile grafului au culori distincte, fiecare rând poate fi nuanțat în culoarea benzii lui, iar etichetele ramurilor pot sta lângă nod, în graf, în culoarea benzii; fiecare e o opțiune în Setări › Git › Istoric.
  • Mișcare mai rapidă. Schimbarea modulului, paleta și foaia de scurtături se deschid instant din tastatură și cu o singură curbă scurtă din clic, iar Reduce Motion (din sistem sau din Setări) face din orice tranziție un fade scurt.
  • Bara laterală a workspace-urilor mai lată. Îi tragi marginea dreaptă ca s-o lărgești; lățimea se păstrează cât rulează tratto.

Reparat

  • Diff-ul unui fișier nou cu spațiile ignorate. Cu Ignoră spațiile pornit, un fișier nou, netrackuit, arăta „Git n-a putut face asta.” în loc de conținutul lui.
  • Scurtăturile modulelor nu se mai bat cu desktopul. Modulele se schimbă cu Ctrl+Alt+1 până la 6 pe Linux (⌃⌘1 până la 6 pe macOS), în locul tastelor pe care le folosesc deja desktopul sau cititorul de ecran.
  • Cititoarele de ecran și căile lungi. Rândurile de commit și de fișier pot fi citite și activate de un cititor de ecran, căile lungi se taie la mijloc ca numele fișierului să rămână vizibil, iar contoarele folosesc pluralul corect.

Cunoscut

  • Agenții de pe alte mașini sunt numai de citit. Vezi agenții și sesiunile altei mașini; pornirea sau oprirea lor acolo vine într-o versiune următoare.
  • Setările ajung în celelalte ferestre la repornire. O setare schimbată într-o fereastră apare în celelalte după ce repornesc; nu se pierde nimic.
  • Arhiva .tar.gz nu se actualizează singură. Numai AppImage-ul instalează actualizări; pentru arhivă, despachetezi versiunea nouă și rulezi install.sh din ea ca s-o adaugi în meniul desktopului.
  • macOS nu e încă disponibil. Versiunea pentru macOS vine după ce e semnată și notarizată.
  • Windows nu e încă suportat. Versiunea pentru Windows e pe drum.
  • Încă neconstruite. Rebase-ul interactiv, blame și istoricul unui fișier vin în versiunile următoare.

tratto 0.2.1

· Released for Linux

What's new

  • Any module in a new window. Right-click a module in the module bar, Ctrl+click it, or use New Window in Quick Command: it opens in its own window on the current project, and each window keeps its own module and project, so you can watch Agents in one window while you work in Git on another project.
  • Windows that know each other. Opening a module in a new window when another window already shows it on the same project brings that window forward on Hyprland; elsewhere tratto says it is already open and offers Open Anyway. Settings, pins, workspaces and Home pages written by one window no longer erase what another wrote.
  • Updates wait for your other windows. An update is installed only when the last window closes; Restart now explains why it waits while another window is still open.

Fixed

  • Discard and Stash on a moved submodule. Discard on a submodule whose recorded commit is not on this machine offers to fetch it and bring the submodule back, nested submodules come back too, and Stash no longer reports success while leaving a moved submodule untouched.
  • What changed in a submodule. The diff of a moved submodule shows the recorded commit and the current one, with their subjects and how many commits it is ahead or behind.

Known issues

  • Settings reach other windows on restart. A setting changed in one window shows in the others after they restart; nothing is lost.
  • The tarball does not update itself. Only the AppImage installs updates; for the tarball, unpack the new version and run its install.sh to add it to your desktop menu.
  • macOS is not available yet. The macOS version comes once it is signed and notarized.
  • Windows is not supported yet. The Windows version is on its way.
  • Not built yet. Interactive rebase, blame and file history come in later versions.
În română · 22 octombrie 2026

Ce e nou

  • Orice modul într-o fereastră nouă. Clic dreapta pe un modul din bara modulelor, Ctrl+clic pe el sau Fereastră nouă din Comandă rapidă: se deschide în fereastra lui, pe proiectul curent, iar fiecare fereastră își păstrează modulul și proiectul, ca să urmărești Agenți într-o fereastră în timp ce lucrezi în Git pe alt proiect.
  • Ferestre care știu una de alta. Dacă deschizi într-o fereastră nouă un modul pe care altă fereastră îl arată deja pe același proiect, pe Hyprland vine în față acea fereastră; în rest, tratto spune că e deja deschis și oferă Deschide oricum. Setările, pinurile, workspace-urile și paginile Home scrise de o fereastră nu mai șterg ce a scris alta.
  • Actualizările așteaptă celelalte ferestre. O actualizare se instalează abia când se închide ultima fereastră; Repornește acum îți explică de ce așteaptă cât mai e deschisă altă fereastră.

Reparat

  • Discard și Stash pe un submodul mutat. Discard pe un submodul al cărui commit reținut nu e pe mașina asta oferă să-l aducă și readuce submodulul, submodulele imbricate revin și ele, iar Stash nu mai raportează succes lăsând neatins un submodul mutat.
  • Ce s-a schimbat într-un submodul. Diff-ul unui submodul mutat arată commit-ul reținut și pe cel curent, cu subiectele lor și cu câte commit-uri e înainte sau în urmă.

Cunoscut

  • Setările ajung în celelalte ferestre la repornire. O setare schimbată într-o fereastră apare în celelalte după ce repornesc; nu se pierde nimic.
  • Arhiva .tar.gz nu se actualizează singură. Numai AppImage-ul instalează actualizări; pentru arhivă, despachetezi versiunea nouă și rulezi install.sh din ea ca s-o adaugi în meniul desktopului.
  • macOS nu e încă disponibil. Versiunea pentru macOS vine după ce e semnată și notarizată.
  • Windows nu e încă suportat. Versiunea pentru Windows e pe drum.
  • Încă neconstruite. Rebase-ul interactiv, blame și istoricul unui fișier vin în versiunile următoare.

tratto 0.2.0

· Released for Linux

What's new

  • Updates from inside the app. On Linux the AppImage checks for a new version, downloads it and installs it when you restart or quit; Settings › Updates shows the last check and why one failed.
  • Stash only what you pick. Stash Changes… in the Local Changes menu stashes just the selected files or folders; a stash that would come out empty is refused with the reason, and a Git repository nested in yours shows with its own name.
  • Stashes on a remote, applied in parts. Each stash says whether it lives only on this machine; push it to a remote, fetch it back on another machine, or delete it from the remote. Bring just the files, folders, hunks or lines you choose into Local Changes, and the stash stays in the list.
  • Ignore from Local Changes. Ignore an untracked file, its extension or a folder, in .gitignore or in the repository's exclude file, without duplicates; Settings › Git › Ignore shows both files and lets you edit them.
  • A fuller Local Changes menu. Delete a file to the trash, revert a mode change, open the diff in your external tool, export it as a patch, edit the file or its HEAD version in your editor, open its folder, copy its path, and switch between tree and list.
  • Many branches at once. Select several local branches, remote branches or tags in the sidebar and delete them together, locally and on the remote, after a dialog that names each one; Mute hides a branch from the history.
  • Pull without switching. Pull a branch you have not checked out from its menu or its badge, pull every branch of a repository, or fetch and pull a whole workspace and see each repository's state.
  • More from the history. Cherry-pick or revert a commit with Continue and Abort on a conflict, undo the last commit, reset to a commit after seeing what is lost, see whether each tag is on the remote, list the commits a merge brought in, and ask the AI to summarize, review or discuss a commit.
  • Pull and merge requests. tratto knows GitHub, GitLab, Bitbucket, Azure DevOps and Gitea hosts, opens or creates a pull or merge request with a description you or the AI write, and gathers the requests waiting for you in an inbox where you can approve and merge them.
  • Git Flow. Initialize, then start and finish features, releases and hotfixes, compatible with git-flow AVH.
  • Notifications. A bell with a badge gathers what happened in all your repositories; desktop notifications on Linux take you to the repository and branch, and you choose which repositories and branches notify, with or without sound.
  • The Agents module. Follow the Claude Code sessions on your machine, with their worktrees, sub-agents, the files each one changed, time and cost; send a session a new prompt, ask for its state, or start a new one in tmux.
  • Usage and your machine. The status bar shows CPU, memory and the Claude and Codex quotas; a click opens the Usage panel with pace and cost per day and month, or the This machine panel; sound alerts can warn of a busy CPU, a quota reset or a quota at 90%.
  • Set up, step by step. On the first start an assistant walks you through setup, can be left and resumed, and ends with what each module still needs; Connections shows tmux, SSH and Tailscale with the steps for your system.
  • Easier to move around. Settings has a sidebar, search and cards; the menu bar shows only the menus of the open module; Home, the modules, Notifications and Quick Command sit at the top of the sidebar; Home lists each repository's worktrees; Enter confirms dialogs; Discard Files keeps a copy in the Trash, ready to restore.

Fixed

  • Shortcuts on Linux. Every shortcut fires, also when the keyboard reports Meta together with Alt or the focus is nowhere.
  • Merge, pull and cherry-pick say what happened. An empty cherry-pick or revert is reported as empty, not failed, and a merge started over an unfinished cherry-pick, revert or rebase is stopped before Git runs.
  • Discarding a submodule. It goes back to the commit your repository records.
  • Notifications. Mark all as read shows the rows as read, Esc closes the page, and a click on a notification brings the window forward on Hyprland.

Known issues

  • Coming from 0.1.0, update by hand once. 0.1.0 cannot install updates itself: download 0.2.0 from the download page. From 0.2.0 on, the AppImage updates itself.
  • The tarball does not update itself. Only the AppImage installs updates; for the tarball, unpack the new version and run its install.sh to add it to your desktop menu.
  • macOS is not available yet. The macOS version comes once it is signed and notarized.
  • Windows is not supported yet. The Windows version is on its way.
  • Not built yet. Interactive rebase, blame and file history come in later versions.
În română · 21 octombrie 2026

Ce e nou

  • Actualizări din aplicație. Pe Linux, AppImage-ul caută singur o versiune nouă, o descarcă și o instalează când repornești sau închizi aplicația; Setări › Updates arată ultima verificare și de ce a eșuat una.
  • Stash numai pe ce alegi. Stash Changes… din meniul Local Changes pune deoparte numai fișierele sau folderele selectate; un stash care ar ieși gol e refuzat cu motivul, iar un depozit Git încorporat în al tău apare cu numele lui.
  • Stash-uri pe remote, aplicate pe bucăți. Fiecare stash spune dacă există numai pe mașina asta; îl trimiți pe un remote, îl aduci înapoi pe altă mașină sau îl ștergi de pe remote. Aduci în Local Changes numai fișierele, folderele, hunk-urile sau liniile pe care le alegi, iar stash-ul rămâne în listă.
  • Ignore din Local Changes. Ignori un fișier netrackuit, extensia lui sau un folder, în .gitignore sau în fișierul exclude al depozitului, fără dubluri; Settings › Git › Ignore arată ambele fișiere și te lasă să le editezi.
  • Un meniu Local Changes mai complet. Ștergi un fișier la coș, anulezi o schimbare de mod, deschizi diff-ul în unealta ta externă, îl exporți ca patch, editezi fișierul sau versiunea lui din HEAD în editorul tău, îi deschizi folderul, îi copiezi calea și treci între arbore și listă.
  • Mai multe ramuri deodată. Selectezi în sidebar mai multe ramuri locale, ramuri remote sau tag-uri și le ștergi împreună, local și pe remote, după un dialog care le numește pe fiecare; Mute ascunde o ramură din istoric.
  • Pull fără să schimbi ramura. Faci pull pe o ramură pe care nu ești, din meniul ei sau din badge, pe toate ramurile unui depozit, sau fetch și pull pe un spațiu de lucru întreg, cu starea fiecărui depozit.
  • Mai mult din istoric. Cherry-pick sau revert pe un commit, cu Continue și Abort la conflict, anulezi ultimul commit, faci reset la un commit după ce vezi ce se pierde, vezi dacă fiecare tag e pe remote, vezi commit-urile aduse de un merge și ceri AI-ului să rezume, să revizuiască sau să discute un commit.
  • Pull request-uri și merge request-uri. tratto recunoaște gazdele GitHub, GitLab, Bitbucket, Azure DevOps și Gitea, deschide sau creează o cerere cu descrierea scrisă de tine sau de AI și adună cererile care te așteaptă într-o listă din care le aprobi și le faci merge.
  • Git Flow. Inițializezi, apoi pornești și închei feature-uri, release-uri și hotfix-uri, compatibil cu git-flow AVH.
  • Notificări. Un clopoțel cu badge adună ce s-a întâmplat în toate depozitele; notificările de sistem pe Linux te duc la depozit și ramură, iar tu alegi ce depozite și ramuri notifică, cu sunet sau fără.
  • Modulul Agents. Urmărești sesiunile Claude Code de pe mașina ta, cu worktree-urile, sub-agenții, fișierele schimbate de fiecare, timpul și costul; trimiți unei sesiuni un prompt nou, îi ceri starea sau pornești una nouă în tmux.
  • Consumul și mașina ta. Bara de stare arată CPU-ul, memoria și cotele Claude și Codex; un clic deschide panoul Usage, cu ritmul și costul pe zi și pe lună, sau panoul This machine; alertele cu sunet te pot anunța de un CPU încărcat, de resetarea unei cote sau de o cotă la 90%.
  • Configurare pas cu pas. La prima pornire, un asistent te conduce prin configurare, poate fi lăsat și reluat și se încheie cu ce îi mai trebuie fiecărui modul; Connections arată tmux, SSH și Tailscale, cu pașii pentru sistemul tău.
  • Mai ușor de navigat. Settings are bară laterală, căutare și carduri; bara de meniu arată numai meniurile modulului deschis; Home, modulele, Notifications și Quick Command stau în capul sidebar-ului; Home arată worktree-urile fiecărui depozit; Enter confirmă dialogurile; Discard Files păstrează o copie în Trash, gata de restaurat.

Reparat

  • Scurtăturile pe Linux. Orice scurtătură se declanșează, și când tastatura raportează Meta împreună cu Alt sau focusul nu e nicăieri.
  • Merge-ul, pull-ul și cherry-pick-ul spun ce s-a întâmplat. Un cherry-pick sau revert gol e raportat gol, nu eșuat, iar un merge pornit peste un cherry-pick, revert sau rebase neterminat e oprit înainte să ruleze Git.
  • Aruncarea modificărilor unui submodul. Submodulul revine la commit-ul pe care îl reține depozitul tău.
  • Notificările. Mark all as read arată rândurile citite, Esc închide pagina, iar clicul pe o notificare aduce fereastra în față pe Hyprland.

Cunoscut

  • De la 0.1.0, actualizezi o dată de mână. 0.1.0 nu-și poate instala singură actualizările: descarcă 0.2.0 de pe pagina de descărcare. De la 0.2.0 încolo, AppImage-ul se actualizează singur.
  • Arhiva .tar.gz nu se actualizează singură. Numai AppImage-ul instalează actualizări; pentru arhivă, despachetezi versiunea nouă și rulezi install.sh din ea ca s-o adaugi în meniul desktopului.
  • macOS nu e încă disponibil. Versiunea pentru macOS vine după ce e semnată și notarizată.
  • Windows nu e încă suportat. Versiunea pentru Windows e pe drum.
  • Încă neconstruite. Rebase-ul interactiv, blame și istoricul unui fișier vin în versiunile următoare.

tratto 0.1.0

· Released for Linux

What's new

  • The first public version. tratto is a Git client for the desktop whose interface is data: themes, texts, menus and settings live in files you can change without rebuilding the app.
  • History you can read. Branches and merges are drawn as a graph; commits that exist only on the remote are dimmed, and the ones you have not pushed yet are marked.
  • 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.
  • Branches, remotes and tags. Create, switch, track and delete branches; fetch, pull by merge or rebase, and push; add and remove remotes; create, push and delete tags.
  • Changes and commits. Stage, unstage and commit, see whether a commit is signed, merge and resolve conflicts, and save or apply a stash.
  • Repositories. Workspaces for your projects, clone, worktrees, submodules, subtrees, and a search across the whole repository.
  • An AI copilot on your machine. Claude Code or Codex writes a commit message from the staged changes, explains a change, and can restyle the window; anything that deletes waits for your yes.
  • Made to be read. Two styles, Violet and Classic, each dark and light; zoom from 50 to 200%; English and Romanian; every list usable from the keyboard.

Fixed

None.

Known issues

  • macOS is not available yet. The macOS version comes once it is signed and notarized.
  • Windows is not supported yet. The Windows version is on its way.
  • Not built yet. Interactive rebase, blame and file history, and external diff and merge tools come in later versions.
În română · 20 octombrie 2026

Ce e nou

  • Prima versiune publică. tratto e un client Git pentru desktop în care interfața e date: temele, textele, meniurile și setările stau în fișiere pe care le poți schimba fără să reconstruiești aplicația.
  • Un istoric care se citește. Ramurile și merge-urile sunt desenate ca graf; commit-urile care există numai pe remote sunt estompate, iar cele pe care nu le-ai trimis încă sunt marcate.
  • Diff-ul alăturat. Alăturat sau unificat, cu regulile pentru spații, caracterele invizibile și liniile rupte ca setări; imaginile au diff-ul lor.
  • Ramuri, remote-uri și tag-uri. Creezi, schimbi, urmărești și ștergi ramuri; fetch, pull prin merge sau rebase, și push; adaugi și scoți remote-uri; creezi, trimiți și ștergi tag-uri.
  • Modificări și commit-uri. Stage, unstage și commit, vezi dacă un commit e semnat, faci merge și rezolvi conflictele, salvezi sau aplici un stash.
  • Depozite. Spații de lucru pentru proiecte, clone, worktree-uri, submodule, subtree-uri și căutare în tot depozitul.
  • Un copilot AI pe mașina ta. Claude Code sau Codex scrie mesajul de commit din modificările pregătite, explică o modificare și poate schimba aspectul ferestrei; orice ștergere așteaptă „da"-ul tău.
  • Făcut ca să se citească. Două stiluri, Violet și Classic, fiecare întunecat și luminos; zoom de la 50 la 200%; engleză și română; orice listă se folosește din tastatură.

Reparat

Nimic.

Cunoscut

  • macOS nu e încă disponibil. Versiunea pentru macOS vine după ce e semnată și notarizată.
  • Windows nu e încă suportat. Versiunea pentru Windows e pe drum.
  • Încă neconstruite. Rebase-ul interactiv, blame și istoricul unui fișier, uneltele externe de diff și merge vin în versiunile următoare.