Compare commits

...

10 commits

Author SHA1 Message Date
Tobias Ostner
1050439048 Install GitHub and Forgejo CLIs 2026-08-01 16:50:21 +07:00
Tobias Ostner
9dfaa3e6c5 Remove unavailable Cupertino Homebrew tap 2026-08-01 16:46:39 +07:00
Tobias Ostner
e22cd118e7 Store Pi subagent artifacts with sessions 2026-08-01 07:21:18 +02:00
Tobias Ostner
76f1fe31ab Trust Aerospace Homebrew tap 2026-08-01 07:12:06 +02:00
Tobias Ostner
4cc228a47e nix flake update pi 2026-08-01 12:04:20 +07:00
Tobias Ostner
0a5c560f75 Configure IONOS MCP server 2026-07-31 15:50:52 +02:00
Tobias Ostner
36ea7633a4 Mark Pi guardrails config schema version 2026-07-31 20:07:25 +07:00
Tobias Ostner
b790008098 Exclude Herdr from Pi guardrails 2026-07-30 13:35:31 +07:00
Tobias Ostner
648dfc5c18 Configure Pi guardrails for SSH commands 2026-07-30 13:15:44 +07:00
Tobias Ostner
f1fc7fa840 Configure Pi subagents and planning skill 2026-07-29 13:07:00 +02:00
5 changed files with 52 additions and 17 deletions

View file

