@timurci/pi-profiles
Reusable pi configuration profiles for projects
Package details
Install @timurci/pi-profiles from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@timurci/pi-profiles- Package
@timurci/pi-profiles- Version
0.1.0- Published
- Jul 8, 2026
- Downloads
- 56/mo · 56/wk
- Author
- timurci
- License
- MIT
- Types
- extension
- Size
- 16.2 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-profiles
Reusable pi configuration profiles — list, load, and capture from any project.
This package lets you save and reuse your .pi/ setup (extensions, skills, settings, prompts) as a named profile and switch between profiles per-project via slash commands.
Install
From npm (recommended):
pi install npm:@timurci/pi-profiles
From GitHub:
pi install git:github.com/timurci/pi-profiles
Pin a specific version:
pi install npm:@timurci/pi-profiles@0.1.0
pi install git:github.com/timurci/pi-profiles@v0.1.0
Usage
Three slash commands are registered when the extension is loaded:
| Command | Description |
|---|---|
/profiles |
List all available profiles |
/profile <name> |
Load a profile (prompts to choose if name omitted) |
/profile-from-project |
Capture the current ./.pi as a new profile |
/profile <name>
Creates a symlink at ./.pi pointing to ~/.pi/profiles/<name>, then
triggers a /reload so the profile's extensions, skills, etc. take
effect immediately.
If ./.pi already exists:
- Symlink to another profile — asked to confirm before replacement
- Real file or directory — asked to confirm before being removed and replaced
- Already pointing to the requested profile — no-op
Tab completion is available for the profile argument.
/profile-from-project
Copies ./.pi into ~/.pi/profiles/<new-id>/. If a profile with the
same id already exists, you'll be warned and asked to confirm the
overwrite.
If ./.pi has a PROFILE.md, its name and description are reused
and no prompts are shown.
If ./.pi does not have a PROFILE.md, the command prompts for:
- Name — empty input falls back to the cwd basename.
- Description — required; the prompt re-asks if you submit an empty value.
A PROFILE.md is then generated in the new profile directory using
the values you provided.
Config
Optional: ~/.pi/agent/extensions/profiles.json
{
"profilesDir": "/custom/path/to/profiles"
}
If profilesDir is omitted, defaults to ~/.pi/profiles. Run
/reload after editing.
Profile format
Each profile is a directory under profilesDir containing a PROFILE.md
file with YAML frontmatter (same convention as SKILL.md):
~/.pi/profiles/
└── python-dev/
├── PROFILE.md
├── skills/
│ └── ...
└── extensions/
└── ...
PROFILE.md:
---
name: python-dev
description: Python development environment with ML/data tooling.
---
# Python Profile
Add profile documentation here.
Only name and description are read by this extension. The rest of
the file is freeform.
Security
This extension runs with your full user permissions, creates symlinks in your current working directory, and copies files from ./.pi to your home directory. The pi security model is explicit that extensions and third-party packages are full-trust — do not install profiles from sources you have not reviewed.