Commit 711c0cc

HPCesia <me@hpcesia.com>
2026-07-26 16:35:44
Share LLM agents skills
1 parent 8d471d6
Changed files (2)
modules
modules/develop/agents/default.nix
@@ -15,7 +15,17 @@
         )
       ];
     };
-    homeManager = {pkgs, ...}: {
+    homeManager = {
+      pkgs,
+      lib,
+      ...
+    }: let
+      skills = {
+        grilling = ./skills/grilling;
+        jujutsu = ./skills/jujutsu;
+        open-websearch = "${pkgs.open-websearch.src}/skills/open-websearch";
+      };
+    in {
       nixpkgs.overlays = [
         (
           final: prev: {
@@ -23,6 +33,28 @@
           }
         )
       ];
+
+      home.packages = with pkgs; [
+        open-websearch
+      ];
+
+      xdg.configFile =
+        lib.mapAttrs' (
+          name: content:
+            if lib.hm.strings.isPathLike content && lib.pathIsDirectory content
+            then
+              lib.nameValuePair "agents/skills/${name}" {
+                source = content;
+                recursive = true;
+              }
+            else
+              lib.nameValuePair "agents/skills/${name}/SKILL.md" (
+                if lib.hm.strings.isPathLike content
+                then {source = content;}
+                else {text = content;}
+              )
+        )
+        skills;
     };
   };
 }
modules/develop/agents/opencode.nix
@@ -15,18 +15,14 @@
       ];
     };
 
-    homeManager = {pkgs, ...}: {
+    homeManager = {
+      pkgs,
+      config,
+      ...
+    }: {
       programs.opencode = {
         enable = true;
         package = pkgs.llm-agents.opencode;
-        extraPackages = with pkgs; [
-          open-websearch
-        ];
-        skills = {
-          grilling = ./skills/grilling;
-          jujutsu = ./skills/jujutsu;
-          open-websearch = "${pkgs.open-websearch.src}/skills/open-websearch";
-        };
         settings = {
           permission = {
             external_directory = {
@@ -59,6 +55,11 @@
           ];
         };
       };
+
+      systemd.user.tmpfiles.rules = [
+        "r ${config.xdg.configHome}/opencode/skills"
+        "L ${config.xdg.configHome}/agents/skills - - - - ${config.xdg.configHome}/opencode/skills"
+      ];
     };
   };