From 21d049afbb7c46bc14b37f7a38135fbc601100a6 Mon Sep 17 00:00:00 2001 From: Sam Rolfe Date: Wed, 6 May 2026 18:03:09 +1000 Subject: [PATCH] Update README --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index 0253f1c..259fe17 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,39 @@ In NixOS, configuration files are managed "declaratively" rather than manually. ## ❓ Why "sudo" doesn't work The `/nix/store` is mounted as read-only at the system level. This ensures your system always matches your config and allows for instant **rollbacks** if something breaks. +### Example: Adding a local file and remote extensions + +```nix +{ config, pkgs, ... }: + +{ + home.file = { + # 1. Manual/Local File Management + ".pi/agents/settings.json".text = '' + { + "defaultProvider": "openrouter", + "extensionsPath": "~/.pi/extensions" + } + ''; + + # 2. Adding an entire folder (e.g., extensions) from Gitea + ".pi/extensions/my-tool".source = pkgs.fetchgit { + url = "https://your-gitea-instance.com"; + rev = "main"; # or a specific commit hash + sha256 = "0000000000000000000000000000000000000000000000000000"; # Run 'nix-prefetch-git' to get this + }; + + # 3. Recursive directory from your local config folder + # This maps everything inside your local 'agents' folder to ~/.pi/agents/ + ".pi/agents" = { + source = ./agents; + recursive = true; + }; + }; +} +``` + +### Tips for Extensions +* **Git Tracking**: If you use `git add .` in your config directory, Nix will track your local changes. +* **Fetchers**: Use [pkgs.fetchgit](https://nixos.org) for Gitea repos to ensure they are version-controlled and reproducible. +* **Permissions**: If an extension needs to be executable, add `executable = true;` to the `home.file` block.