{ description = "T3 Code packages for Nix"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; llm-agents.url = "github:numtide/llm-agents.nix"; t3code.url = "github:pingdotgg/t3code"; t3code.flake = false; }; nixConfig = { extra-substituters = ["https://cache.numtide.com"]; extra-trusted-public-keys = ["niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g="]; }; outputs = { self, llm-agents, nixpkgs, t3code, ... }: let lib = nixpkgs.lib; systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = lib.genAttrs systems; in { packages = forAllSystems ( system: let pkgs = import nixpkgs {inherit system;}; src = t3code; codexPackage = llm-agents.packages.${system}.codex; claudeCodePackage = llm-agents.packages.${system}."claude-code"; opencodePackage = llm-agents.packages.${system}.opencode; t3code-desktop = pkgs.callPackage ./packages/t3code-desktop { inherit src codexPackage claudeCodePackage opencodePackage; }; t3code-server = pkgs.callPackage ./packages/t3code-server { inherit src codexPackage claudeCodePackage opencodePackage; }; in { inherit t3code-desktop t3code-server; desktop = t3code-desktop; server = t3code-server; default = t3code-desktop; } ); apps = forAllSystems (system: rec { t3code-desktop = { type = "app"; program = lib.getExe self.packages.${system}.t3code-desktop; }; t3code-server = { type = "app"; program = lib.getExe self.packages.${system}.t3code-server; }; desktop = t3code-desktop; server = t3code-server; default = t3code-desktop; }); checks = forAllSystems ( system: rec { t3code-desktop = self.packages.${system}.t3code-desktop; t3code-server = self.packages.${system}.t3code-server; desktop = t3code-desktop; server = t3code-server; } ); }; }