AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Pi Extensions

skill-dwsy-pi-extensions-skill-pi-extensions-skill · by Dwsy

|

No reviews yet
0 installs
21 views
0.0% view→install

Install

$ agentstack add skill-dwsy-pi-extensions-skill-pi-extensions-skill

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-dwsy-pi-extensions-skill-pi-extensions-skill)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Pi Extensions? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Pi Extensions — LLM Master Reference

Start Here (Read Order)

| Priority | Document | Read When | |----------|----------|-----------| | 1 | [ARCHITECTURE.md](ARCHITECTURE.md) | Before writing ANY extension code | | 2 | [PATTERNS.md](PATTERNS.md) | When you need copy-paste code for a specific task | | 3 | [ANTI-PATTERNS.md](ANTI-PATTERNS.md) | When reviewing or debugging extension code |

The guides/ and references/ directories contain deeper narratives and examples. Use them after scanning the three master docs above.


One-Line Directives

  • Writing a new extension? → Read [ARCHITECTURE.md](ARCHITECTURE.md) §1–§5, then copy the matching pattern from [PATTERNS.md](PATTERNS.md).
  • Extension is broken? → Check [ANTI-PATTERNS.md](ANTI-PATTERNS.md) first.
  • Extension is slow to start? → [references/startup-optimization.md](references/startup-optimization.md) — jiti bottleneck, .js vs .ts, discovery cost.
  • Need TUI component? → [PATTERNS.md](PATTERNS.md) §P12–§P14, then [guides/02-paradigms.md](guides/02-paradigms.md) for narrative.
  • Need beautiful TUI rendering? → [references/tui-beautiful-rendering.md](references/tui-beautiful-rendering.md) — box drawing, overlays, badges, SVG widgets.
  • Need multi-agent patterns? → [references/extension-patterns-from-source.md](references/extension-patterns-from-source.md) — agent coordination, tasks, feeds.
  • Need custom provider/OAuth? → [PATTERNS.md](PATTERNS.md) §P19–§P20, then [guides/07-advanced-patterns.md](guides/07-advanced-patterns.md).
  • Need RPC safety? → [ANTI-PATTERNS.md](ANTI-PATTERNS.md) §A2, then [guides/05-rpc-mode.md](guides/05-rpc-mode.md).

Master Decision Trees

Which document do I need?

I need to understand how extensions work
  └─► ARCHITECTURE.md

I need working code to copy
  └─► PATTERNS.md

I need to know what NOT to do
  └─► ANTI-PATTERNS.md

I need a step-by-step first tutorial
  └─► guides/01-quickstart.md

I need deep narrative on tools/events/UI
  └─► guides/02-paradigms.md

I need state persistence strategies
  └─► guides/03-state.md

I need production architecture (workflows, memory)
  └─► guides/04-production.md

I need RPC mode specifics
  └─► guides/05-rpc-mode.md

I need pi internals (loader, runner, binding)
  └─► guides/06-internals.md

I need startup optimization, speed up extension loading
  └─► references/startup-optimization.md

I need provider plugins, OAuth, overrides
  └─► guides/07-advanced-patterns.md

Which paradigm should I use?

Need LLM to perform action? ───────────────► Tool (PATTERNS P2–P5)
Need user to type /command? ───────────────► Command (PATTERNS P6–P7)
Need keyboard shortcut? ───────────────────► Shortcut (guides/02-paradigms.md)
Need to react to system events? ───────────► Event handler (PATTERNS P8–P11)
Need interactive TUI? ─────────────────────► Custom UI (PATTERNS P12–P14)
Need to inject a model provider? ──────────► registerProvider (PATTERNS P19–P20)
Need to override a built-in tool? ─────────► Tool override (PATTERNS P4)

Which state persistence mechanism?

State should go to LLM context? ───────────► sendMessage({ customType, ... })
State is extension-private? ───────────────► appendEntry("customType", data)
State is user preference (cross-project)? ─► File in ~/.pi/agent/
State is project-local? ───────────────────► File in .pi/
State is temporary cache? ─────────────────► Local variable (reconstructed on reload)

Document Map

Master References (Read First)

| File | Purpose | Length | |------|---------|--------| | [ARCHITECTURE.md](ARCHITECTURE.md) | Mental model, execution flow, exact event semantics | ~9KB | | [PATTERNS.md](PATTERNS.md) | 38 copy-paste patterns with exact imports | ~17KB | | [ANTI-PATTERNS.md](ANTI-PATTERNS.md) | 15 common mistakes with corrections | ~9KB |

