From b2cdc7db2a733bd7f3fc19e0081eeebfaeb64549 Mon Sep 17 00:00:00 2001 From: m3tm3re Date: Sun, 4 Jan 2026 03:49:13 +0100 Subject: [PATCH] opencode hm config --- flake.lock | 15 ++++------ flake.nix | 4 +-- home/features/cli/default.nix | 6 +--- home/features/coding/default.nix | 9 ++++++ home/features/coding/opencode.nix | 50 +++++++++++++++++++++++++++++++ hosts/m3-ares/secrets.nix | 4 +++ hosts/m3-kratos/secrets.nix | 4 +++ secrets.nix | 1 + secrets/ref-key.age | 21 +++++++++++++ 9 files changed, 98 insertions(+), 16 deletions(-) create mode 100644 home/features/coding/opencode.nix create mode 100644 secrets/ref-key.age diff --git a/flake.lock b/flake.lock index ba87705..3aa2875 100644 --- a/flake.lock +++ b/flake.lock @@ -227,17 +227,14 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1767362052, - "narHash": "sha256-NfrV9/JtD37WX7+H4UaFcTSnqmpSpr8f2Za+qo1duxM=", - "ref": "refs/heads/master", - "rev": "0b4c2efc8f4298168befc24d6a55cb732772caae", - "revCount": 18, - "type": "git", - "url": "https://code.m3ta.dev/m3tam3re/nixpkgs" + "lastModified": 1767487569, + "narHash": "sha256-HXi5Om11CLhjkYWPWQXG5U6hUiaJmARYvoQBbGCpmy4=", + "path": "/home/m3tam3re/p/NIX/nixpkgs", + "type": "path" }, "original": { - "type": "git", - "url": "https://code.m3ta.dev/m3tam3re/nixpkgs" + "path": "/home/m3tam3re/p/NIX/nixpkgs", + "type": "path" } }, "nix-colors": { diff --git a/flake.nix b/flake.nix index 02ddacf..f10af80 100644 --- a/flake.nix +++ b/flake.nix @@ -22,8 +22,8 @@ nixpkgs-9e58ed7.url = "github:nixos/nixpkgs/9e58ed7ba759d81c98f033b7f5eba21ca68f53b0"; nixpkgs-master.url = "github:nixos/nixpkgs/master"; - m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs"; - # m3ta-nixpkgs.url = "path:/home/m3tam3re/p/NIX/nixpkgs"; + # m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs"; + m3ta-nixpkgs.url = "path:/home/m3tam3re/p/NIX/nixpkgs"; # nur = { url = "github:nix-community/NUR"; diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix index f1529a7..849a73e 100644 --- a/home/features/cli/default.nix +++ b/home/features/cli/default.nix @@ -24,6 +24,7 @@ model = "ggml-large-v3-turbo"; notifyTimeout = 2000; }; + programs.carapace = { enable = true; enableFishIntegration = true; @@ -197,11 +198,6 @@ }; home.packages = with pkgs; [ - agenix-cli - alejandra - bc - bun - claude-code comma coreutils devenv diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix index 782703b..f54f800 100644 --- a/home/features/coding/default.nix +++ b/home/features/coding/default.nix @@ -1,5 +1,14 @@ {pkgs, ...}: { + imports = [ + ./opencode.nix + ]; home.packages = with pkgs; [ + agenix-cli + alejandra + beads + bc + bun + claude-code devpod #devpod-desktop code2prompt diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix new file mode 100644 index 0000000..c9daff7 --- /dev/null +++ b/home/features/coding/opencode.nix @@ -0,0 +1,50 @@ +{ + programs.opencode = { + enable = true; + settings = { + theme = "opencode"; + plugin = ["oh-my-opencode"]; + mcp = { + Ref = { + type = "local"; + command = [ + "sh" + "-c" + "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest" + ]; + enabled = true; + }; + }; + }; + }; + + home.file.".config/opencode/oh-my-opencode.json".text = '' + { + "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", + "agents": { + "Sisyphus": { + "model": "anthropic/claude-opus-4-5" + }, + "librarian": { + "model": "anthropic/claude-sonnet-4-5" + }, + "explore": { + "model": "opencode/big-pickle" + }, + "oracle": { + "model": "anthropic/claude-sonnet-4-5" + }, + "frontend-ui-ux-engineer": { + "model": "anthropic/claude-opus-4-5" + }, + "document-writer": { + "model": "anthropic/claude-opus-4-5" + }, + "multimodal-looker": { + "model": "anthropic/claude-opus-4-5" + } + }, + "disabled_mcps": ["context7"] + } + ''; +} diff --git a/hosts/m3-ares/secrets.nix b/hosts/m3-ares/secrets.nix index 5f50d47..e2bcf01 100644 --- a/hosts/m3-ares/secrets.nix +++ b/hosts/m3-ares/secrets.nix @@ -21,6 +21,10 @@ file = ../../secrets/wg-BR.age; path = "/etc/wireguard/BR.conf"; }; + ref-key = { + file = ../../secrets/ref-key.age; + owner = "m3tam3re"; + }; tailscale-key.file = ../../secrets/tailscale-key.age; m3tam3re-secrets = { file = ../../secrets/m3tam3re-secrets.age; diff --git a/hosts/m3-kratos/secrets.nix b/hosts/m3-kratos/secrets.nix index d57ef4d..c6d6224 100644 --- a/hosts/m3-kratos/secrets.nix +++ b/hosts/m3-kratos/secrets.nix @@ -28,6 +28,10 @@ file = ../../secrets/m3tam3re-secrets.age; owner = "m3tam3re"; }; + ref-key = { + file = ../../secrets/ref-key.age; + owner = "m3tam3re"; + }; }; }; } diff --git a/secrets.nix b/secrets.nix index 6dd6ba5..d1a7dac 100644 --- a/secrets.nix +++ b/secrets.nix @@ -27,6 +27,7 @@ in { "secrets/minio-root-cred.age".publicKeys = systems ++ users; "secrets/n8n-env.age".publicKeys = systems ++ users; "secrets/paperless-key.age".publicKeys = systems ++ users; + "secrets/ref-key.age".publicKeys = systems ++ users; "secrets/restreamer-env.age".publicKeys = systems ++ users; "secrets/searx.age".publicKeys = systems ++ users; "secrets/tailscale-key.age".publicKeys = systems ++ users; diff --git a/secrets/ref-key.age b/secrets/ref-key.age new file mode 100644 index 0000000..6d9c6b4 --- /dev/null +++ b/secrets/ref-key.age @@ -0,0 +1,21 @@ +age-encryption.org/v1 +-> ssh-ed25519 4NLKrw ARySQU5NWBIxM1sICZMk/SU+kPMrvd3M9zs65v42hVo +3/SeIH0CpIicYOjG3Swrpt/4Nplo4parVWt3qIoW7SI +-> ssh-ed25519 5kwcsA M4GABkszkaU5TmeemgEp/iJ4myYL3fmZFrNP5wYq1iM +rOyGrD1hAMzQVBJeDTDXZPyaIyoEvDisGe7Te491Wv4 +-> ssh-ed25519 9d4YIQ eyJigzNeLlC1YxambeZYE2bMzUUgMqJHtpPxlZheERg +mZsYy9QTl6EnF//u2Agt/9cKxxMZw7nJDfJV/n+dVaA +-> ssh-ed25519 3Bcr1w oEZnh+FPv7EqyKLcX5rmvTGRIZlSj1ycaFg/cTCIqiM +AlOvpd+MAAe43hLfcROQ+QIkUOPmjc1SPu3NPIEhlyc +-> ssh-rsa DQlE7w +WgdDjMGNKWgxa2QxYh33HO8JrkNeYtTqMs5Ninb0+FzJYTD+zCYWUlFEPcytp8Dl +gzGH5dwTG1Tvjig5a7IWcw8sO7AAklpU95oauq3Pi1rBq8IBBpmAjvCWb8Is9UsQ +cazsOmFHYQfmCWfd1TugIOju4ovJMmUxx6acAN6McD723Q7Ns+WVmLGS/ot2LsKE +WMXTVarDk++NhIHlwmHbVk7Nej8OwFt2xTJM3ihENtCLb46wDcBfEO4GaYHxY2dn +AjuGFTgv5U8ZjdSuktw0gMV0Eldgwk04NfX1+Ey0dDSJ2/f4i4O1AqQZ3ylhBrhv +aVS/XQxmJphSlSux5puquGtJIyI+vTUWPlQ0zIAGuKCmXQ9K5FKxdOmsl73/fBqj +rpWUX6YQ9993fUpVvnCRjOThG6x8L90J5MfksgJKNP6QPDc7r2aV8p5vzY0ssE2B +JYvhRYGp0esP/DyMSczExQRpAfhNwS6ONhDjcmTRJAeaxuyteTOyypGG5morzQq9 + +--- 3dwuxoM7PjwyPI6fn5lRwxonntFxBNCREh0LipP7IRI +V‚‡lÝžŽçU[`Û´Hxn~¹:šŠzi\Ñ¥ƒWm«Åc_ÞÓfÍå-> €kanÏÖh \ No newline at end of file