nixos

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit fa66347002d89a66ddcfe2f46ec1202317f6cc73
parent 7af9c1c938bc42e788b884a5ddf1a59ac7591f80
Author: Toni Brown <me@tb148.net>
Date:   Fri,  8 May 2026 16:15:01 +0800

enable hermes agent

Diffstat:
Mflake.lock | 379+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
Mflake.nix | 12++++++++++++
Mlocal/service/default.nix | 1+
Alocal/service/hermes-agent/default.nix | 17+++++++++++++++++
Mlocal/service/searx/default.nix | 1+
Mlocal/system/nix/default.nix | 2++
6 files changed, 396 insertions(+), 16 deletions(-)

diff --git a/flake.lock b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1777337743, - "narHash": "sha256-oRwlY4tHyamXKJyn1sEFy0zUIgfSUo5xrSinTzyJbj0=", + "lastModified": 1778074663, + "narHash": "sha256-tKPbQx+DPHtknvo2I8nquXJZQ+jcRTwpQ/HUxp0pq9k=", "owner": "HeitorAugustoLN", "repo": "betterfox-nix", - "rev": "3b96fa583dbdfee62f733df6c16da994eaf24922", + "rev": "f8f5d6d3359abe1c979551ca18ee6496907607e8", "type": "github" }, "original": { @@ -23,6 +23,65 @@ "type": "github" } }, + "blueprint": { + "inputs": { + "nixpkgs": [ + "llm-agents", + "nixpkgs" + ], + "systems": [ + "llm-agents", + "systems" + ] + }, + "locked": { + "lastModified": 1776249299, + "narHash": "sha256-Dt9t1TGRmJFc0xVYhttNBD6QsAgHOHCArqGa0AyjrJY=", + "owner": "numtide", + "repo": "blueprint", + "rev": "56131e8628f173d24a27f6d27c0215eff57e40dd", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "blueprint", + "type": "github" + } + }, + "bun2nix": { + "inputs": { + "flake-parts": [ + "llm-agents", + "flake-parts" + ], + "nixpkgs": [ + "llm-agents", + "nixpkgs" + ], + "systems": [ + "llm-agents", + "systems" + ], + "treefmt-nix": [ + "llm-agents", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1777369708, + "narHash": "sha256-1xW7cRZNsFNPQD+cE0fwnLVStnDth0HSoASEIFeT7uI=", + "owner": "nix-community", + "repo": "bun2nix", + "rev": "e659e1cc4b8e1b21d0aa85f1c481f9db61ecfa98", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "staging-2.1.0", + "repo": "bun2nix", + "type": "github" + } + }, "catppuccin": { "inputs": { "nixpkgs": [ @@ -30,11 +89,11 @@ ] }, "locked": { - "lastModified": 1777734189, - "narHash": "sha256-kbIhdhDPaTP6gxAPkcRYeB+cqPFDpTM/bnw+m+26vkI=", + "lastModified": 1778336446, + "narHash": "sha256-axlSmUkHgMSnHitMgIWH8iNfU9Ej39Th50KD8NePjac=", "owner": "catppuccin", "repo": "nix", - "rev": "e68cf5deaf1a7afed2e548835dba2ae99f5a3ccb", + "rev": "f656000aa5e6dc2664f71bc57ce00bf68dc65366", "type": "github" }, "original": { @@ -67,6 +126,48 @@ "flake-parts_2": { "inputs": { "nixpkgs-lib": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "llm-agents", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1777988971, + "narHash": "sha256-qIoWPDs+0/8JecyYgE3gpKQxW/4bLW/gp45vow9ioCQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "0678d8986be1661af6bb555f3489f2fdfc31f6ff", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ "nur", "nixpkgs" ] @@ -85,6 +186,31 @@ "type": "github" } }, + "hermes-agent": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ], + "npm-lockfile-fix": "npm-lockfile-fix", + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix_2", + "uv2nix": "uv2nix_2" + }, + "locked": { + "lastModified": 1778326495, + "narHash": "sha256-ggiTVuj35N7rSqX7qHc6GU3xcId4wKWa9/nebHa3hY0=", + "owner": "NousResearch", + "repo": "hermes-agent", + "rev": "f6d45e5df49c85c87a3f2ec44f9e92e233019622", + "type": "github" + }, + "original": { + "owner": "NousResearch", + "repo": "hermes-agent", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -92,11 +218,11 @@ ] }, "locked": { - "lastModified": 1778009629, - "narHash": "sha256-nUoQtf4Zq7DRYJrfv904hjrxjAlWVP6a1pNNFKx3FCg=", + "lastModified": 1778248595, + "narHash": "sha256-dhFgEjoeJMYN/7OY6xfxS799YB4IjbbYXTjyGIJyLpc=", "owner": "nix-community", "repo": "home-manager", - "rev": "00ed86e58bb6979a7921859fd1615d19382eac5c", + "rev": "fdb2ccba9d5e1238d32e0c4a3ec1a277efa80c1d", "type": "github" }, "original": { @@ -120,6 +246,31 @@ "type": "github" } }, + "llm-agents": { + "inputs": { + "blueprint": "blueprint", + "bun2nix": "bun2nix", + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1778304612, + "narHash": "sha256-7FkBnR56KZ8RwY5kPd3ans8f68IYjF1J66gOUlLsiLA=", + "owner": "numtide", + "repo": "llm-agents.nix", + "rev": "c741913095c4815f6651aa0a2c24b3ce15e414e4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "llm-agents.nix", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1777954456, @@ -138,11 +289,11 @@ }, "nixpkgs-small": { "locked": { - "lastModified": 1778016882, - "narHash": "sha256-P0r7DKpsh9Sn8v/ckIv5xgBm9RWSgJsJskadaQiX4us=", + "lastModified": 1778228972, + "narHash": "sha256-L34YTBob9sdjnc+rd7nMC2X8ddw0LT4RfufnlFyArRU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5c21abf2abb5bcbbb8d486d1fc32305fb03b0414", + "rev": "1c5503ba41146fb6b49ed9706823b30de7f3a78f", "type": "github" }, "original": { @@ -152,19 +303,40 @@ "type": "github" } }, + "npm-lockfile-fix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775903712, + "narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=", + "owner": "jeslie0", + "repo": "npm-lockfile-fix", + "rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8", + "type": "github" + }, + "original": { + "owner": "jeslie0", + "repo": "npm-lockfile-fix", + "type": "github" + } + }, "nur": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_4", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1778032338, - "narHash": "sha256-o9x+mc6nDMiTPHpUC8j7o3D5nioNiilOr1u1Xr5WLj8=", + "lastModified": 1778334545, + "narHash": "sha256-yVHaHDRqlSX8veSUjZaXsPX3GD3+EF3Zap85hDVrt6M=", "owner": "nix-community", "repo": "NUR", - "rev": "63d2dc1ba0ddc14069edc53329d87c8109c7efe2", + "rev": "6f73c3738867b974b78aca91ed38560f03f77850", "type": "github" }, "original": { @@ -173,11 +345,101 @@ "type": "github" } }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ], + "pyproject-nix": "pyproject-nix", + "uv2nix": "uv2nix" + }, + "locked": { + "lastModified": 1772555609, + "narHash": "sha256-3BA3HnUvJSbHJAlJj6XSy0Jmu7RyP2gyB/0fL7XuEDo=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "c37f66a953535c394244888598947679af231863", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "pyproject-build-systems", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769936401, + "narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=", + "owner": "nix-community", + "repo": "pyproject.nix", + "rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "pyproject.nix", + "type": "github" + } + }, + "pyproject-nix_2": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772865871, + "narHash": "sha256-/ZTSg97aouL0SlPHaokA4r3iuH9QzHVuWPACD2CUCFY=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "e537db02e72d553cea470976b9733581bcf5b3ed", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, + "pyproject-nix_3": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "uv2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771518446, + "narHash": "sha256-nFJSfD89vWTu92KyuJWDoTQJuoDuddkJV3TlOl1cOic=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "eb204c6b3335698dec6c7fc1da0ebc3c6df05937", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { "betterfox": "betterfox", "catppuccin": "catppuccin", + "hermes-agent": "hermes-agent", "home-manager": "home-manager", + "llm-agents": "llm-agents", "nixpkgs": "nixpkgs", "nixpkgs-small": "nixpkgs-small", "nur": "nur" @@ -197,6 +459,91 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "llm-agents", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775636079, + "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "uv2nix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "pyproject-build-systems", + "nixpkgs" + ], + "pyproject-nix": [ + "hermes-agent", + "pyproject-build-systems", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1770770348, + "narHash": "sha256-A2GzkmzdYvdgmMEu5yxW+xhossP+txrYb7RuzRaqhlg=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "5d1b2cb4fe3158043fbafbbe2e46238abbc954b0", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + }, + "uv2nix_2": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ], + "pyproject-nix": "pyproject-nix_3" + }, + "locked": { + "lastModified": 1773039484, + "narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "b68be7cfeacbed9a3fa38a2b5adc0cfb81d9bb1f", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix @@ -16,6 +16,14 @@ url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + hermes-agent = { + url = "github:NousResearch/hermes-agent"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + llm-agents = { + url = "github:numtide/llm-agents.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -28,6 +36,8 @@ nur, betterfox, catppuccin, + hermes-agent, + llm-agents, home-manager, ... }: { @@ -42,6 +52,8 @@ ./local/. nur.modules.nixos.default catppuccin.nixosModules.catppuccin + hermes-agent.nixosModules.default + {nixpkgs.overlays = [llm-agents.overlays.default];} home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; diff --git a/local/service/default.nix b/local/service/default.nix @@ -2,6 +2,7 @@ imports = [ ./boinc/. ./docker/. + ./hermes-agent/. ./pipewire/. ./searx/. ./timesyncd/. diff --git a/local/service/hermes-agent/default.nix b/local/service/hermes-agent/default.nix @@ -0,0 +1,17 @@ +{ + config, + pkgs, + ... +}: { + services.hermes-agent = { + enable = true; + container.enable = true; + container.backend = "podman"; + container.hostUsers = ["tb148"]; + environmentFiles = ["${config.users.users.tb148.home}/.hermes.env"]; + extraPackages = with pkgs; [agent-browser]; + settings.model.default = "deepseek-v4-pro"; + addToSystemPackages = true; + }; + virtualisation.podman.enable = true; +} diff --git a/local/service/searx/default.nix b/local/service/searx/default.nix @@ -2,5 +2,6 @@ services.searx = { enable = true; environmentFile = "${config.users.users.tb148.home}/.searxng.env"; + settings.search.formats = ["html" "json"]; }; } diff --git a/local/system/nix/default.nix b/local/system/nix/default.nix @@ -11,9 +11,11 @@ "https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store?priority=30" "https://mirrors.ustc.edu.cn/nix-channels/store?priority=30" "https://cache.nixos-cuda.org" + "https://cache.numtide.com" ]; trusted-public-keys = [ "cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M=" + "niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g=" ]; }; }