{ inputs, system, ... }: let pkgs = inputs.nixpkgs.legacyPackages.${system}; in { # Skills — composed from custom + external sources xdg.configFile."opencode/skills".source = inputs.agents.lib.mkOpencodeSkills { inherit pkgs; customSkills = "${inputs.agents}/skills"; externalSkills = [ { src = inputs.skills-anthropic; selectSkills = ["docx" "frontend-design" "mcp-builder" "pdf" "mcp-builder"]; } { src = inputs.skills-basecamp; } { src = inputs.skills-kestra; } ]; }; # Other config — symlinked directly xdg.configFile."opencode/context".source = "${inputs.agents}/context"; xdg.configFile."opencode/commands".source = "${inputs.agents}/commands"; xdg.configFile."opencode/prompts".source = "${inputs.agents}/prompts"; programs.opencode = { enable = true; enableMcpIntegration = true; settings = { theme = "opencode"; plugin = ["oh-my-opencode" "opencode-antigravity-auth@beta"]; agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agents/agents.json"); formatter = { alejandra = { command = ["alejandra" "-q" "-"]; extensions = [".nix"]; }; }; provider = { litellm = { npm = "@ai-sdk/openai-compatible"; name = "LiteLLM (AZ-Gruppe)"; options.baseURL = "https://llm.az-gruppe.com/v1"; models = { "gpt-5.2" = { name = "GPT-5.2"; limit = { context = 200000; output = 16384; }; modalities = { input = ["text" "image"]; output = ["text"]; }; }; "claude-sonnet-4-6" = { name = "Claude Sonnet 4.6"; limit = { context = 200000; output = 16000; }; modalities = { input = ["text" "image"]; output = ["text"]; }; }; "claude-opus-4-6" = { name = "Claude Opus 4.6"; limit = { context = 200000; output = 32000; }; modalities = { input = ["text" "image"]; output = ["text"]; }; }; }; }; }; }; }; home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON { "$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"; # google_auth removed - use opencode-antigravity-auth plugin instead (already in plugin array) agents = { sisyphus = {model = "zai-coding-plan/glm-5";}; oracle = {model = "zai-coding-plan/glm-5";}; librarian = {model = "zai-coding-plan/glm-5";}; explore = {model = "zai-coding-plan/glm-4.5-air";}; multimodal-looker = {model = "zai-coding-plan/glm-4.6v";}; prometheus = {model = "zai-coding-plan/glm-5";}; metis = {model = "zai-coding-plan/glm-5";}; momus = {model = "zai-coding-plan/glm-5";}; atlas = {model = "zai-coding-plan/glm-5";}; }; categories = { visual-engineering = {model = "zai-coding-plan/glm-5";}; ultrabrain = {model = "zai-coding-plan/glm-5";}; artistry = {model = "zai-coding-plan/glm-5";}; quick = {model = "zai-coding-plan/glm-5";}; unspecified-low = {model = "zai-coding-plan/glm-5";}; unspecified-high = {model = "zai-coding-plan/glm-5";}; writing = {model = "zai-coding-plan/glm-5";}; }; disabled_mcps = ["context7" "websearch"]; disabled_hooks = ["comment-checker"]; git_master = { commit_footer = false; include_co_authored_by = false; }; experimental = { truncate_all_tool_outputs = true; aggressive_truncation = false; }; }; }