Agent skill

Extending Pi

by tmustier in tmustier/pi-for-excel

Plan and build Pi for Excel extensions safely: choose skill vs extension plugin vs connection, create flat SKILL.md skills, and handle API keys without asking users to paste secrets in chat.

MITAuto-check passedDocuments & Office

Install Extending Pi

skills CLI
$ npx skills add tmustier/pi-for-excel --skill extending-pi -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tmustier/pi-for-excel extending-pi --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tmustier/pi-for-excel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/extending-pi .claude/skills/extending-pi && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
extending-pi
GitHub stars
434
Token cost
~1.6k tokens
SKILL.md length
554 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Plan and build Pi for Excel extensions safely: choose skill vs extension plugin vs connection, create flat SKILL.md skills, and handle API keys without asking users to paste secrets in chat.

  • Works in 5 steps: Choose the right extension surface → Skill authoring (adapted from… → Extension plugin workflow → …
  • Tasks that involve Excel spreadsheets
  • SKILL.md covers Default behavior…, 1) Choose the right extension…, 2) Skill authoring (adapted… and 3) Extension plugin workflow, plus 3 more sections
  • Reaches api.acme.com

What it does

Extending Pi is an agent skill from tmustier/pi-for-excel. Plan and build Pi for Excel extensions safely: choose skill vs extension plugin vs connection, create flat SKILL.md skills, and handle API keys without asking users to paste secrets in chat.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Pi for Excel runtime. Plugin = runtime extension module. Assumes access to extensionsmanager and skills tools.

It sits in Documents & Office, covering Excel spreadsheets and Skill authoring. It works with Microsoft Excel. The repository describes itself as: Experimental Excel sidebar agent add-in. Multi-model. Powered by Pi. The licence is MIT.

When your agent uses it

  • Tasks that involve Excel spreadsheets
  • Tasks that involve Skill authoring

Example prompts

  • “/extending-pi”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Pi for Excel runtime. Plugin = runtime extension module. Assumes access to extensions_manager and skills tools.

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Choose the right extension surface
  2. Skill authoring (adapted from skill-creator, flat profile)
  3. Extension plugin workflow
  4. API keys/secrets: secure-by-default pattern
  5. Standard reusable “secure connection bundle”

What it can do on your machine

Read from SKILL.md and the folder at commit a3cea8f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.acme.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Pi for Excel runtime. Plugin = runtime extension module. Assumes access to extensions_manager and skills tools.

    From compatibility in the SKILL.md frontmatter.

Context cost

Extending Pi loads about 1.6k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 554 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tmustier/pi-for-excel at commit a3cea8f, republished under its MIT licence (© tmustier). 554 words, ~1,572 tokens.

Download SKILL.mdSave it as .claude/skills/extending-pi/SKILL.md (or your agent's skills folder).
name
extending-pi
description
Plan and build Pi for Excel extensions safely: choose skill vs extension plugin vs connection, create flat SKILL.md skills, and handle API keys without asking users to paste secrets in chat.
compatibility
Pi for Excel runtime. Plugin = runtime extension module. Assumes access to extensions_manager and skills tools.
metadata
docs: docs/extensions.md related: docs/agent-skills-interop.md

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

GoalBuildWhy
Teach Pi a workflow, process, or decision rubricSkillLowest maintenance; mostly instruction logic
Add runtime behavior (slash command, tool, widget, event handling, storage/http)Extension pluginRequires executable code
Add secure credential/config setup for extension toolsExtension connectionFirst-class setup/status/preflight/error guidance
Save one-off user/workbook preferencesinstructions toolNot 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.
---
  1. Write body with:
    • purpose and boundaries
    • mapping to relevant tools/integrations
    • step-by-step workflow
    • guardrails/pitfalls
  2. Install/update via skills tool (install/uninstall) when available; otherwise use /extensions → Skills.
  3. Validate with skills tool:
    • action="list"
    • action="read" for the new skill.

Show full SKILL.md (204 more words)Show less

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>" }).

Connection registration template:

ts
api.connections.register({
  id: "acme",
  title: "Acme API",
  capability: "query Acme records",
  authKind: "api_key",
  secretFields: [{ id: "apiKey", label: "API key", required: true, maskInUi: true }],
  httpAuth: {
    placement: "header",
    headerName: "Authorization",
    valueTemplate: "Bearer {apiKey}",
    allowedHosts: ["api.acme.com"],
  },
  setupHint: "Open /tools → Connections → Extension connections",
});

Tool call template:

ts
const response = await api.http.fetch("https://api.acme.com/v1/search?q=...", {
  method: "GET",
  connection: "acme",
});
Tier 2 (escape hatch): connections.getSecrets

Only when Tier 1 cannot support the integration (SDK bootstrap, custom request signing, etc.):

ts
const secrets = await api.connections.getSecrets("acme");

Guardrails:

  • Requires connections.secrets.read capability.
  • Never echo/log secrets.
  • Still keep user secret entry in /tools → Connections.
Forbidden patterns
  • /set-key ... slash commands
  • "Paste your API key in chat"
  • Logging/echoing secrets in tool output/errors

5) Standard reusable “secure connection bundle”

