{ lib, buildGoModule, fetchFromGitHub, gitMinimal, makeWrapper, # Add this nix-update-script, opencode, td, tmux, versionCheckHook, writableTmpDirAsHomeHook, }: buildGoModule (finalAttrs: { pname = "sidecar"; version = "0.71.1"; src = fetchFromGitHub { owner = "marcus"; repo = "sidecar"; tag = "v${finalAttrs.version}"; hash = "sha256-LqpqNQ56tKXqEKbUrMxBkiGOzklGaqx8SCTEGIwE43k="; }; vendorHash = "sha256-R/AjNJ4x4t1zXXzT+21cjY+9pxs4DVXU4xs88BQvHx4="; subPackages = ["cmd/sidecar"]; ldflags = [ "-s" "-w" "-X main.Version=v${finalAttrs.version}" # Can combine these ]; nativeBuildInputs = [makeWrapper]; # Add this nativeCheckInputs = [ gitMinimal writableTmpDirAsHomeHook ]; nativeInstallCheckInputs = [ versionCheckHook writableTmpDirAsHomeHook ]; versionCheckProgramArg = "--version"; doInstallCheck = true; doCheck = false; postInstall = '' wrapProgram $out/bin/sidecar \ --prefix PATH : ${lib.makeBinPath [opencode td tmux]} ''; passthru = { updateScript = nix-update-script {}; }; meta = { description = "Use sidecar next to CLI agents for diffs, file trees, conversation history, and task management with td"; homepage = "https://github.com/marcus/sidecar"; changelog = "https://github.com/marcus/sidecar/releases/tag/v${finalAttrs.version}"; license = lib.licenses.mit; mainProgram = "sidecar"; platforms = lib.platforms.unix; }; })