~ruther/agent-environments

ref: 275d15626d29b383a1cdad7ef6bf656bf66fc630 agent-environments/flake.nix -rw-r--r-- 1.3 KiB
275d1562 — František Boháček Add example consumer flakes 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
  description = "Module-based environments for coding agents (Claude Code, Codex)";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    claude-code = {
      url = "github:sadjow/claude-code-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    codex = {
      url = "github:sadjow/codex-cli-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    {
      self,
      nixpkgs,
      claude-code,
      codex,
    }:
    let
      systems = [
        "x86_64-linux"
        "aarch64-linux"
        "x86_64-darwin"
        "aarch64-darwin"
      ];
      forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
    in
    {
      lib = import ./lib {
        inherit (nixpkgs) lib;
        defaultPackages = system: {
          claude = claude-code.packages.${system}.default;
          codex = codex.packages.${system}.default;
        };
      };

      packages = forAllSystems (pkgs: {
        default =
          (self.lib.mkEnvironment {
            inherit pkgs;
            modules = [ ./environments/default.nix ];
          }).package;
      });

      checks = forAllSystems (pkgs: import ./checks { inherit pkgs self; });

      formatter = forAllSystems (pkgs: pkgs.nixfmt);
    };
}