GitButler is a modern Git-based version control interface built from the ground up for AI-powered workflows. This flake pulls the official upstream .deb and CLI binaries and patches them for NixOS, completely bypassing the heavy Rust/Tauri compile times.
This flake exposes two explicit outputs:
gui(Default): The full Tauri desktop application. This package also includes thebutCLI wrapper.cli: The standalone, lightweight Rust binary (but) for terminal-only workflows.
🚨 IMPORTANT: Mutual Exclusivity 🚨
Do not attempt to install both the gui and cli packages simultaneously. Because both packages provide the /bin/but executable, Nix's native environment builder will throw a file collision error and refuse to build your system. Choose one or the other.
Add the flake to your flake.nix inputs:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nix4gitbutler.url = "github:kmdtaufik/nix4gitbutler";
};
outputs = { nixpkgs, inputs, ... }: {
nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [{
# 🟢 Option A: Install the full Desktop GUI (Default)
environment.systemPackages = [
inputs.nix4gitbutler.packages.x86_64-linux.default
];
# 🔵 Option B: Install ONLY the Terminal interface (CLI)
# environment.systemPackages = [
# inputs.nix4gitbutler.packages.x86_64-linux.cli
# ];
}];
};
};
}{
inputs = {
nix4gitbutler.url = "github:kmdtaufik/nix4gitbutler";
};
outputs = { inputs, ... }: {
home.packages = [
inputs.nix4gitbutler.packages.x86_64-linux.default # Choose GUI...
# inputs.nix4gitbutler.packages.x86_64-linux.cli # ...Or CLI
];
};
}You can run either application instantly without modifying your system configuration:
# Run the Desktop GUI
nix run github:kmdtaufik/nix4gitbutler
# Run the pure CLI
nix run github:kmdtaufik/nix4gitbutler#cli