Skip to content
Agentmart
Submit a tool

extending-pi

Skill by tmustier

IndexedMIT★ 438
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tmustier-extending-pi

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

The publisher has not written a description yet.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
extending-pi
Description
None
License
MIT
Instructions
187 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Agent Skills spec issues

  • invalid YAML frontmatter: Nested mappings are not allowed in compact mappings at line 2, column 14:
  • name: missing
  • description: missing

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Extending Pi (Pi for Excel)

Use this skill when the user asks to extend Pi, add capabilities, or integrate an external API/tool.

## Default behavior (non-negotiable)

- Prefer solutions the assistant can set up and run itself.
- Never ask users to paste API keys/tokens/passwords in chat.
- Never create `/set-key ...` style commands that take secrets from the prompt input.
- Prefer first-class connection setup UX (`/tools` → Connections) for secret entry.
- For API-backed plugin implementation/testing, proactively recommend local bridge setup:
  - **Preferred:** Python bridge (best for API prototyping, payload transforms, quick debugging scripts).
  - **Fallback:** tmux bridge (assistant can still run `curl`, Node scripts, and CLI checks).
  - If neither is available, still scaffold the extension, but explicitly note reduced verification and offer setup help.

When recommending bridge setup, read the relevant setup skill before giving commands:
- `python-bridge`
- `tmux-bridge`

## 1) Choose the right extension surface

| Goal | Build | Why |
|---|---|---|
| Teach Pi a workflow, process, or decision rubric | **Skill** | Lowest maintenance; mostly instruction logic |
| Add runtime behavior (slash command, tool, widget, event handling, storage/http) | **Extension plugin** | Requires executable code |
| Add secure credential/config setup for extension tools | **Extension connection** | First-class setup/status/preflight/error guidance |
| Save one-off user/workbook preferences | **instructions** tool | Not an extension |

Heuristic: if instructions + existing tools are enough, build a **skill** first.

---

## 2) Skill authoring (adapted from `skill-creator`, flat profile)

For this repo, default to **flat skills**: one `skills/<name>/SKILL.md` file.
Only add extra folders if clearly needed.

### Core principles

- **Conciseness:** only include domain-specific guidance the model cannot infer reliably.
- **Activation quality:** trigger matching comes from frontmatter `description`; make it precise.
- **Context over directives:** explain why an approach works, not just rigid commands.
- **Progressive disclosure (lightweight):** keep SKILL.md focused; avoid dumping long reference text.

### Required format and naming

- Required frontmatter: `name`, `description`
- Directory name must equal `name`
- Name rules:
  - 1-64 chars
  - lowercase letters, digits, hyphens
  - no leading/trailing/consecutive hyphens

### Workflow

1. Capture 2-4 concrete user prompts the skill should handle.
2. Create `skills/<name>/SKILL.md`.
3. Write frontmatter:

```yaml
---
name: my-skill
description: What it does + when to use it.
compatibility: Optional constraints.
---
```

4. Write body with:
   - purpose and boundaries
   - mapping to relevant tools/integrations
   - step-by-step workflow
   - guardrails/pitfalls
5. Install/update via `skills` tool (`install`/`uninstall`) when available; otherwise use `/extensions` → Skills.
6. Validate with `skills` tool:
   - `action="list"`
   - `action="read"` for the new skill.

---

## 3) Extension plugin workflow

Use when the user needs new executable behavior.

1. Build a single-file ES module with `activate(api)`.
2. Register only required surfaces (`registerCommand`, `registerTool`, widget, etc.).
3. Keep capabilities least-privilege.
4. Install from chat using `extensions_manager` (`install_code`, `set_enabled`, `reload`, `uninstall`).
5. Validate by invoking the new command/tool end-to-end.

Minimal skeleton:

```ts
export function activate(api) {
  api.registerCommand("hello_ext", {
    description: "Example command",
    handler: () => api.toast("Hello from extension"),
  });

  return () => {
    api.widget.dismiss();
    api.overlay.dismiss();
  };
}
```

---

## 4) API keys/secrets: secure-by-default pattern

### Tier 1 (default): host-injected auth via `http.fetch(..., { connection })`

For API-backed extension tools:

1. Register a connection in `activate(api)`.
2. Add `httpAuth` on the connection definition with a strict `allowedHosts` list.
3. Mark tools with `requiresConnection`.
4. Direct user to `/tools` → Connections for secret entry.
5. Call `api.http.fetch(url, { connection: "<id>" })`.

From tmustier/pi-for-excel, MIT.

Signals

Stars
438
Forks
61
Open issues
33
Last commit (this folder)
Feb 22, 2026 (8 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from tmustier

Cite this page

extending-pi skill. Agent Mart. https://agentmart.dev/skills/tmustier-extending-pi (last updated 2026-10-24)