From 3c736fab4e673f99b58ec71b11690b12396985bb Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 16 Jun 2026 20:50:58 +0200 Subject: Add tools, user to agent, clean-up flake input Signed-off-by: Mel --- flake.lock | 44 +++++++++++++++----------------------------- flake.nix | 5 ++++- modules/agent.nix | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 70 insertions(+), 31 deletions(-) diff --git a/flake.lock b/flake.lock index 26da37a..5708004 100644 --- a/flake.lock +++ b/flake.lock @@ -110,18 +110,20 @@ "hermes-agent": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs", + "nixpkgs": [ + "nixpkgs-unstable" + ], "npm-lockfile-fix": "npm-lockfile-fix", "pyproject-build-systems": "pyproject-build-systems", "pyproject-nix": "pyproject-nix_2", "uv2nix": "uv2nix_2" }, "locked": { - "lastModified": 1781361238, - "narHash": "sha256-BcosUFspfB2aCZ6FyeURiwjR28uaPeOv6oaz+aEkBS8=", + "lastModified": 1781634515, + "narHash": "sha256-AHLycvlLoww1gs2yI49iBmkA234G0z+EUo+Y8vYftDM=", "owner": "NousResearch", "repo": "hermes-agent", - "rev": "cc14b74718aaab8f3dc69c004b4dccf67077a1e1", + "rev": "6ebc4499150b78a983054c01dcfa31f78a677314", "type": "github" }, "original": { @@ -153,7 +155,7 @@ }, "nixos-hardware": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs" }, "locked": { "lastModified": 1781168557, @@ -171,18 +173,15 @@ }, "nixpkgs": { "locked": { - "lastModified": 1775036866, - "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", - "type": "github" + "lastModified": 1767892417, + "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, "nixpkgs-unstable": { @@ -202,19 +201,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1767892417, - "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", - "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" - }, - "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1780952837, "narHash": "sha256-Fwd1+spDtQ0hDyBwme6ufG3n4mY0UrjjFdYHv+G/Hds=", @@ -364,7 +350,7 @@ "hermes-agent": "hermes-agent", "home-manager": "home-manager", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", "oisd": "oisd" } diff --git a/flake.nix b/flake.nix index 6ba03f3..c52d5d8 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,10 @@ flake = false; }; - hermes-agent.url = "github:NousResearch/hermes-agent"; + hermes-agent = { + url = "github:NousResearch/hermes-agent"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; }; outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager, agenix, ... }: diff --git a/modules/agent.nix b/modules/agent.nix index aabbfc3..880919b 100644 --- a/modules/agent.nix +++ b/modules/agent.nix @@ -1,4 +1,4 @@ -{ config, hermes-agent, ... }: +{ config, pkgs, hermes-agent, ... }: { imports = [ @@ -12,6 +12,15 @@ mode = "0440"; }; + users.groups.renard = { }; + users.users.renard = { + isSystemUser = true; + group = "renard"; + home = "/home/renard"; + createHome = true; + shell = pkgs.bashInteractive; + }; + services.hermes-agent = { enable = true; @@ -20,9 +29,50 @@ user = "renard"; group = "renard"; stateDir = "/home/renard"; + createUser = false; extraDependencyGroups = [ "messaging" ]; + # packages for the agent to work with. + # it should also always be able to call `nix-shell` to gain access to more tools. + extraPackages = with pkgs; [ + nix + nixfmt-rfc-style + + openssh + tailscale + + docker_29 + + jq + yq-go + ripgrep + fd + tree + file + unzip + gnused + gawk + + curl + wget + + htop + glances + lsof + iproute2 + iputils + inetutils + + dig + tcpdump + nmap + + git + + vim + ]; + environmentFiles = [ # required secrets: # * OPENROUTER_API_KEY -- cgit 1.4.1