{ inputs, ... }: let sharedContext = '' # AI Global Context This shared Codex and Gemini context is intentionally minimal for now. TODO: add persistent global AI instructions. ''; in { flake.modules.nixos.ai = { nixpkgs.overlays = [ inputs.llm-agents.overlays.default ]; nix.settings = { extra-substituters = [ "https://cache.numtide.com" ]; extra-trusted-public-keys = [ "niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g=" ]; }; }; flake.modules.homeManager.ai = { config, pkgs, ... }: { home.sessionVariables.GEMINI_CONFIG_DIR = "${config.xdg.configHome}/gemini"; programs.gemini-cli = { enable = true; package = pkgs.llm-agents.gemini-cli; context.AGENTS = sharedContext; settings = { context = { fileName = [ "AGENTS.md" "GEMINI.md" ]; loadMemoryFromIncludeDirectories = true; }; model.name = "gemini-3.1-pro-preview"; }; }; programs.codex = { enable = true; package = pkgs.llm-agents.codex; context = sharedContext; settings = { model = "gpt-5.4"; model_reasoning_effort = "high"; plan_mode_reasoning_effort = "high"; tui.status_line = [ "model-with-reasoning" "current-dir" "git-branch" "context-remaining" "five-hour-limit" ]; personality = "pragmatic"; features.undo = true; }; }; }; }