
Dynamic Resources
Customize pi-mono coding-agent interactive UI colors and message surfaces using the caveman-code dynamic-resources theme schema.
Install
npx skills add https://github.com/juliusbrussee/caveman-code --skill dynamic-resourcesWhat is this skill?
- Theme JSON validated against the pi-mono coding-agent interactive theme schema URL
- Named vars for tool pending, success, and error backgrounds plus user and custom message panels
- Markdown rendering tokens for headings, links, code blocks, quotes, and diff added/removed lines
- Syntax highlighting palette for comments and inline code in terminal agent output
- Reusable accent and border tokens for selection and bordered UI chrome
Adoption & trust: 19 installs on skills.sh; 390 GitHub stars.
Recommended Skills
Web Design Guidelinesvercel-labs/agent-skills
Lark Whiteboardlarksuite/cli
Ui Ux Pro Maxnextlevelbuilder/ui-ux-pro-max-skill
Sleek Design Mobile Appssleekdotdesign/agent-skills
Impeccablepbakaus/impeccable
Design Taste Frontendleonxlnx/taste-skill
Journey fit
Primary fit
Visual theming for an in-repo coding agent lands in Build when you are shaping the agent environment you code with daily, not in launch or growth work. Agent-tooling is the right shelf because the artifact is a theme-schema JSON for the coding-agent interactive mode, not app UI or backend APIs.
SKILL.md
READMESKILL.md - Dynamic Resources
{ "$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" } } --- description: Example prompt template loaded from resources_discover --- 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 "@juliusbrussee/caveman-code"; 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")], }; }); } --- name: dynamic-resources description: Example skill loaded from resources_discover --- # Dynamic Resources Skill This skill is provided by the dynamic-resources extension.