plugin-settings

Implements per-project plugin configuration using .claude/plugin-name.local.md files with YAML frontmatter.

3|1|Updated Apr 29, 2026
One-click install
npx skills add https://github.com/firstsun-dev/skills --skill plugin-settings-firstsun-dev
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: plugin-settings
Source: https://github.com/firstsun-dev/skills/tree/main/plugins/software-delivery/skills/plugin-settings
Command: npx skills add https://github.com/firstsun-dev/skills --skill plugin-settings-firstsun-dev

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Claude Code plugins lack a standard way to store user-configurable, per-project settings and state, forcing developers to hardcode behavior or edit hooks.json and restart. This Skill documents the .claude/plugin-name.local.md pattern so plugins can read structured YAML frontmatter and markdown bodies from hooks, commands, and agents. ## Core Features & Use Cases - Settings File Pattern: Defines the .claude/plugin-name.local.md convention combining YAML frontmatter for structured config with a markdown body for prompts and context. - Bash Parsing Techniques: Provides sed, grep, and awk recipes to extract frontmatter fields, booleans, numbers, lists, and markdown bodies from hooks. - Validation & Utility Scripts: Ships validate-settings.sh and parse-frontmatter.sh to check file structure and extract fields, plus real-world examples from multi-agent-swarm and ralph-wiggum plugins. - Use Case: A plugin author wants users to toggle strict validation mode per project. They document a .claude/my-plugin.local.md template, parse the enabled and mode fields in their hook with the quick-exit pattern, and remind users to restart Claude Code after edits. ## Quick Start Ask the agent to add a configurable settings file to your plugin using the .claude/plugin-name.local.md pattern with YAML frontmatter and hook parsing logic.

Frequently Asked Questions about plugin-settings

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make a Claude Code plugin configurable per project?▼

Create a .claude/plugin-name.local.md file in the project root with YAML frontmatter for settings and a markdown body for context. Hooks and commands parse the frontmatter with sed and grep to read fields like enabled, mode, or max_file_size.

How do I parse YAML frontmatter in a bash hook script?▼

Extract the frontmatter block with sed -n '/^---$/,/^---$/{ /^---$/d; p; }' on the file, then pull individual fields using grep and sed. For the markdown body, use awk '/^---$/{i++; next} i>=2' to capture everything after the second marker.

Do plugin settings changes require restarting Claude Code?▼

Yes, changes to .claude/*.local.md settings files require restarting Claude Code because hooks cannot be hot-swapped within a session. Document this in your plugin README so users know to exit and relaunch after editing.

Should plugin settings files be committed to git?▼

No, settings files are user-local and should be excluded via .gitignore entries like .claude/*.local.md and .claude/*.local.json. They contain per-project or per-user configuration that should not be shared between environments.

What are the limitations of parsing YAML with sed and grep?▼

Sed and grep handle simple scalar fields but struggle with nested structures and proper list parsing. For complex YAML, use yq to parse fields and jq to iterate arrays, though this adds an external dependency that may not exist on all systems.