diff --git a/modules/home/cli/default.nix b/modules/home/cli/default.nix index a2d5f1e..fa3ce69 100644 --- a/modules/home/cli/default.nix +++ b/modules/home/cli/default.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: { @@ -29,5 +30,16 @@ programs.nix-index.enable = true; programs.nix-index-database.comma.enable = true; } + { + home.shellAliases.ai = "aichat -r %shell% -e"; + + home.packages = with pkgs; [ aichat ]; + + xdg.configFile."aichat/config.yaml".text = '' + model: gemini:gemini-2.0-flash + clients: + - type: gemini + ''; + } ]; } diff --git a/modules/nixos/system/secrets.nix b/modules/nixos/system/secrets.nix index 19883f1..46fd710 100644 --- a/modules/nixos/system/secrets.nix +++ b/modules/nixos/system/secrets.nix @@ -1,11 +1,16 @@ -{ lib, ... }: +{ lib, config, ... }: { sops = { defaultSopsFile = lib.snowfall.fs.get-file "secrets/secrets.yaml"; age.sshKeyPaths = [ "/persist/home/rafiq/.ssh/id_ed25519" ]; secrets = { "keys/tailscale" = { }; + "keys/gemini" = { }; "rafiq/hashedPassword".neededForUsers = true; }; }; + environment.shellInit = # sh + '' + export GEMINI_API_KEY=$(sudo cat ${config.sops.secrets."keys/gemini".path}) + ''; } diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index ea6faa0..75edb29 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -2,6 +2,7 @@ rafiq: hashedPassword: ENC[AES256_GCM,data:SzzSPg5Ze4H+fVl6ZvAULO9FDfRehusmP6uldT4Ok2/9ZeOp9r4LgjKajoiw2A1DWD1zQ1GQwMCHKpeZjCC4rBUNWW5DMcBUJA==,iv:KktKuqr0JNhjeJIlIgkoAv6mP2dQlfQrXiIOASLPkbw=,tag:g9LarkT6EjDrH+dXSjMwPg==,type:str] keys: tailscale: ENC[AES256_GCM,data:sW64TZY/GtWD+8KOQDHYvnwzWiqOlsJ5782utaxVwUaiWa18hU+Ppd3gp/8f0R3rK6gskaPC22iuCuzvuA==,iv:TN2zWKgU6eXH3uaL7Ci2JKmo8Ql4DUSWS3Lxfnag7j4=,tag:s5of4wLdCp6b5VMGWLLxvw==,type:str] + gemini: ENC[AES256_GCM,data:t4XTzJLMbHBG7LNaWMwO0YyYHREYOp4Zn95Kwshunnpwq9ezVv+0,iv:ZHq1ytak7Qy5a/zHghwEIWRinDWAkk2Vxw4iu/Q/UPk=,tag:Wyk0FqLTOWelznWHg/anxg==,type:str] sops: age: - recipient: age12l33pas8eptwjc7ewux3d8snyzfzwz0tn9qg5kw8le79fswmjgjqdjgyy6 @@ -13,7 +14,7 @@ sops: WXFKbjNMWDF0LzNyekJJMGFva2diemcKQTc8ODuK6IWqRhulHiCF92aU+3p23riY M94Nzh+VT6QTFOgb3J7bBJMLhRH/fkQb6L6ia2n9QrVXFyYYMJ0oBw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-05-18T15:07:27Z" - mac: ENC[AES256_GCM,data:u7oh4aDdtD++beaPPaTVA+jlgSl5UFr8NRYUtuaASd2hxSK+dNOmtirKYZEh5Bp2kfrcGrPIMqYHr4TIOZNkkUsQtGwSrDbkc4TqaulaXveoYQXag4x5ZNYxWlazjTrtSYKA60CARlq8/2CLH/QNSBC6wqRIhR9Yj5mjAj51DW8=,iv:xX/GQpMPKIhMzA02PX6fV2WD6NO4c9FHxkXlzP9PwWM=,tag:lWJXNgxgsXDHjgnNMt/EDw==,type:str] + lastmodified: "2025-05-20T10:06:02Z" + mac: ENC[AES256_GCM,data:ROMviwbisATzHdO63fk9vXix+6p8j26zWJvxVugGj3sp1GOQVqx9VgzJhZ/NTRLmyOc2vRX9WJ0jUrPPPPZH7uzbo/eJduZHyw4AzaAZksYBCKNwKfcUun5EHkWNYoac07Iu7/vpr12UDVFPHHHXPEput9aj7pd9kkREvYkT6WA=,iv:oEPKHwIDaJ2Z6OKNHrOiTwQPlVzmo/L6aJY5R74EkGk=,tag:xGhP0kAU8b07FCieXoBrmQ==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2