{ inputs, system, ... }: let pkgs = inputs.nixpkgs.legacyPackages.${system}; in { xdg.configFile."opencode/skills".source = inputs.agents.lib.mkOpencodeSkills { inherit pkgs; customSkills = "${inputs.agents}/skills"; externalSkills = [ # Include all skills from anthropics/skills { src = inputs.skills-anthropic; selectSkills = ["claude-api"]; } # Or cherry-pick specific skills: # { src = inputs.skills-anthropic; selectSkills = [ "mcp-builder" ]; } ]; }; # 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"]; 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 = 400000; output = 128000; }; }; "gpt-5.3-codex" = { name = "GPT-5.3 Codex"; limit = { context = 400000; output = 128000; }; }; "claude-haiku-4-5" = { name = "Claude Haiku 4.5"; options = { thinking = { type = "enabled"; budget_tokens = 16000; }; }; limit = { context = 200000; output = 64000; }; }; "claude-sonnet-4-6" = { name = "Claude Sonnet 4.6"; options = { thinking = { type = "enabled"; budget_tokens = 16000; }; }; limit = { context = 200000; output = 64000; }; }; "claude-opus-4-6" = { name = "Claude Opus 4.6"; options = { thinking = { type = "enabled"; budget_tokens = 16000; }; }; limit = { context = 200000; output = 128000; }; }; }; }; }; }; }; 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 = false; agents = { sisyphus = { model = "litellm/claude-opus-4-6"; }; oracle = { model = "litellm/claude-sonnet-4-6"; }; librarian = { model = "litellm/claude-sonnet-4-6"; }; explore = { model = "litellm/claude-haiku-4-5"; }; multimodal-looker = { model = "litellm/gpt-5.3-codex"; }; prometheus = { model = "litellm/claude-opus-4-6"; }; metis = { model = "litellm/claude-opus-4-6"; }; momus = { model = "litellm/claude-opus-4-6"; }; atlas = { model = "litellm/claude-sonnet-4-6"; }; }; categories = { visual-engineering = { model = "zai-coding-plan/glm-5"; }; ultrabrain = { model = "litellm/claude-opus-4-6"; }; deep = { model = "litellm/claude-sonnet-4-6"; }; artistry = { model = "zai-coding-plan/glm-5"; }; quick = { model = "litellm/claude-haiku-4-5"; }; unspecified-low = { model = "litellm/claude-sonnet-4-6"; }; unspecified-high = { model = "litellm/claude-opus-4-6"; }; writing = { model = "zai-coding-plan/glm-5"; }; }; disabled_mcps = ["context7" "websearch"]; }; }