Compare commits

...

4 commits

Author SHA1 Message Date
42c9fbc6e1 fix(neovim): support mason tools on nixos 2026-04-30 11:01:06 -04:00
a184bd35ee remove opencode 2026-04-27 17:26:00 -04:00
9aa7b21828 bump pi config submodule 2026-04-27 17:22:08 -04:00
1ca2e5a512 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
10 changed files with 77 additions and 2 deletions

3
.gitmodules vendored
View file

@ -14,3 +14,6 @@
path = user/modules/bash/bash
url = https://github.com/itme-brain/bash.git
branch = master
[submodule "user/modules/pi/agent"]
path = user/modules/pi/agent
url = git@github.com:itme-brain/pi.git

View file

@ -11,6 +11,7 @@
../../keys
../../modules/sops
../../modules/docker
../../modules/nix-ld
./hardware.nix
./system.nix
];

View file

@ -81,6 +81,8 @@
writing.enable = true;
};
pi.enable = true;
gui = {
wm.hyprland.enable = true;
browser.firefox.enable = true;

View file

@ -10,6 +10,7 @@
../../../user
../../keys
../../modules/sops
../../modules/nix-ld
./hardware.nix
./system.nix
];

View file

@ -10,6 +10,7 @@
../../../user
../../keys
../../modules/sops
../../modules/nix-ld
./system.nix
];
}

View file

@ -0,0 +1,39 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.modules.system.nix-ld;
in
{
options.modules.system.nix-ld = {
enable = mkOption {
type = types.bool;
default = any
(user: user.modules.user.neovim.enable or false)
(attrValues config.home-manager.users);
description = "Enable nix-ld so Mason-installed Neovim tools can run on NixOS.";
};
};
config = mkIf cfg.enable {
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
curl
expat
fontconfig
freetype
glib
icu
libgcc
libGL
libxkbcommon
openssl
stdenv.cc.cc
zlib
zstd
];
};
};
}

@ -1 +1 @@
Subproject commit da6106c77470b336783951ff2bce795688e9663d
Subproject commit f11e6a02db5cd8e4c8c1bdec0d34557ff995c32c

1
user/modules/pi/agent Submodule

@ -0,0 +1 @@
Subproject commit 4f129c83b945e8847df798f83a29e554570c6142

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

View file

@ -9,7 +9,6 @@ in
home.packages = with pkgs; [
unstable.claude-code
unstable.codex
unstable.opencode
bubblewrap