From a367f724ce70682bc5165534c13f48c9261e48b5 Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Wed, 10 Dec 2025 13:51:05 -0500 Subject: [PATCH] feat: add opencode --- .../evanreichard@mac-va-mbp-work/default.nix | 2 +- .../programs/terminal/opencode/default.nix | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100755 modules/home/programs/terminal/opencode/default.nix diff --git a/homes/aarch64-darwin/evanreichard@mac-va-mbp-work/default.nix b/homes/aarch64-darwin/evanreichard@mac-va-mbp-work/default.nix index f0a4998..3a44abb 100755 --- a/homes/aarch64-darwin/evanreichard@mac-va-mbp-work/default.nix +++ b/homes/aarch64-darwin/evanreichard@mac-va-mbp-work/default.nix @@ -22,6 +22,7 @@ in }; terminal = { + opencode = enabled; btop = enabled; direnv = enabled; git = enabled; @@ -43,7 +44,6 @@ in texliveSmall # Pandoc PDF Dep google-cloud-sdk tldr - opencode claude-code reichard.qwen-code ]; diff --git a/modules/home/programs/terminal/opencode/default.nix b/modules/home/programs/terminal/opencode/default.nix new file mode 100755 index 0000000..ee39f20 --- /dev/null +++ b/modules/home/programs/terminal/opencode/default.nix @@ -0,0 +1,56 @@ +{ lib +, config +, namespace +, ... +}: +let + inherit (lib) mkIf; + cfg = config.${namespace}.programs.terminal.opencode; +in +{ + options.${namespace}.programs.terminal.opencode = { + enable = lib.mkEnableOption "enable opencode"; + }; + + config = mkIf cfg.enable { + programs.opencode = { + enable = true; + enableMcpIntegration = true; + settings = { + theme = "catppuccin"; + provider = { + "llama-swap" = { + npm = "@ai-sdk/openai-compatible"; + options = { + baseURL = "https://llm-api.va.reichard.io/v1"; + }; + models = { + "gpt-oss-20b-thinking" = { + name = "GPT OSS (20B)"; + }; + qwen3-coder-30b-instruct = { + name = "Qwen3 Coder (30B)"; + }; + qwen3-30b-2507-thinking = { + name = "Qwen3 2507 (30B) Thinking"; + }; + qwen3-30b-2507-instruct = { + name = "Qwen3 2507 (30B) Instruct"; + }; + }; + }; + }; + mcp = { + gopls = { + type = "local"; + command = [ + "gopls" + "mcp" + ]; + enabled = true; + }; + }; + }; + }; + }; +}