An open API service indexing awesome lists of open source software.

https://github.com/ppowo/pi-config

Personal pi agent configuration — prompts, extensions, skills, themes, and settings managed in version control with symlink-based bootstrap.
https://github.com/ppowo/pi-config

ai-coding-agent configuration developer-tools dotfiles nushell pi-mono

Last synced: 26 days ago
JSON representation

Personal pi agent configuration — prompts, extensions, skills, themes, and settings managed in version control with symlink-based bootstrap.

Awesome Lists containing this project

README

          

# pi-config

My personal pi agent config repo.
It keeps prompts/extensions/skills/themes/reminders plus repo-managed pi config in version control and bootstraps them into `~/.pi/agent`.

## Prerequisites

- **Node.js** ≥ 22.19.0 — see [Installing Node.js](#installing-nodejs)
- **pi** — see [Installing pi](#installing-pi)

### Tooling

This config assumes a few CLI tools are available on `PATH` for the agent and its extensions to use:

- `difft` (`difftastic`)
- `fd`
- `jq`
- `rg` (`ripgrep`)
- `scc`
- `shellcheck`
- `ctags` (`universal-ctags`)
- `yq`

You can install these yourself, or use [`lum`](https://github.com/ppowo/lum) as a one-stop way to manage them:

```bash
lum tools sync
```

### Installing Node.js

**macOS** (Homebrew):
```bash
brew install node
```

Or install via [fnm](https://github.com/Schniz/fnm#installation) (recommended for managing multiple Node versions).

**Linux** — install via your package manager (`apt`, `dnf`, etc.) or [fnm](https://github.com/Schniz/fnm#installation).

Verify:
```bash
node --version # should be ≥ 22.19.0
```

### Installing pi

Install pi globally with npm:
```bash
npm install -g @earendil-works/pi-coding-agent
```

Verify:
```bash
pi --version
```

## Setup
From this repo root:
```bash
npm run setup
```

Theme defaults to light. You can also choose explicitly:

```bash
npm run setup-light
npm run setup-dark
```

No `npm install` needed — the bootstrap script uses only Node.js built-ins.

## What setup does

`npm run setup` runs `bootstrap.mjs`, which:

- symlinks into `~/.pi/agent`:
- `prompts/`
- `extensions/`
- `skills/`
- `themes/`
- `reminders/`
- `APPEND_SYSTEM.md`
- `models.json`
- merges overlay files into:
- `~/.pi/agent/settings.json` (from `settings.json`)
- `~/.pi/agent/verbosity.json` (from `verbosity.json`)
- `~/.pi/web-tools.json` (from `web-tools.json`)
- `~/.pi/agent/hashline-readmap/settings.json` (from `hashline-readmap-settings.json`)

## Repo layout

- `bootstrap.mjs` — setup/link/merge script
- `prompts/` — prompt files
- `extensions/` — pi extensions
- `skills/` — pi skills
- `themes/` — pi themes
- `reminders/` — global reminder definitions for `pi-system-reminders`
- `APPEND_SYSTEM.md` — extra system prompt text appended into pi
- `settings.json` — repo-managed pi settings overlay, including installed packages/extensions
- `verbosity.json` — repo-managed pi-verbosity-control overlay
- `models.json` — custom provider/model definitions symlinked into pi (for example OpenRouter via `OPENROUTER_API_KEY`)

The bootstrap script is plain Node.js, but pi extensions in `extensions/` can still stay TypeScript.
Reminder files tracked in `reminders/` become global reminders via `~/.pi/agent/reminders`; project-specific reminders for some other repo should still live in that repo's `.pi/reminders/` directory.

## Re-run / update

Re-run `npm run setup` any time you change files in this repo or set up a new machine.

`bootstrap.mjs` resolves the repo from the script location, so it works even if you invoke it outside the repo root.

## Note

`settings.json` and `verbosity.json` are applied as repo-managed overlays. Every leaf path present there is owned by this repo. Other local pi settings are preserved, and if a repo-managed key is later removed from either file, re-running setup removes it from the corresponding file in `~/.pi/agent/` too.