Progressive Guides (Read as Needed)

| File | Level | Topic | |------|-------|-------| | [guides/01-quickstart.md](guides/01-quickstart.md) | 🌱 Beginner | First extension in 5 minutes | | [guides/02-paradigms.md](guides/02-paradigms.md) | 🌿 Intermediate | Tools, commands, events, UI deep dive | | [guides/03-state.md](guides/03-state.md) | 🌳 Advanced | Persistent and branch-resilient state | | [guides/04-production.md](guides/04-production.md) | 🏔️ Expert | Multi-mode, workflows, memory systems | | [guides/05-rpc-mode.md](guides/05-rpc-mode.md) | 🔌 RPC | RPC mode compatibility and degradation | | [guides/06-internals.md](guides/06-internals.md) | ⚙️ Internals | Loader, runner, event dispatch, binding | | [guides/07-advanced-patterns.md](guides/07-advanced-patterns.md) | 🚀 Advanced | Provider plugins, OAuth, tool overrides, file mutation queues |

Reference Docs

| File | Purpose | |------|---------| | [references/api.md](references/api.md) | Complete API documentation | | [references/api-quickref.md](references/api-quickref.md) | Quick reference card | | [references/events.md](references/events.md) | Full event reference | | [references/examples.md](references/examples.md) | Additional code examples | | [references/ui-components.md](references/ui-components.md) | TUI component catalog | | [references/extension-patterns-from-source.md](references/extension-patterns-from-source.md) | Multi-agent, diff rendering, config patterns from 10+ extensions | | [references/tui-beautiful-rendering.md](references/tui-beautiful-rendering.md) | Beautiful TUI: box drawing, transcript, overlays, badges, SVG/HTML widgets | | [references/startup-optimization.md](references/startup-optimization.md) | Startup perf: jiti transpilation, .js vs .ts, measuring bottlenecks |

Tutorials

| File | Topic | |------|-------| | [tutorials/tool-browser.md](tutorials/tool-browser.md) | Build a searchable tool list with fuzzy filtering |

Examples

| File | Purpose | |------|---------| | [examples/gallery.md](examples/gallery.md) | Annotated real-world extensions |


5-Minute Quick Test

> Prerequisite: This skill is installed (cloned to skills/pi-extensions). > Below creates a sample Extension, placed in ~/.pi/agent/extensions/ — separate from the skill directory.

# 1. Create the sample extension file
mkdir -p ~/.pi/agent/extensions
cat > ~/.pi/agent/extensions/hello.ts  {
      ctx.ui.notify("Hello from Pi Extensions!", "success");
    },
  });
}
EOF

# 2. Test with -e flag (temporary load)
pi -e ~/.pi/agent/extensions/hello.ts
# Then type: /hello
#
# Tip: Extensions in ~/.pi/agent/extensions/ are auto-discovered.
#      The -e flag is only needed for temporary testing.

Quick Import Cheat Sheet

// Core types
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";

// Schema
import { Type } from "@sinclair/typebox";
import { StringEnum } from "@earendil-works/pi-ai";

// TUI
import { Container, Text, SelectList } from "@earendil-works/pi-tui";

// Utilities
import { withFileMutationQueue } from "@earendil-works/pi-coding-agent";
import { isToolCallEventType, isBashToolResult } from "@earendil-works/pi-coding-agent";

Hot Topics

Dynamic Model Injection

Use pi.registerProvider() for proxies, custom endpoints, or team-wide model configs. See [PATTERNS.md](PATTERNS.md) §P19–P20 and [guides/07-advanced-patterns.md](guides/07-advanced-patterns.md).

Tool Override

Register a tool with the same name as a built-in (read, bash, edit, write) to wrap or replace it. See [PATTERNS.md](PATTERNS.md) §P4.

Parallel Execution Safety

Custom tools that mutate files must use withFileMutationQueue() to avoid race conditions with built-in edit/write. See [PATTERNS.md](PATTERNS.md) §P5 and [ANTI-PATTERNS.md](ANTI-PATTERNS.md) §A4.

RPC Safety

ctx.hasUI is true in RPC, but custom() returns undefined. Use select/confirm/input/editor for blocking dialogs that work in both modes. See [ANTI-PATTERNS.md](ANTI-PATTERNS.md) §A2 and [guides/05-rpc-mode.md](guides/05-rpc-mode.md).


Master references: [ARCHITECTURE](ARCHITECTURE.md) · [PATTERNS](PATTERNS.md) · [ANTI-PATTERNS](ANTI-PATTERNS.md)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.