Tortilla

The git client that lives in your file manager.

Right-click in Explorer, Nautilus, Dolphin and friends to commit, diff, blame or open the log. Behind that menu is a complete history client, with your pull requests and their CI right on your branches. Native on Windows and Linux, and fast.

Get Tortilla View on GitHub

Tortilla's mascot: a cheerful green turtle whose shell is a taco, filled with lettuce, tomato and cheese

Not a web page pretending to be an application

We think Tortilla is the most capable file-manager-integrated git client on any platform. Here's what makes it different.

Native everywhere

Built on rapport, which uses each platform's real widgets: Win32 on Windows; GTK 4, GTK 3 or Qt 6 on Linux, picked to match your desktop. Your theme, fonts, dark mode and scaling apply, because they're the toolkit's own.

Instant

It opens at once and scrolls through years of history at your display's refresh rate. C++, libgit2 for reading the repository, git for the work, and nothing slow on the UI thread.

Forge-aware

Pull requests from GitHub, GitLab, Gitea and Forgejo sit on your branches' labels, with their CI marks. Create, merge or close them without leaving the log.

At home if you know TortoiseGit

Its dialogs and menus, so the muscle memory carries over, and now on Linux too. Right-click a folder, pick Commit or Show log, and you're there.

What's in the shell

  • In your file manager

    TortoiseGit's menu in Explorer, Nautilus, Nemo, Caja, Thunar, Dolphin and PCManFM, an icon on every entry, each where you want it. On Windows, badges show what's modified, added or conflicted at a glance (not yet on Linux).

  • Log and commit graph

    Branch, tag and pull request labels, filters, and a Show menu: all branches, my branches, pull requests, branch tips only, only what's not merged. Drag a label to move a branch; double-click to switch.

  • Sync

    One Fetch button fetches every remote side by side and fast-forwards the branches you aren't on. Before you click, its badge says what a sync would bring.

  • Commit

    Pick the files, amend, set the author or date, sign off. Mark a file to restore after the commit, to split a change across several commits.

  • Interactive rebase

    Pick, squash, edit or skip; drag to reorder; add commits picked or dragged from a log.

  • Blame and history

    Each line's last commit with a slider back through the file's history; bisect, reflog, Format Patch, Export and the Repository Browser.

  • Diff your way

    A built-in unified diff viewer, or your own tool: WinMerge, Beyond Compare, Meld, KDiff3 and others, detected for you.

  • Branches and the rest

    Branch, tag, switch, merge and reset; stash, worktrees and submodules; conflicts in your merge tool.

  • Remotes

    Clone, fetch, pull and push with progress; passwords and host keys asked in Tortilla's own window; Git LFS.

Your pull requests, on your branches

Tortilla talks to GitHub, GitLab, Gitea and Forgejo, so the log shows what your forge knows.

The log on Linux with Qt 6, on the GitHub CLI's repository: remote branches carry their pull request's number and a mark for its checks and whether it can be merged
Pull requests on the GitHub CLI's branches, with their CI marks (Qt 6).

PR badges and CI marks

A branch with a pull request shows its number and a mark: checks passed, failed or running, and whether it can be merged, conflicts or is waiting on the rules.

Tooltips that explain

Hover over a mark for what it means and each check's result, one by one, and what stands in the way of merging.

Create, merge, close

Create Pull Request from any branch, offering only targets that make sense, forks included. Merge or close from the pull request's own menu, which says why a merge isn't possible yet.

Sign in your way, or not at all

Signed in with the GitHub CLI? Tortilla uses that, with nothing to set up. Or sign in through the browser or with a token, kept in your system keychain. Public repositories on github.com, gitlab.com and codeberg.org need no sign-in at all.

The Create Pull Request dialog with Qt 6: the branch to merge into, a title and description, and the commits it would bring
Create Pull Request (Qt 6).
Settings, Accounts page, with GTK 4: a github.com account signed in through the GitHub CLI, with a tick and its status
Settings > Accounts, using the GitHub CLI's sign-in (GTK 4).

Native everywhere

One application, drawn by each desktop's own toolkit: the same windows, wearing whatever your desktop is wearing.

The log window on Windows: a commit graph with coloured lanes, branch and tag labels, the selected merge commit's details and its changed files
The log on Windows (Win32).
The log window on Linux with GTK 4: the commit graph of a small project across all its branches, with branch and tag labels
The log on Linux with GTK 4…
The same log window on Linux with Qt 6
…and the same log with Qt 6.
The blame window with GTK 4: each line of a C file beside the commit, author and date that last changed it, with a history slider above
Blame, with its slider through the file's history (GTK 4).
The commit dialog with GTK 4: a message box, amend and author options, and the changed files with check boxes
The commit dialog (GTK 4).

Platforms

Windows

Win32 widgets throughout. Tortilla adds its menu to Explorer's right-click menu, and status badges on file and folder icons show what's modified, added or conflicted at a glance. It uses Git for Windows to run git.

Linux

GTK 4, GTK 3 or Qt 6, whichever suits your desktop, chosen when it starts (or pick one with --ui). Context menus for Nautilus, Nemo, Caja, Thunar, Dolphin and PCManFM; icon badges aren't there yet. x86_64 and arm64.

There's no macOS version.

Install

Tortilla 0.1.0, the first release, is on its way. Once it's tagged, the downloads are on GitHub Releases:

Windows

An installer that adds Tortilla to Explorer for every user, or a zip. Needs Git for Windows.

Linux

.deb for Debian and Ubuntu, .rpm for Fedora, and Arch packages. Install tortilla, and your file manager's package (tortilla-nautilus, tortilla-dolphin, …) for the menu.

Until then, CI builds the same packages on every change, or you can build from source:

git clone --recursive https://github.com/TurkeyMan/tortilla.git
cd tortilla
cmake -S . -B build -G Ninja
cmake --build build
build/bin/tortilla log /path/to/a/repo

You need CMake 3.25, a C++23 compiler, libgit2, and on Linux the development files for GTK 3, GTK 4 and/or Qt 6.

Get involved