When generating API-backed extension code, use docs/extensions-secure-connection-bundle.md as the default scaffold.

Default scaffold requirements:

  • connection definition + httpAuth
  • strict allowedHosts
  • tool requiresConnection
  • host-injected auth path first
  • no-chat-secret policy in comments/docs

References

  • docs/extensions.md
  • docs/extensions-secure-connection-bundle.md
  • docs/agent-skills-interop.md
  • skill: skill-creator

© tmustier, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/extending-pi of tmustier/pi-for-excel.

Open the folder on GitHubat commit a3cea8f

Compare with similar skills

Extending Pi next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Extending Pi compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Extending Pi this skilltmustier/pi-for-excel434—~1.6kAutomated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Data Table Managern8n-io/n8n207k—~2.3kAutomated safety check: PassCustom licence
Docx4jplutext/docx4j2.4k—~2.5kAutomated safety check: PassNone
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Cyber Pptcrazyykhllc-bit/CyberPPT1.8k—~10kAutomated safety check: PassMIT

Similar skills

  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Official

    Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.

    207k GitHub stars~2.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Docx4j

    plutext/docx4j

    A skill your agent uses when writing Java code that creates, reads or edits Word (.docx), PowerPoint (.pptx) or Excel (.xlsx) files with docx4j — including generating documents, editing existing…

    2.4k GitHub stars~2.5k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Cyber Ppt

    crazyykhllc-bit/CyberPPT

    当用户需要把 DOCX、PDF、TXT、XLSX、研究报告、业务材料或原始数据转成高密度、可编辑、咨询风格 PPTX 时使用;也适用于需要 SCR 论证、视觉风格探索、详细图表和渲染质检的 PPT。

    1.8k GitHub stars~10k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Markit

    shift-labs-ai/markit

    Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.

    1.3k GitHub stars~299 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed

More from tmustier/pi-for-excel

  • Excel Background Verification

    tmustier/pi-for-excel

    Run model-driven end-to-end tests in real local Excel while keeping it in the background.

    434 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Wps Windows Smoke

    tmustier/pi-for-excel

    Provision or reuse a local Windows 11 ARM VM as a reusable test harness for validating pi-for-excel inside real China-domestic WPS Spreadsheets.

    434 GitHub stars~4.7k tokensUpdated today
    Auto-check passed
  • Python Bridge

    tmustier/pi-for-excel

    Native Python execution via the local Python bridge. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~820 tokensUpdated today
    Auto-check passed
  • Tmux Bridge

    tmustier/pi-for-excel

    Local terminal access via the tmux bridge. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~819 tokensUpdated today
    Auto-check passed
  • Web Search

    tmustier/pi-for-excel

    Search the public web for up-to-date facts. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~410 tokensUpdated today
    Auto-check passed
  • MCP Gateway

    tmustier/pi-for-excel

    Discover and call tools from configured MCP servers. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~241 tokensUpdated today
    Auto-check passed

Works with

Questions about Extending Pi

What does Extending Pi do?

Plan and build Pi for Excel extensions safely: choose skill vs extension plugin vs connection, create flat SKILL.md skills, and handle API keys without asking users to paste secrets in chat. Extending Pi is an agent skill from tmustier/pi-for-excel.md skills, and handle API keys without asking users to paste secrets in chat.

When should I use Extending Pi?

Extending Pi fits situations like: tasks that involve Excel spreadsheets; tasks that involve Skill authoring.

How do I install Extending Pi in Claude Code?

Run `npx skills add tmustier/pi-for-excel --skill extending-pi -a claude-code`. Or copy the skill folder (skills/extending-pi in tmustier/pi-for-excel) into .claude/skills/extending-pi in your project. Claude Code loads it when a task matches its description.

How do I install Extending Pi in Codex?

Run `npx skills add tmustier/pi-for-excel --skill extending-pi -a codex`. Or copy the skill folder (skills/extending-pi in tmustier/pi-for-excel) into .agents/skills/extending-pi in your project. Codex loads it when a task matches its description.

Can I use Extending Pi in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tmustier/pi-for-excel --skill extending-pi -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/extending-pi, .gemini/skills/extending-pi, .github/skills/extending-pi and .opencode/skills/extending-pi in your project.

What does Extending Pi need to run?

SKILL.md names no scripts, command-line tools or credentials: Extending Pi is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Pi for Excel runtime. Plugin = runtime extension module. Assumes access to extensions_manager and skills tools..

Does Extending Pi access the network?

SKILL.md names 1 domain. In commands or code: api.acme.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Extending Pi safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Extending Pi use?

Extending Pi is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Extending Pi use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Extending Pi?

Skills that share tags, products or a category with Extending Pi: Markitdown (ImCa0/just-laws, 781 stars), Data Table Manager (n8n-io/n8n, 207k stars), Docx4j (plutext/docx4j, 2.4k stars) and Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Extending Pi?

tmustier (a GitHub user) maintains it in tmustier/pi-for-excel, which has 434 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.

Source: tmustier/pi-for-excel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.