From 382b4c8c981903290207267fa8c153320073e86c Mon Sep 17 00:00:00 2001 From: m3tm3re
Date: Tue, 21 Apr 2026 19:00:49 +0200
Subject: [PATCH] chore: hermes update
---
flake.lock | 40 +++++++-------
flake.nix | 2 +-
home/features/coding/default.nix | 20 ++++++-
home/features/coding/opencode.nix | 10 ----
home/features/coding/pi.nix | 23 +++-----
hosts/common/default.nix | 7 ---
hosts/m3-hermes/services/hermes-agent.nix | 8 +--
hosts/m3-kratos/services/default.nix | 1 -
hosts/m3-kratos/services/pi-agent.nix | 52 ------------------
secrets/hermes-cloud-env.age | 61 +++++++++-------------
secrets/hermes-env.age | Bin 1832 -> 1897 bytes
11 files changed, 77 insertions(+), 147 deletions(-)
delete mode 100644 hosts/m3-kratos/services/pi-agent.nix
diff --git a/flake.lock b/flake.lock
index 45addb6..35ac1ce 100644
--- a/flake.lock
+++ b/flake.lock
@@ -89,11 +89,11 @@
]
},
"locked": {
- "lastModified": 1771437256,
- "narHash": "sha256-bLqwib+rtyBRRVBWhMuBXPCL/OThfokA+j6+uH7jDGU=",
+ "lastModified": 1776249299,
+ "narHash": "sha256-Dt9t1TGRmJFc0xVYhttNBD6QsAgHOHCArqGa0AyjrJY=",
"owner": "numtide",
"repo": "blueprint",
- "rev": "06ee7190dc2620ea98af9eb225aa9627b68b0e33",
+ "rev": "56131e8628f173d24a27f6d27c0215eff57e40dd",
"type": "github"
},
"original": {
@@ -123,15 +123,16 @@
]
},
"locked": {
- "lastModified": 1770895533,
- "narHash": "sha256-v3QaK9ugy9bN9RXDnjw0i2OifKmz2NnKM82agtqm/UY=",
- "owner": "nix-community",
+ "lastModified": 1776182890,
+ "narHash": "sha256-+/VOe8XGq5klpU+I19D+3TcaR7o+Cwbq67KNF7mcFak=",
+ "owner": "Mic92",
"repo": "bun2nix",
- "rev": "c843f477b15f51151f8c6bcc886954699440a6e1",
+ "rev": "648d293c51e981aec9cb07ba4268bc19e7a8c575",
"type": "github"
},
"original": {
- "owner": "nix-community",
+ "owner": "Mic92",
+ "ref": "catalog-support",
"repo": "bun2nix",
"type": "github"
}
@@ -268,15 +269,16 @@
"uv2nix": "uv2nix_2"
},
"locked": {
- "lastModified": 1776145260,
- "narHash": "sha256-jyxv5PCRMOA8mU+ng3EDXGLAw0Xq0dDQLgiYgEZudLA=",
+ "lastModified": 1776369186,
+ "narHash": "sha256-+Kltn1Ar0Ye4iBc6UVwvNPGI0uIgnCktl4Obh964/60=",
"owner": "NousResearch",
"repo": "hermes-agent",
- "rev": "d6314318721cc8f3eba6e1a6138ccc03355764bc",
+ "rev": "1dd6b5d5fb94cac59e93388f9aeee6bc365b8f42",
"type": "github"
},
"original": {
"owner": "NousResearch",
+ "ref": "v2026.4.16",
"repo": "hermes-agent",
"type": "github"
}
@@ -410,11 +412,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
- "lastModified": 1776137484,
- "narHash": "sha256-3gUwNO4y8ZmTyQBb3fCrLNRnqzAuuwNNSlPjmhrGnMo=",
+ "lastModified": 1776784995,
+ "narHash": "sha256-ikxb8cZGWHuZMs3xS471GVrpGA0xW1YFcIVOPTVkhBo=",
"owner": "numtide",
"repo": "llm-agents.nix",
- "rev": "e70ca11dc1a327e99c58dcd580ed209056a61130",
+ "rev": "e3d40d2cd66a4f8052e4224ec027c6896a455847",
"type": "github"
},
"original": {
@@ -432,8 +434,8 @@
"openspec": "openspec"
},
"locked": {
- "lastModified": 1776184481,
- "narHash": "sha256-X4b1SRiUUhlp1ciL1pwHI5KvXmrM3A9zxb4GaeNkJ9I=",
+ "lastModified": 1776787894,
+ "narHash": "sha256-aDi7tWtiBdUBLhH4ULHZpcUTq3/w/Rad6dA/uLHu+7Q=",
"path": "/home/m3tam3re/p/NIX/nixpkgs",
"type": "path"
},
@@ -672,11 +674,11 @@
},
"nixpkgs_5": {
"locked": {
- "lastModified": 1775888245,
- "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
+ "lastModified": 1776329215,
+ "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "13043924aaa7375ce482ebe2494338e058282925",
+ "rev": "b86751bc4085f48661017fa226dee99fab6c651b",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 46598a8..346c109 100644
--- a/flake.nix
+++ b/flake.nix
@@ -65,7 +65,7 @@
url = "github:vercel-labs/skills";
flake = false;
};
- hermes-agent.url = "github:NousResearch/hermes-agent";
+ hermes-agent.url = "github:NousResearch/hermes-agent/v2026.4.16";
};
outputs = {
diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix
index 608c88e..3011a6b 100644
--- a/home/features/coding/default.nix
+++ b/home/features/coding/default.nix
@@ -1,5 +1,6 @@
{
config,
+ inputs,
pkgs,
videoDrivers,
...
@@ -14,6 +15,20 @@ in {
./opencode.nix
./pi.nix
];
+
+ coding.agents.skills = {
+ agentsInput = inputs.agents;
+ externalSkills = [
+ {
+ src = inputs.skills-anthropic;
+ selectSkills = ["pdf" "docx" "frontend-design"];
+ }
+ {src = inputs.skills-vercel;}
+ {src = inputs.skills-basecamp;}
+ {src = inputs.skills-kestra;}
+ ];
+ };
+
programs.mcp = {
enable = true;
servers = {
@@ -47,13 +62,12 @@ in {
home.packages = with pkgs; [
agenix-cli
+ agent-browser
alejandra
bc
bun
devpod
#devpod-desktop
- claude-code
- code2prompt
gnumake
cmake
(python3.withPackages (ps:
@@ -68,6 +82,7 @@ in {
]))
pyrefly
nixd
+ nix-update
nodejs
# opencode-desktop
(qmd.override {
@@ -76,6 +91,7 @@ in {
})
openshell
openspec
+ pi-coding-agent
alejandra
sidecar
tailwindcss
diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix
index 9caa29c..6abed49 100644
--- a/home/features/coding/opencode.nix
+++ b/home/features/coding/opencode.nix
@@ -6,16 +6,6 @@
coding.agents.opencode = {
enable = true;
agentsInput = inputs.agents;
-
- externalSkills = [
- {
- src = inputs.skills-anthropic;
- selectSkills = ["pdf" "docx" "frontend-design"];
- }
- {src = inputs.skills-vercel;}
- {src = inputs.skills-basecamp;}
- {src = inputs.skills-kestra;}
- ];
};
coding.opencode = {
diff --git a/home/features/coding/pi.nix b/home/features/coding/pi.nix
index 10f37a3..8285dba 100644
--- a/home/features/coding/pi.nix
+++ b/home/features/coding/pi.nix
@@ -3,23 +3,9 @@
enable = true;
agentsInput = inputs.agents;
- externalSkills = [
- {
- src = inputs.skills-anthropic;
- selectSkills = ["pdf" "docx" "frontend-design"];
- }
- {src = inputs.skills-vercel;}
- {src = inputs.skills-basecamp;}
- {src = inputs.skills-kestra;}
- ];
-
- # Source materialized for m3ta.pi-agent wrapper sync into /var/lib/pi-agent/.pi/agent
- # Use .pi/agents to match Pi's native directory layout.
- path = ".pi/agents";
-
modelOverrides = {
- chiron = "zai-coding-plan/glm-5.1";
- chiron-forge = "zai-coding-plan/glm-5.1";
+ chiron = "zai/glm-5.1";
+ chiron-forge = "zai/glm-5.1";
};
settings = {
@@ -33,11 +19,14 @@
"npm:@plannotator/pi-extension"
"npm:pi-powerline-footer"
"npm:pi-markdown-preview"
+ "npm:pi-gsd"
+ "npm:pi-tool-view"
+ "npm:pi-agent-browser-native"
];
defaultProvider = "zai";
defaultModel = "glm-5.1";
- defaultThinkingLevel = "medium";
+ defaultThinkingLevel = "high";
};
# MCP servers auto-inherited from programs.mcp in default.nix
diff --git a/hosts/common/default.nix b/hosts/common/default.nix
index 134c9d5..db34ab4 100644
--- a/hosts/common/default.nix
+++ b/hosts/common/default.nix
@@ -78,11 +78,4 @@
nixPath = ["/etc/nix/path"];
};
users.defaultUserShell = pkgs.nushell;
-
- # Compatibility shim: the hermes-agent nixos module references the legacy
- # agenix activation script name "setupSecrets" (renamed to "agenixInstall"
- # in current agenix). This empty passthrough satisfies the dependency so
- # any host importing hermes-agent.nixosModules.default can build.
- # Remove once upstream fixes: github:NousResearch/hermes-agent nix/nixosModules.nix:564
- system.activationScripts.setupSecrets = lib.stringAfter [ "agenixInstall" ] "";
}
diff --git a/hosts/m3-hermes/services/hermes-agent.nix b/hosts/m3-hermes/services/hermes-agent.nix
index 13fb4d1..a00c86f 100644
--- a/hosts/m3-hermes/services/hermes-agent.nix
+++ b/hosts/m3-hermes/services/hermes-agent.nix
@@ -34,8 +34,10 @@ in {
backend = "podman";
extraVolumes = ["/home/m3tam3re/p:/projects:rw"];
extraOptions = [
- "--env" "PYTHONPATH=${venvSitePackages}"
- "--env" "LD_LIBRARY_PATH=${gccLibPath}"
+ "--env"
+ "PYTHONPATH=${venvSitePackages}"
+ "--env"
+ "LD_LIBRARY_PATH=${gccLibPath}"
];
};
@@ -61,7 +63,7 @@ in {
# ── Terminal ───────────────────────────────────────────────────────
terminal = {
- backend = "local";
+ backend = "docker";
modal_mode = "auto";
cwd = ".";
timeout = 180;
diff --git a/hosts/m3-kratos/services/default.nix b/hosts/m3-kratos/services/default.nix
index 2e0e7db..1c01a34 100644
--- a/hosts/m3-kratos/services/default.nix
+++ b/hosts/m3-kratos/services/default.nix
@@ -5,7 +5,6 @@
./mem0.nix
# ./n8n.nix
./netbird.nix
- ./pi-agent.nix
./postgres.nix
./sound.nix
./udev.nix
diff --git a/hosts/m3-kratos/services/pi-agent.nix b/hosts/m3-kratos/services/pi-agent.nix
deleted file mode 100644
index 59b74fb..0000000
--- a/hosts/m3-kratos/services/pi-agent.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{config, ...}: let
- cfg = config.m3ta.pi-agent;
-in {
- m3ta.pi-agent = {
- enable = true;
- binaryName = "pi";
-
- # Per-user policy map: authorized host users + their allowed project roots.
- hostUsers = {
- m3tam3re = {
- projectRoots = ["~/p"];
- # Optional (default comes from wrapper.hostConfigPath)
- configPath = ".pi/agents";
- };
- };
-
- wrapper = {
- enable = true;
- commandName = "pi";
- hideDirectBinary = true;
-
- # Sync Home Manager rendered Pi config from invoking user home.
- hostConfigPath = ".pi/agents";
- };
- };
-
- # Manage isolated pi-agent git identity via Home Manager (declarative + reusable pattern).
- home-manager.users.${cfg.user} = {
- home.username = cfg.user;
- home.homeDirectory = cfg.stateDir;
- home.stateVersion = "26.05";
-
- programs.git = {
- enable = true;
- signing.format = null;
- settings = {
- user = {
- name = "m3ta-chiron";
- email = "m3ta-chiron@agentmail.to";
- };
- core.excludesfile = "~/.gitignore_global";
- init.defaultBranch = "master";
- alias = {
- st = "status";
- logd = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
- };
- };
- };
-
- home.file.".gitignore_global".text = "";
- };
-}
diff --git a/secrets/hermes-cloud-env.age b/secrets/hermes-cloud-env.age
index 430608e..d21287a 100644
--- a/secrets/hermes-cloud-env.age
+++ b/secrets/hermes-cloud-env.age
@@ -1,35 +1,26 @@
------BEGIN AGE ENCRYPTED FILE-----
-YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDROTEtydyBQQisx
-Z2Z6bTVTazFWWE14eWhLaHNXMU9pVUN4bEZ1U2dFN0c3RW1wdmlvCnh4eFJ4NC9u
-UGo3cXNqNHdGQk5CK3J3b0xzcm85SHFMNXhzcUZPSlhUcjAKLT4gc3NoLWVkMjU1
-MTkgNWt3Y3NBIHVrZzBLc1poMkhuNnREQ0hrcHNFc0lYL2I3dHRka0xNN3Fibktm
-Qk5HRlkKV0FXbFNkSVBKSENvSlhzZVdMWkxhbHRPSTMyak5YbW93VGFDdWJYdDlN
-VQotPiBzc2gtZWQyNTUxOSA5ZDRZSVEgSlVabys1cXQveXFtTkZQckpOM0NldG9D
-ZFVVMG9FNDZ3LzkzK09vbHMzZwpPcWE3dGJHc1hzTVpLWlVJUTBLYUZQbXljeGVD
-UFF3dWZGSTgxMWZma0hVCi0+IHNzaC1lZDI1NTE5IDNCY3IxdyBISWZFazFhRDk5
-NVNMc1E2elBzclkzU2oxSjh2RjlyUHE2ME4vYnl0WVRjCi8wanRWamd0YXBLbmhE
-blRpaTZpblErZllmNzF3VCtjTFlaODErUHRxQzAKLT4gc3NoLWVkMjU1MTkgYzRO
-UWxBIDZXU3Y0TEx3ek9HVmpZUzQzRVpDL2sycElOREtRRkI2MTJFekJNajd6SE0K
-SUVrTUlIMFVDNkJNL0cxWHhqQ1o1d240VXhBYkh5anlBRFZVZVltRkhTVQotPiBz
-c2gtcnNhIERRbEU3dwpNcWRSaDVQRUpVQjBqcUtYN3lBczV5WlgwdlBERkowMFpJ
-YWd6Z1FnSGJTVlY4SXNIMldSMFZQMWxtcHZhMXI2CmlWdnhUL29oTnNDV0lYNG0w
-UU1oS09BVjRsMk40VHVnU3UrZjAwTkVTMUo0aEo4Z081RVpBeUx1ZGZsUnpMSk4K
-cUpPTlJOMnZaUnk1WldOazUrVFRyYTMraEtwYjRkcFlodjUwNEVMazhaQlZVdWhh
-b0pPa3JiWHlmOXUxUC8wRQpSUnVCVWZzaVROQTB3ZVR1SUJuNUdxdHIwSjZ5cVhZ
-T3RaMytOdDFOUVZVRjBXM25mMFFwZVUzVGZ1d29KRWdWCms3bGVWSldNVEIxZ1Z5
-c0pjWnJRZzFsekN6dlA2Q0ZUQy82WHlhOHNLOWdLY2pkR3hPS1NSdUwzVjNSajdG
-blcKVE5oaC9pTmNQL0gvMUp0azJPcFgwQlora0tXTWNWUk5NVTdxdmdmb2o2R294
-OGdpT3dwUzY5dDNDSFRBZ1VkdwppcGtQNGc3U3J4RXI3UzdpV2ZhMG9Dd3RwcDRj
-U3pNK2hZaUxmOE42OGNKdW5kYWpLNHRYQ3REQUNqVlg3SFZ4Cm1oMVkwODlPOXJC
-SjFVQ1hjMzNYVDZ2OVpEbXBoNnBQT0F6N0xDdnRYbWVmRkxYaElSbjBtN2p1OHlC
-akZTUEoKCi0+IHNzaC1lZDI1NTE5IENTTXloZyA3YXYvak0vWW1BM3FVT2RncURE
-QzJMa2NoZkRyQ3pIRkNoME1CR3FCVURnCnFXUEZWN0s0alNKZlZWOFdjK0hpMWdz
-V05YWjRkNFlYb0pnV0oybW40aVEKLT4gNEU1P0QuOlgtZ3JlYXNlIDZ8I2hQcW4t
-ID0mYiB2JDpPeyxMIGpJegp3dwotLS0gOGwwcWlWNERoRWlkMDBIZkt6U0dBaWw1
-TUhHVVp1NEV3cktEeDVVMWtkTQo3CZ3tLMBtiWDVl2PeAQsDShBnvHyUpE6+fjwN
-j281j2luh4sKvpYMAQwbEGViKp0Bh9oJCV7CMaVTvY750NI7bu6oK8KpOIElj1UF
-wBqnrZO4I1cAnJ1LRybPQXD+Wxc/uHQ4VZ+hO1b00q04wI5J1lWrgs47o+TcIB+M
-oWyn5tDlJa55qSK2pcC+csycYlJDgZzhUGa0xZQGL0574hzTH9ZQFNJAnCm77ivC
-LNaAoa/GYUT8cCxrSpcMRy+4nqLchCD/ZcCfHC1kOsjJSP9xnrYUe0/bcmsZ9FEz
-YVtmsplM61hFzcY59z8VVz9aP8yp1v6LtiwDPX9mJhZXOqU=
------END AGE ENCRYPTED FILE-----
+age-encryption.org/v1
+-> ssh-ed25519 4NLKrw Zd/NMDnj6lBe9ZfZyJpubFB5yLl28wNTEJiwd2+9L08
+odN3RAr4w3tg/zsibLhQ/51GtlNhbd6Ps7WEKf5+N7A
+-> ssh-ed25519 5kwcsA UmhpgmoOntX/ttwLpAyS5wLgrLkElV+XUkNETHa4mWQ
+gYosgxP7Ddn8dZOV7dVFCkZ+QJ4aFR6Fw3bqQDbZTOE
+-> ssh-ed25519 9d4YIQ Sys2uaaR/MDc33a48C/HiHWx3pCkJtgXuZDbNjIbuno
+cbBeOGom41lyjo1ZJpLZZq3q/pYQHBl68k2CAUTH0q4
+-> ssh-ed25519 3Bcr1w yulsJIUd/9B/Kr6+o5oDUBUyuTbgtxcY/oF3rDFptzg
+/oufFYsJ2CmYfhvT38EIirgPGczSqLqPLmAFJqt3OVE
+-> ssh-ed25519 c4NQlA QjnDUoTDZbt975WcvJ0WzhgzCJCewgJ8iby9/2I2UwE
+tNXuNp71dxvHXYbGTQW4Akg38NUfPe2wxf/L/2bY1fY
+-> ssh-rsa DQlE7w
+dcSeDLSMYiC3SbCtZ7kzJ0ywZR/fuZJ+YhEZQ7mTVvdwZAqVjkpA/jVxOlWpmKOC
+PEydXCo0bHYBFp12ldx5qJvxckZJ6gUM66fX4M618aq87/b9VAqN42GHDJPD6Ot1
+Aae1CpnC1ythkPS+z8FH54u5DYtIimJBApyCNuoc6cKoYe4UoQFV8Fmje/gaiJMa
++Gb9uY42HgCFtkG0g8LMitQft1BQ6Vkx8pIWrAXyxoYOTbPNV+J3ZMe4q1rJTmm2
+yXundaPgobVn3o0x6O4oLerb8Eov9uf/W8dZ9GCtjgbxBCz6gtajEXorZ8eZBREN
+R1gB0KZB7kMyomPaZfglVUtr8PXzk71Gia984vyIXNHREY+ioto8YFUWEbHIUPDm
+wUo5G/RdxAbI3yOoF8Y9iKVy3q+Zm1rqhYPZ1bm66+cSzrCosPVS1JcNyrwGRlv3
+RJabiJjSkftALGdvZwN1YiAzeyrsCijTSLQfOLihBL5K1DY1R1on0E9O98SQ1cQe
+
+-> ssh-ed25519 CSMyhg b5XFGFE4oKVs2Va+AmjOsPzqmevAO2R5K3lK4T/ZNlU
+bHh12HARMz+eaGy2bjVBlYV/jv0MgavVeB2zVoDNI34
+--- UrkzgesMam4Kwdcb+STgOj05ozL72qeyjNn4zkz2VOg
+~B&Vj}q[ék~'9ϲ%(_
+@P we|1k,7yV¶v#tu$k{3u%Mc6o+vms,g㚙lϰq
mPP5
ev=4 oJLWҜZ"ky#_qNqA_v
\ No newline at end of file
diff --git a/secrets/hermes-env.age b/secrets/hermes-env.age
index de7b3bb91a7b0b97a1af24ded432c255575d495d..d95c908374e2c548f59e639004f3b0dff2ffaa83 100644
GIT binary patch
delta 1817
zcmZ3%_mXddPJLKGN=R9lS%#NEuy