
Dynamic Resources
- 2 installs
- 83.6k repo stars
- Updated August 4, 2026
- badlogic/pi-mono
dynamic-resources is an example Claude/pi skill that demonstrates loading skills, prompts, and themes via the pi coding-agent resources_discover extension hook.
About
dynamic-resources is a demonstration skill for the pi coding-agent (badlogic/pi-mono) extension system. Its index.ts registers skill, prompt, and theme file paths through the resources_discover extension hook, showing how an extension can dynamically supply resources at runtime. The SKILL.md itself is a placeholder example rather than a task-oriented skill.
- Example skill loaded via the pi coding-agent resources_discover extension hook
- Bundles a demo SKILL.md, prompt template, theme JSON, and an index.ts extension entry point
- Demonstrates dynamically registering skill, prompt, and theme paths at runtime
Dynamic Resources by the numbers
- 2 all-time installs (skills.sh)
- Ranked #611 of 782 Skill Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
What dynamic-resources says it does
Example skill loaded from resources_discover
This skill is provided by the dynamic-resources extension.
npx skills add https://github.com/badlogic/pi-mono --skill dynamic-resourcesAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2 |
|---|---|
| repo stars | ★ 83.6k |
| Last updated | August 4, 2026 |
| Repository | badlogic/pi-mono ↗ |
What it does
Show how a pi coding-agent extension dynamically registers skills, prompts, and themes via the resources_discover hook.
Who is it for?
Referencing how pi extensions dynamically register skills, prompts, and themes
Skip if: Any real end-user task; it is an example placeholder skill
When should I use this skill?
You are learning how the pi coding-agent resources_discover extension provides dynamic resources.
What you get
An extension registers skill, prompt, and theme paths through the resources_discover hook.
Files
Dynamic Resources Skill
This skill is provided by the dynamic-resources extension.
{
"$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
"name": "dynamic-resources",
"vars": {
"cyan": "#00d7ff",
"blue": "#5f87ff",
"green": "#b5bd68",
"red": "#cc6666",
"yellow": "#ffff00",
"gray": "#808080",
"dimGray": "#666666",
"darkGray": "#505050",
"accent": "#8abeb7",
"selectedBg": "#3a3a4a",
"userMsgBg": "#343541",
"toolPendingBg": "#282832",
"toolSuccessBg": "#283228",
"toolErrorBg": "#3c2828",
"customMsgBg": "#2d2838"
},
"colors": {
"accent": "accent",
"border": "blue",
"borderAccent": "cyan",
"borderMuted": "darkGray",
"success": "green",
"error": "red",
"warning": "yellow",
"muted": "gray",
"dim": "dimGray",
"text": "",
"thinkingText": "gray",
"selectedBg": "selectedBg",
"userMessageBg": "userMsgBg",
"userMessageText": "",
"customMessageBg": "customMsgBg",
"customMessageText": "",
"customMessageLabel": "#9575cd",
"toolPendingBg": "toolPendingBg",
"toolSuccessBg": "toolSuccessBg",
"toolErrorBg": "toolErrorBg",
"toolTitle": "",
"toolOutput": "gray",
"mdHeading": "#f0c674",
"mdLink": "#81a2be",
"mdLinkUrl": "dimGray",
"mdCode": "accent",
"mdCodeBlock": "green",
"mdCodeBlockBorder": "gray",
"mdQuote": "gray",
"mdQuoteBorder": "gray",
"mdHr": "gray",
"mdListBullet": "accent",
"toolDiffAdded": "green",
"toolDiffRemoved": "red",
"toolDiffContext": "gray",
"syntaxComment": "#6A9955",
"syntaxKeyword": "#569CD6",
"syntaxFunction": "#DCDCAA",
"syntaxVariable": "#9CDCFE",
"syntaxString": "#CE9178",
"syntaxNumber": "#B5CEA8",
"syntaxType": "#4EC9B0",
"syntaxOperator": "#D4D4D4",
"syntaxPunctuation": "#D4D4D4",
"thinkingOff": "darkGray",
"thinkingMinimal": "#6e6e6e",
"thinkingLow": "#5f87af",
"thinkingMedium": "#81a2be",
"thinkingHigh": "#b294bb",
"thinkingXhigh": "#d183e8",
"bashMode": "green"
},
"export": {
"pageBg": "#18181e",
"cardBg": "#1e1e24",
"infoBg": "#3c3728"
}
}
Summarize the current repository structure and mention any build or test commands.
import { dirname, join } from "node:path";
import { fileURLToPath } from "node:url";
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
const baseDir = dirname(fileURLToPath(import.meta.url));
export default function (pi: ExtensionAPI) {
pi.on("resources_discover", () => {
return {
skillPaths: [join(baseDir, "SKILL.md")],
promptPaths: [join(baseDir, "dynamic.md")],
themePaths: [join(baseDir, "dynamic.json")],
};
});
}