nixos/user/modules/pi/default.nix
Bryan Ramos d29ec32959 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.
2026-04-27 16:55:26 -04:00

28 lines
656 B
Nix

{ 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)
'';
};
}