creating-pi-extensions

Skill: Creating Pi Extensions

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "creating-pi-extensions" with this command: npx skills add zenobi-us/dotfiles/zenobi-us-dotfiles-creating-pi-extensions

Skill: Creating Pi Extensions

When to Use

  • Creating new pi extensions with slash commands

  • Building interactive overlay modals (pickers, editors, lists)

  • Adding keyboard shortcuts to pi

  • Understanding pi extension API patterns

Quick Start

import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";

export default function myExtension(pi: ExtensionAPI) { pi.registerCommand("mycommand", { description: "Does something useful", handler: async (args, ctx) => { ctx.ui.notify("Hello from extension!", "info"); }, }); }

Reference Documents

Read these in order based on your task:

Document Use When

File Structure Starting a new extension

Code Patterns Implementing extension logic

UX Patterns Designing user interactions

TUI: Overlay Basics Creating modal dialogs

TUI: Lists & Pickers Building scrollable lists with search

TUI: Forms & Input Text input and form fields

Inspiration Real-world extension examples

Key Imports

// Extension API types import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@mariozechner/pi-coding-agent";

// TUI utilities import { matchesKey, visibleWidth } from "@mariozechner/pi-tui";

// Configuration (recommended) import { createConfigService } from "pi-extension-config";

Extension Entry Point

Extensions export a default function that receives the pi API:

export default function extensionName(pi: ExtensionAPI) { // Register commands, shortcuts, etc. }

Checklist

Before submitting an extension:

  • Commands have clear descriptions

  • Keyboard shortcuts don't conflict with pi defaults

  • Overlays handle Escape to cancel

  • Error states show helpful messages via ctx.ui.notify()

  • Theme colors used consistently (accent , border , dim , muted , warning , error )

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

leaflet-mapping

No summary provided by upstream source.

Repository SourceNeeds Review
General

skill-hunter

No summary provided by upstream source.

Repository SourceNeeds Review
General

projectmanagement

No summary provided by upstream source.

Repository SourceNeeds Review
General

chrome-debug

No summary provided by upstream source.

Repository SourceNeeds Review