add pi coding agent module

Manages `~/.pi/agent` config via the itme-brain/pi submodule and
provides nodejs_20 with NPM_CONFIG_PREFIX=~/.npm-global so pi and its
extensions install via the global npm ecosystem.

Pi itself and extensions like pi-mcp-adapter are installed manually
via `npm install -g` rather than packaged through nix — the ecosystem
moves too fast to keep derivations current.
This commit is contained in:
Bryan Ramos 2026-04-27 16:55:26 -04:00
parent 46833d374e
commit 1ca2e5a512
4 changed files with 34 additions and 0 deletions

1
user/modules/pi/agent Submodule

@ -0,0 +1 @@
Subproject commit 71b78ea0c3b64e9fb253a408ad607b4f2d44f86b

View file

@ -0,0 +1,28 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.modules.user.pi;
npmGlobal = "${config.home.homeDirectory}/.npm-global";
in
{ options.modules.user.pi = { enable = mkEnableOption "user.pi"; };
config = mkIf cfg.enable {
home.packages = with pkgs; [ nodejs_20 ];
home.sessionVariables = {
LLAMACPP_BASE_URL = "https://ai.ramos.codes/v1";
NPM_CONFIG_PREFIX = npmGlobal;
};
home.sessionPath = [ "${npmGlobal}/bin" ];
home.file.".pi/agent" = {
source = ./agent;
recursive = true;
};
programs.bash.initExtra = ''
export LLAMACPP_API_KEY=$(cat /run/secrets/LLAMA_API_KEY)
'';
};
}