@ -1,5 +1,11 @@
{
"mcpServers": {
"ionos": {
"url": "https://mcp.ionos.com/mcp",
"auth": "bearer",
"bearerTokenEnv": "IONOS_PAT",
"lifecycle": "lazy"
},
"linear": {
"url": "https://mcp.linear.app/mcp",
"auth": "oauth",

14
flake.lock generated
View file

@ -3,11 +3,11 @@
"agent-skills": {
"flake": false,
"locked": {
"lastModified": 1785234559,
"narHash": "sha256-9aejq9o5rNQkMZve8GHKkV1lz6v2kmotDgacBb25bes=",
"lastModified": 1785322008,
"narHash": "sha256-1NmnD25Q9wgDa1IsSKE8Ky7S9J9wt0KSKDsVZekLbQY=",
"ref": "main",
"rev": "d35f1642a58b3725957361a789ad30c02deed5be",
"revCount": 4,
"rev": "5960c925868f3eb5d1721d75c6bf31457228bab0",
"revCount": 6,
"type": "git",
"url": "https://codeberg.org/oibot/agent-skills.git"
},
@ -164,11 +164,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1785138805,
"narHash": "sha256-NZ9C/5I/PDJUERJ+gVqTBcZJqp5YlSgu/a6Y3I5RIG8=",
"lastModified": 1785511290,
"narHash": "sha256-oz9nu9DUlq657V8Lhb+jsSmRhjzHOQ8ty3oAw158+f4=",
"owner": "lukasl-dev",
"repo": "pi.nix",
"rev": "740d5d8af6d3cffca0b369418144cc7123a167a4",
"rev": "3d2bd32b017a0e55a072d74963443ab97eab9a27",
"type": "github"
},
"original": {

View file

@ -26,10 +26,6 @@
enable = true;
onActivation.cleanup = "zap";
brews = [
"mihaelamj/tap/cupertino"
];
casks = [
"aerospace"
"chatgpt"
@ -53,8 +49,10 @@
taps = [
"homebrew/services"
"mihaelamj/tap"
"nikitabobko/tap"
{
name = "nikitabobko/tap";
trusted = true;
}
];
};

View file

@ -10,12 +10,33 @@
firecrawlApiKey = "$FIRECRAWL_API_KEY";
firecrawlFreshScrape = true;
};
home.file.".pi/agent/extensions/subagent/config.json".text = builtins.toJSON {
artifactDir = "session";
};
home.file.".pi/agent/extensions/guardrails.json".text = builtins.toJSON {
version = "0.13.0-20260619";
features = {
policies = false;
permissionGate = true;
};
permissionGate = {
requireConfirmation = true;
patterns = [
{
pattern = "(^|[;&|])\\s*(ssh|scp|sftp)(\\s|$)";
description = "SSH connection or file transfer";
regex = true;
}
];
};
};
sops = {
age.keyFile = "${config.home.homeDirectory}/Library/Application Support/sops/age/keys.txt";
defaultSopsFile = ../secrets/secrets.yaml;
secrets.firecrawl_api_key = { };
secrets.ionos_pat = { };
};
targets.darwin.defaults = {
@ -41,6 +62,8 @@
coreutils
curl
fira-code
forgejo-cli
gh
gnupg
htop
imagemagick
@ -107,10 +130,12 @@
pi.coding-agent = {
enable = true;
skills = [
(inputs.agent-skills + "/create-plan")
(inputs.agent-skills + "/create-skill")
];
environment = {
FIRECRAWL_API_KEY.file = config.sops.secrets.firecrawl_api_key.path;
IONOS_PAT.file = config.sops.secrets.ionos_pat.path;
};
settings = {
defaultProvider = "openai-codex";
@ -119,7 +144,12 @@
packages = [
"npm:pi-web-access@0.15.0"
"npm:pi-mcp-adapter@2.10.0"
"npm:pi-mcp-adapter@2.15.0"
"npm:pi-subagents@0.37.2"
{
source = "npm:@aliou/pi-guardrails@0.16.0";
extensions = [ "-extensions/herdr/index.ts" ];
}
];
};
};

View file

@ -1,4 +1,5 @@
firecrawl_api_key: ENC[AES256_GCM,data:T5o3SaZmteTq+c6Qw3pvYrW7+Yicio3EbfI3c+d1ZxbsHEU=,iv:bg+q7TZDdsyWI+nvDzX/LpMf2FTKEKBKgMXOhUMCAho=,tag:fmRHmgWfFfL4ckQcTKdshQ==,type:str]
ionos_pat: ENC[AES256_GCM,data:UizMtJgoMAoYC4LPkP6hgmYjR5y2QL1ngfgZNkt7R53L8QSm7Yah7pDCZw==,iv:KzekpU5Bhy9RqtWWUK6ZFmsasJy6IiuAujDFn7dCqpM=,tag:/IEmHjS4Hw7+YsO2P7aXjQ==,type:str]
sops:
age:
- enc: |
@ -10,7 +11,7 @@ sops:
ptUomL2W/we4iRbe1LnPHB1JqBuYZSEaXGgdFbGGf2iYw/jtEE5gTQ==
-----END AGE ENCRYPTED FILE-----
recipient: age106xkhmfrzqum2zkuxxfwjddesuwu6m99tqtt7s3pre4d4wejlp7qkhyfee
lastmodified: "2026-06-19T11:46:02Z"
mac: ENC[AES256_GCM,data:NqmNt+NagD6Fg0KiXkvSIZq/c73F78u7bZfsTFiKqezhcipfsex+71wriLTB3E3fEV9L0YseXWqbaXJjQnE26GoLaqHB232N9BUSw676tetb+5n59oi13FbaZl77OMsh7QZGQ1oSKWccmGm9UVo7T9YBgJHGys/ucqVTqaOAIlg=,iv:7PhfpF9TqgZPVSdi7/sacMSDBOr6fseSERbVisef98M=,tag:Ci6sKjA70Jj13y1JwPPUBQ==,type:str]
lastmodified: "2026-07-31T13:37:26Z"
mac: ENC[AES256_GCM,data:z0o0HITRWvzn8YTehdMhhPCtKosM7Jx0jRCfhV5iJzncjs5cBMi6H8s+0aCd/Ymst6TZsWdq+9I2icwM8SHDWzRrkXzzrPZmqZ+jl4A+tTNcVbRr18ymojg/kz3888jxedYeClRkUbzKGkv/saxOidO5PPyutExdKcomVdcj1kE=,iv:gfEkvBDWmSH9A1qwbx6hSq5k9Xh5DwMcWIvvtkVC6tc=,tag:nse1YX5rYp2DUUOwfYFl0Q==,type:str]
unencrypted_suffix: _unencrypted
version: 3.13.1
version: 3.13.3