plugin-settings

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

2|Updated Mar 21, 2026
One-click install
npx skills add https://github.com/ghoshsam/claude-code-skills --skill plugin-settings-ghoshsam
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: plugin-settings
Source: https://github.com/ghoshsam/claude-code-skills/tree/main/skills/plugin-dev/plugin-settings
Command: npx skills add https://github.com/ghoshsam/claude-code-skills --skill plugin-settings-ghoshsam

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Claude Code plugins often need user-configurable, per-project settings, but there is no built-in mechanism for storing plugin state outside of hooks.json. This Skill documents the .claude/plugin-name.local.md pattern so plugin authors can read and write structured configuration without editing global config files. ## Core Features & Use Cases - Settings File Pattern: Store plugin configuration in .claude/plugin-name.local.md files combining YAML frontmatter for structured fields and a markdown body for prompts or instructions. - Parsing Recipes: Provides bash snippets using sed, grep, and awk to extract frontmatter fields and markdown body content from hooks, commands, and agents. - Real-World Examples: Includes patterns from multi-agent-swarm (agent state coordination) and ralph-loop (iteration tracking with completion promises), plus best practices for gitignore, defaults, validation, and security. - Use Case: You are building a Claude Code plugin whose hook should only run when enabled per project. Create a .claude/my-plugin.local.md file with an enabled flag, and use the quick-exit parsing pattern in your hook script to check it. ## Quick Start Ask the AI to create a .claude/my-plugin.local.md settings file with YAML frontmatter and show a bash hook that reads the enabled flag from it.

Frequently Asked Questions about plugin-settings

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

FAQPage Schema
How do I store per-project settings for a Claude Code plugin?▼

Create a .claude/plugin-name.local.md file in the project root with YAML frontmatter for structured fields and a markdown body for extra context. Hooks, commands, and agents can then read this file to adapt their behavior per project.

How to parse YAML frontmatter from a markdown file in bash?▼

Use sed -n '/^---$/,/^---$/{ /^---$/d; p; }' to extract the frontmatter block, then grep and sed to pull individual fields. To get the markdown body after the second delimiter, use awk '/^---$/{i++; next} i>=2'.

Can I enable or disable a Claude Code hook without editing hooks.json?▼

Yes. Store an enabled flag in a .claude/plugin-name.local.md file and have the hook script check it first, exiting immediately when disabled. This avoids editing hooks.json, though changes still require a Claude Code restart to take effect.

Should .claude local settings files be committed to git?▼

No. Add .claude/*.local.md to your .gitignore because these files contain user-specific, per-project configuration. Document this requirement in the plugin README so users do not accidentally commit local state.

Why are my plugin settings changes not taking effect?▼

Claude Code loads hook configurations at session start, so edits to .claude/*.local.md files require a restart. Save the file, exit Claude Code, and relaunch for the new settings to be recognized.