My pi agent setup, for now personal. Will make more general later once working how i want
- Nix 64.9%
- TypeScript 35.1%
- split package set into modules/home/packages/ - import Claude Code from llm-agents for AskClaude - patch pi-claude-bridge with explicit executable path |
||
|---|---|---|
| locks | ||
| modules/home | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
pi.nix
Home Manager module for Pi coding agent package, config, local extensions, RTK, and third-party Pi packages.
Use
Add flake input:
{
inputs.pi-nix.url = "git+file:///repo/Nix/pi.nix";
}
Import module in Home Manager:
{
imports = [ inputs.pi-nix.homeManagerModules.default ];
programs.pi = {
enable = true;
provider = "google-gemini-cli";
model = "gemini-3.1-pro-preview";
};
}
programs.pi.package defaults to pi-nix's pinned llm-agents Pi package.
NPM isolation
No global npm install. Heavy packages build inside Nix:
pi-claude-bridge:buildNpmPackagefrom tagged source with upstreampackage-lock.jsonpi-web-access:buildNpmPackagewith lockedpackage-lock.jsoncontext-mode:bun2nixdependencies, then Bun-driven Nix build with no npm shellout
Pi loads resulting store paths through settings.json packages, so dependencies stay package-local. The module also installs rtk for pi-rtk-optimizer command rewrites.