{inputs, ...}: { xdg.configFile = { "opencode/commands" = { source = "${inputs.agents}/commands"; recursive = true; }; "opencode/context" = { source = "${inputs.agents}/context"; recursive = true; }; "opencode/prompts" = { source = "${inputs.agents}/prompts"; recursive = true; }; "opencode/skills" = { source = "${inputs.agents}/skills"; recursive = true; }; "opencode/rules" = { source = "${inputs.agents}/rules"; recursive = true; }; }; programs.opencode = { enable = 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"]; }; }; mcp = { Ref = { type = "local"; command = [ "sh" "-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest" ]; enabled = true; }; Anytype = { type = "local"; command = [ "sh" "-c" "OPENAPI_MCP_HEADERS=$(cat /run/agenix/anytype-key) exec bunx @anyproto/anytype-mcp" ]; enabled = false; }; Basecamp = { type = "local"; command = [ "/home/m3tam3re/p/AI/Basecamp-MCP-Server/venv/bin/python" "/home/m3tam3re/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py" ]; environment = { PYTHONPATH = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server"; VIRTUAL_ENV = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv"; BASECAMP_ACCOUNT_ID = "5996442"; }; enabled = false; }; Exa = { type = "local"; command = [ "sh" "-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa" ]; enabled = true; }; Outline = { type = "local"; command = [ "sh" "-c" "OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline" ]; enabled = false; }; }; 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; }; }; }