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.