Skip to content

feat: add project-theme plugin for per-project theme settings#68239

Open
12britz wants to merge 1 commit into
anthropics:mainfrom
12britz:feature/project-theme-plugin
Open

feat: add project-theme plugin for per-project theme settings#68239
12britz wants to merge 1 commit into
anthropics:mainfrom
12britz:feature/project-theme-plugin

Conversation

@12britz

@12britz 12britz commented Jun 13, 2026

Copy link
Copy Markdown

Summary

Adds a plugin that reads theme settings from .claude/settings.json and automatically applies them on session start, solving the per-project persistent color/theme request.

Closes #43216

What this does

  • Adds a SessionStart hook that reads theme or color from project settings
  • Supports both .claude/settings.json (project) and .claude/settings.local.json (local override)
  • Uses jq for proper JSON parsing when available, falls back to grep
  • Outputs a theme command that Claude Code processes

Usage

Add to your project's .claude/settings.json:

{
  "theme": "pink"
}

Or use .claude/settings.local.json for local overrides:

{
  "color": "blue"
}

Supported Values

Any theme name supported by Claude Code's /theme command:

  • dark, light, light-ansi, dark-ansi
  • pink, blue, green, orange, purple, red, yellow
  • Custom theme names from ~/.claude/themes/

How it works

  1. On SessionStart, the hook reads settings files (local takes precedence)
  2. Extracts theme or color value using jq or grep fallback
  3. Outputs a JSON command that Claude Code processes to apply the theme

Files

  • plugins/project-theme/plugin.json - Plugin manifest
  • plugins/project-theme/hooks/apply-theme.sh - SessionStart hook
  • plugins/project-theme/README.md - Documentation
  • plugins/project-theme/examples/.claude/settings.json - Example config

Testing

# Test the hook directly
cd examples && bash ../hooks/apply-theme.sh
# Output: Applying project theme: pink
# Output: {"type": "theme", "theme": "pink"}

Adds a plugin that reads theme settings from .claude/settings.json
and automatically applies them on session start.

Closes anthropics#43216
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: per-project persistent color/theme settings

1 participant