---
slug: "aliou-pi-dev-kit"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/aliou/pi-dev-kit@main/README.md"
repo: "https://github.com/aliou/pi-dev-kit"
source_file: "README.md"
branch: "main"
---
![banner](https://assets.aliou.me/github/aliou/pi-dev-kit/banner.png)

# Pi Dev Kit

Tools and commands for building, maintaining, and updating Pi extensions.

## Demo



https://github.com/user-attachments/assets/44a96009-0653-4803-8590-d5a8a5131f4c

<small>
  <a href="https://assets.aliou.me/github/aliou/pi-dev-kit/demo.mp4">Non sped-up version</a>
</small>


## Installation

```bash
pi install npm:@aliou/pi-dev-kit
```

Or from git:

```bash
pi install git:github.com/aliou/pi-dev-kit
```

Formerly `@aliou/pi-extension-dev`. This package continues from the same release line under a new name.

## Commands

### `/extensions:update [VERSION]`

Update Pi extensions to a target version. Without an argument, checks npm for the latest version and lets you choose between latest and installed. With a version argument, targets that version directly.

Runs a guided workflow: detects the package manager, compares versions, reads changelogs and docs, analyzes source files for breaking changes, presents an update plan, and applies changes after confirmation.

## Tools

### `detect_package_manager`

Detects the package manager used in the current project. Checks the `packageManager` field in `package.json` first, then falls back to lockfile detection (`pnpm-lock.yaml`, `yarn.lock`, `package-lock.json`, `bun.lockb`). Walks up from the working directory to the git root.

Returns the package manager name, version (if declared), lockfile path, and install/run commands.

### `pi_version`

Returns the version of the currently running Pi instance.

### `pi_docs`

Lists Pi markdown documentation files from the Pi installation: `README.md`, `docs/`, and `examples/`.

### `pi_changelog`

Parses the Pi changelog and returns entries for a specific version (or the latest). When the requested version is newer than the installed Pi, fetches the changelog from GitHub.

## Compatibility

Tested against Pi 0.79.1 and the `@earendil-works/*` Pi package namespace.
