From fa4b7ca40467d52dd38959f2305e81783581186f Mon Sep 17 00:00:00 2001 From: moons Date: Tue, 18 Aug 2026 06:25:46 +0900 Subject: [PATCH] codex mutable config --- modules/applications/codex/config.toml | 13 +++++++++++ modules/applications/codex/home.nix | 30 ++++++++++++-------------- 2 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 modules/applications/codex/config.toml diff --git a/modules/applications/codex/config.toml b/modules/applications/codex/config.toml new file mode 100644 index 0000000..bee707a --- /dev/null +++ b/modules/applications/codex/config.toml @@ -0,0 +1,13 @@ +model = "gpt-5.6-terra" +model_reasoning_effort = "medium" + +approval_policy = "on-request" +approvals_reviewer = "auto_review" +sandbox_mode = "workspace-write" +web_search = "cached" + +[sandbox_workspace_write] +network_access = false + +[projects."/home/moons/dotfiles"] +trust_level = "trusted" diff --git a/modules/applications/codex/home.nix b/modules/applications/codex/home.nix index fe543a4..9499eb3 100644 --- a/modules/applications/codex/home.nix +++ b/modules/applications/codex/home.nix @@ -1,32 +1,30 @@ { + config, inputs, + lib, pkgs, ... }: +let + source = "${config.home.homeDirectory}/dotfiles/modules/applications/codex/config.toml"; +in { programs.codex = { enable = true; package = inputs.llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.codex; - # Home Manager writes this as CODEX_HOME/config.toml. Keep only general - # client defaults here; custom agents, hooks, and global instructions are - # intentionally not configured. - settings = { - model = "gpt-5.6-terra"; - model_reasoning_effort = "medium"; - - approval_policy = "on-request"; - approvals_reviewer = "auto_review"; - sandbox_mode = "workspace-write"; - sandbox_workspace_write.network_access = false; - web_search = "cached"; - }; - - # `grill-me` delegates to the reusable `grilling` primitive, so both are - # installed even though `/grill-me` is the user-facing entry point. + # `grill-me` invokes the reusable `grilling` skill. skills = { grill-me = inputs.skills + "/skills/productivity/grill-me"; grilling = inputs.skills + "/skills/productivity/grilling"; }; }; + + home.file = lib.mkIf (!config.home.preferXdgDirectories) { + ".codex/config.toml".source = config.lib.file.mkOutOfStoreSymlink source; + }; + + xdg.configFile = lib.mkIf config.home.preferXdgDirectories { + "codex/config.toml".source = config.lib.file.mkOutOfStoreSymlink source; + }; }