---
name: dicklesworthstone-extending-pi
description: "Guide for extending Pi — decide between skills, extensions, prompt templates, themes, context files, or custom models, then create and package them. Use when someone wants to extend Pi, add capabilities, create a skill, build an extension, or make a Pi package."
license: "NOASSERTION"
metadata:
  decimalai-skill-id: "1eea75e5-c43e-44f6-b634-767441051afd"
  decimalai-version-id: "7639761f-541d-4dbb-8f72-080d9bfae29b"
  decimalai-version: "1"
  decimalai-body-sha256: "582da27b5ea56fb0ece7cac7b1c2f8441aaede681312f57b16292c07ac3d3e05"
  decimalai-name: "dicklesworthstone/extending-pi"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "agent-tooling"
  decimalai-source: "https://app.decimal.ai/s/dicklesworthstone-extending-pi@1/SKILL.md"
---
# Extending Pi

Help the user decide what to build and where to find guidance.

## What to build

| Goal | Build a… | Where |
|------|----------|-------|
| Teach Pi a workflow or how to use a tool/API/CLI | **Skill** | Read `skill-creator/SKILL.md` for detailed guidance |
| Give Pi a new tool, command, or runtime behavior | **Extension** | Read Pi docs: `docs/extensions.md` |
| Reuse a prompt pattern with variables | **Prompt template** | Read Pi docs: `docs/prompt-templates.md` |
| Set project-wide coding guidelines | **Context file** | `AGENTS.md` in project root or `.pi/agent/` — just markdown |
| Change Pi's appearance | **Theme** | Read Pi docs: `docs/themes.md` |
| Add a model or provider | **Custom model** | Read Pi docs: `docs/models.md` (JSON) or `docs/custom-provider.md` (extension) |
| Share any of the above | **Package** | Read Pi docs: `docs/packages.md` |

## Skill vs Extension — the fuzzy boundary

If `bash` + instructions can do it, prefer a **skill** (simpler, no code to maintain). If you need event hooks, typed tools, UI components, or policy enforcement, use an **extension**.

Examples:
- "Pi should know our deploy process" → **Skill** (workflow instructions)
- "Pi should confirm before `rm -rf`" → **Extension** (event interception)
- "Pi should use Brave Search" → **Skill** (instructions + CLI scripts)
- "Pi should have a structured `db_query` tool" → **Extension** (registerTool)
