extension-designer

Design and scaffold pi extensions with tools, TUI overlays, commands, and event hooks.

Updated Mar 31, 2026
One-click install
npx skills add https://github.com/dotBeeps/hoard --skill extension-designer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extension-designer
Source: https://github.com/dotBeeps/hoard/tree/main/morsels/skills/extension-designer
Command: npx skills add https://github.com/dotBeeps/hoard --skill extension-designer

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill reduces friction and mistakes when designing and implementing Pi extensions by providing standards, patterns, and guardrails for tools, TUI components, commands, and event-driven behavior so extensions work reliably with agent calls and session branching.

Core Features & Use Cases

  • Tool registration & prompts: Guidance on registering LLM-callable tools with promptSnippet and promptGuidelines and strict parameter schemas for reliable LLM usage.
  • TUI & overlays: Patterns for building interactive overlays, widgets, and editor components that respect width, theming, keyboard input, and caching/invalidation rules.
  • Concurrency & file safety: File mutation queue patterns, cancellation checks, and truncation utilities to prevent races and manage large outputs.
  • State & session management: Store state in tool result details and reconstruct across session events to preserve branching correctness.
  • Use Case: Scaffold a multi-file TypeScript extension that registers a search tool callable by the LLM, displays results in an overlay, and persists selection state across forks.

Quick Start

Scaffold a new extension that registers a tool with a promptSnippet and promptGuidelines, implements a renderResult overlay, and stores state in the tool result details.

Frequently Asked Questions about extension-designer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I register LLM-callable tools in a TypeScript extension with prompt guidelines?

To register LLM-callable tools in a TypeScript extension, define strict parameter schemas using Type or StringEnum and expose tool visibility by implementing promptSnippet and promptGuidelines. This ensures reliable LLM usage and safe agent interactions.

What is the best way to manage persistent session state across agent forks?

Managing persistent session state across agent forks is done by storing state in tool result details and reconstructing it across session events. This pattern preserves branching correctness and maintains data continuity during complex agent workflows.

How do I build TUI overlays and widgets that respect keyboard input and theming?

Building TUI overlays and widgets that respect keyboard input and theming requires applying interactive component patterns with caching and invalidation rules. This approach ensures user interface elements render correctly within the agent environment.

How can I prevent race conditions during file mutations in agent extensions?

Preventing race conditions during file mutations in agent extensions requires implementing file mutation queue patterns and cancellation checks. This manages concurrent operations safely and prevents conflicts when handling large outputs with truncation utilities.

Does scaffolded extension development support session reconstruction and event hooks?

Scaffolded extension development supports session reconstruction and event hooks by coordinating safe file mutations and storing state in tool result details. This allows multi-file TypeScript extensions to persist selection state across forks reliably.