vibecoded pi-packages
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-18 17:21:47 +02:00
packages chore(deps): bump packages 2026-10-18 17:21:47 +02:00
skills/subagent feat(pi-web-tools): Add web_search and web_fetch as Pi tools 2026-10-18 17:16:50 +02:00
.gitignore feat: Add pi-permission-gate and pi-permission-auto-review 2026-09-23 23:50:47 +02:00
.oxfmtrc.json test: Fix leftover issues in the vitest migration 2026-09-25 19:57:17 +02:00
.oxlintrc.json test: Fix leftover issues in the vitest migration 2026-09-25 19:57:17 +02:00
AGENTS.md style: markdown fmt 2026-09-26 23:20:44 +02:00
package.json chore(deps): bump packages 2026-10-18 17:21:47 +02:00
pnpm-lock.yaml chore(deps): bump packages 2026-10-18 17:21:47 +02:00
pnpm-workspace.yaml fix(pi-sandbox): Support literal filesystem path entries 2026-10-09 21:45:08 +02:00
prek.toml feat(skills): Add web-fetch and web-search skills 2026-09-26 14:56:19 +02:00
README.md feat(pi-web-tools): Add web_search and web_fetch as Pi tools 2026-10-18 17:16:50 +02:00

pi-packages

Personal Pi packages monorepo.

Packages

Package Description
pi-sandbox Runs bash in an OS sandbox, no runtime prompts
pi-web-tools Fetch web pages and search the web as Pi tools
pi-permission-gate Checks every tool call against permission rules
pi-permission-auto-review Lets a model answer permission questions
pi-caffeinate Keeps the computer awake while the agent is running
pi-auto-name Names the session after the first submitted prompt

The repository root is itself a pi package: one install loads the extensions of every package under packages/, plus the subagent skill (running helper agents in parallel with headless pi -p).

pi's git installer runs npm install only at the repository root, so the runtime dependencies of packages/* are mirrored in the root package.json — dependencies declared in a workspace alone would never be installed.

pi install git:git.karolak.fr/nicolas/pi-packages

Or add to ~/.pi/agent/settings.json:

{
  "packages": [
    "git:git.karolak.fr/nicolas/pi-packages"
  ]
}

Loading individual extensions

A project can load only some extensions by narrowing the entry in .pi/settings.json:

{
  "packages": [
    {
      "source": "git:git.karolak.fr/nicolas/pi-packages",
      "extensions": ["packages/pi-permission-gate/index.ts"]
    }
  ]
}

Filters also accept !path to exclude an extension and [] to load none. pi config toggles extensions one by one, interactively.

Development

pnpm install
pnpm check      # TypeScript
pnpm test       # vitest

Packages are wired via pnpm workspaces (packages/*).