chore: Add claude-hud plugin configuration and marketplace setup#1510
chore: Add claude-hud plugin configuration and marketplace setup#1510bencmd88 wants to merge 1 commit into
Conversation
Adds the claude-hud plugin (v0.0.11) at project scope via claudepluginhub. Provides real-time statusline HUD showing context health, tool activity, agent tracking, and todo progress. https://claude.ai/code/session_01Qe1PoFhrpk2mUKwNFMG998
📝 WalkthroughWalkthroughThree new configuration files are added to register and enable the Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR adds CPD plugin configuration files to integrate the Confidence Score: 2/5Not safe to merge — hardcoded machine-local paths make the configuration broken for all other contributors, and the unpinned external plugin source is a security concern. Two P1 portability bugs (hardcoded absolute paths in All three changed files need attention:
|
| Filename | Overview |
|---|---|
| .claude/settings.json | Registers the claude-hud marketplace and enables the plugin, but uses a hardcoded absolute path that will break for every contributor other than the author. |
| .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json | Plugin metadata with a hardcoded cwd pointing to the author's local checkout path, making this non-portable across environments. |
| .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json | Marketplace definition fetches the plugin from an unpinned GitHub source with strict: false, creating a supply-chain risk from unverified external code. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[".claude/settings.json\nextraKnownMarketplaces"] -->|"directory path\n(hardcoded absolute)"| B[".claude/.cpd-wrappers/\njarrodwatts-claude-hud-project"]
B --> C["cpd-meta.json\n(cwd: /home/user/...)"]
B --> D[".claude-plugin/marketplace.json"]
D -->|"source: github\nno pin, strict: false"| E["jarrodwatts/claude-hud\n(external repo, HEAD)"]
A -->|"enabledPlugins"| F["claude-hud@cpd-jarrodwatts-claude-hud-project"]
F --> E
Reviews (1): Last reviewed commit: "feat: install claude-hud plugin (jarrodw..." | Re-trigger Greptile
| "cpd-jarrodwatts-claude-hud-project": { | ||
| "source": { | ||
| "source": "directory", | ||
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
There was a problem hiding this comment.
Hardcoded absolute path breaks all other contributors
The path value /home/user/everything-claude-code/.claude/.cpd-wrappers/... is the author's local machine path. Any other developer who clones this repo will have the marketplace registered to a non-existent directory, causing the plugin lookup to silently fail (or error). Project-scope configuration should use a path relative to the repo root, not an absolute path tied to a specific user's home directory.
| "pluginName": "claude-hud", | ||
| "marketplaceName": "cpd-jarrodwatts-claude-hud-project", | ||
| "scope": "project", | ||
| "cwd": "/home/user/everything-claude-code" |
There was a problem hiding this comment.
Machine-specific
cwd breaks portability
"cwd": "/home/user/everything-claude-code" is an absolute path to the author's local checkout. This metadata file will be wrong for every other contributor or CI environment that checks out the repo under a different path (e.g. /Users/alice/projects/everything-claude-code or a CI runner's workspace). If the CPD tooling uses cwd to resolve plugin artifacts, it will fail for everyone else.
| "source": { | ||
| "source": "github", | ||
| "repo": "jarrodwatts/claude-hud" | ||
| }, | ||
| "strict": false |
There was a problem hiding this comment.
Unpinned GitHub source with
strict: false is a supply-chain risk
The plugin is fetched from jarrodwatts/claude-hud with no tag, branch, or commit SHA specified, so it always pulls HEAD of the default branch. Combined with "strict": false (which disables verification), any push to that external repository — including a compromised or malicious update — would be pulled and executed without validation. Pin to a specific release tag or commit SHA and consider setting "strict": true.
There was a problem hiding this comment.
Pull request overview
Adds project-scoped Claude Code plugin configuration to register a local marketplace wrapper and enable the claude-hud plugin sourced from jarrodwatts/claude-hud.
Changes:
- Adds
.claude/settings.jsonto register an extra marketplace and enableclaude-hud. - Adds wrapper metadata at
.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json. - Adds a wrapper marketplace definition at
.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| .claude/settings.json | Registers the wrapper marketplace and enables the plugin for the project. |
| .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json | Declares wrapper metadata linking the plugin/repo to the marketplace name. |
| .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json | Defines the marketplace entry pointing to the GitHub plugin source. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "cpd-jarrodwatts-claude-hud-project": { | ||
| "source": { | ||
| "source": "directory", | ||
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
There was a problem hiding this comment.
extraKnownMarketplaces...source.path is hard-coded to /home/user/..., which is machine-specific and will break for other contributors/CI. Use a repo-relative path (e.g., .claude/.cpd-wrappers/...) or a path derived from the project root instead of an absolute home directory path.
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" | |
| "path": ".claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
| "pluginName": "claude-hud", | ||
| "marketplaceName": "cpd-jarrodwatts-claude-hud-project", | ||
| "scope": "project", | ||
| "cwd": "/home/user/everything-claude-code" |
There was a problem hiding this comment.
cwd is set to an absolute local path (/home/user/everything-claude-code). This makes the wrapper non-portable and likely incorrect for anyone cloning the repo elsewhere. Prefer a relative value (or omit cwd if it can be inferred) so the config works across machines and CI.
| "cwd": "/home/user/everything-claude-code" | |
| "cwd": "." |
| { | ||
| "name": "cpd-jarrodwatts-claude-hud-project", | ||
| "owner": { |
There was a problem hiding this comment.
PR description says this file was created at .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/marketplace.json, but the committed path is .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json. Please either update the description or move the file to match the documented location so it’s clear where the marketplace definition lives.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json:
- Line 6: The file
.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json currently
hardcodes "cwd": "/home/user/everything-claude-code"; change this to a portable
strategy by replacing the absolute path value for the "cwd" key with a
repo-relative or runtime-resolved value (for example use a relative path like
"." or a variable placeholder such as an environment variable name e.g.
"${REPO_ROOT}" or "${CPD_CWD}") and update any loader that consumes
cpd-meta.json to resolve that placeholder at runtime (using process.cwd() or an
env var) so CI and other contributors won’t break.
In @.claude/settings.json:
- Line 6: The "path" setting currently contains an absolute,
environment-specific path; change the "path" JSON value to a relative
marketplace path so the config is portable (update the "path" key to a relative
value that starts with "./" and points to the
.cpd-wrappers/jarrodwatts-claude-hud-project directory instead of the absolute
/home/... form).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 542781d3-5cba-4ba4-b993-ce75d625b3b1
📒 Files selected for processing (3)
.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json.claude/settings.json
| "pluginName": "claude-hud", | ||
| "marketplaceName": "cpd-jarrodwatts-claude-hud-project", | ||
| "scope": "project", | ||
| "cwd": "/home/user/everything-claude-code" |
There was a problem hiding this comment.
Replace hardcoded absolute cwd with a portable path strategy.
"/home/user/everything-claude-code" is machine-specific and can break for other contributors/CI. Use a repo-relative or runtime-resolved value instead.
Suggested change
- "cwd": "/home/user/everything-claude-code"
+ "cwd": "."📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "cwd": "/home/user/everything-claude-code" | |
| "cwd": "." |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json at line
6, The file .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json
currently hardcodes "cwd": "/home/user/everything-claude-code"; change this to a
portable strategy by replacing the absolute path value for the "cwd" key with a
repo-relative or runtime-resolved value (for example use a relative path like
"." or a variable placeholder such as an environment variable name e.g.
"${REPO_ROOT}" or "${CPD_CWD}") and update any loader that consumes
cpd-meta.json to resolve that placeholder at runtime (using process.cwd() or an
env var) so CI and other contributors won’t break.
| "cpd-jarrodwatts-claude-hud-project": { | ||
| "source": { | ||
| "source": "directory", | ||
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
There was a problem hiding this comment.
Use a relative marketplace path to keep project config portable.
The absolute path hardcodes one local environment and is brittle across contributors, containers, and CI agents.
Suggested change
- "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project"
+ "path": ".claude/.cpd-wrappers/jarrodwatts-claude-hud-project"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" | |
| "path": ".claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/settings.json at line 6, The "path" setting currently contains an
absolute, environment-specific path; change the "path" JSON value to a relative
marketplace path so the config is portable (update the "path" key to a relative
value that starts with "./" and points to the
.cpd-wrappers/jarrodwatts-claude-hud-project directory instead of the absolute
/home/... form).
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 58249380cb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "cpd-jarrodwatts-claude-hud-project": { | ||
| "source": { | ||
| "source": "directory", | ||
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
There was a problem hiding this comment.
Use portable path for project marketplace
The marketplace source is hardcoded to /home/user/everything-claude-code/..., which only works on one specific filesystem layout. In any clone located elsewhere (including this repo path /workspace/everything-claude-code), Claude cannot resolve that directory, so claude-hud@cpd-jarrodwatts-claude-hud-project will fail to load despite being enabled. This should reference the current project dynamically (or use a relative mechanism) so the config works across environments.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
4 issues found across 3 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json">
<violation number="1" location=".claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json:6">
P2: Hard-coded absolute `cwd` path is non-portable and can break execution outside the author’s machine.</violation>
</file>
<file name=".claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json">
<violation number="1" location=".claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json:11">
P2: External GitHub plugin source is unpinned, allowing mutable upstream code changes and non-reproducible installs.</violation>
</file>
<file name=".claude/settings.json">
<violation number="1" location=".claude/settings.json:6">
P2: Hardcoded absolute local path in committed plugin config makes marketplace resolution non-portable across machines/CI.</violation>
<violation number="2" location=".claude/settings.json:11">
P1: Project enables an external GitHub plugin without commit pinning, creating avoidable supply-chain drift/risk.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| } | ||
| }, | ||
| "enabledPlugins": { | ||
| "claude-hud@cpd-jarrodwatts-claude-hud-project": true |
There was a problem hiding this comment.
P1: Project enables an external GitHub plugin without commit pinning, creating avoidable supply-chain drift/risk.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/settings.json, line 11:
<comment>Project enables an external GitHub plugin without commit pinning, creating avoidable supply-chain drift/risk.</comment>
<file context>
@@ -0,0 +1,13 @@
+ }
+ },
+ "enabledPlugins": {
+ "claude-hud@cpd-jarrodwatts-claude-hud-project": true
+ }
+}
</file context>
| "pluginName": "claude-hud", | ||
| "marketplaceName": "cpd-jarrodwatts-claude-hud-project", | ||
| "scope": "project", | ||
| "cwd": "/home/user/everything-claude-code" |
There was a problem hiding this comment.
P2: Hard-coded absolute cwd path is non-portable and can break execution outside the author’s machine.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.json, line 6:
<comment>Hard-coded absolute `cwd` path is non-portable and can break execution outside the author’s machine.</comment>
<file context>
@@ -0,0 +1,7 @@
+ "pluginName": "claude-hud",
+ "marketplaceName": "cpd-jarrodwatts-claude-hud-project",
+ "scope": "project",
+ "cwd": "/home/user/everything-claude-code"
+}
</file context>
| "name": "claude-hud", | ||
| "source": { | ||
| "source": "github", | ||
| "repo": "jarrodwatts/claude-hud" |
There was a problem hiding this comment.
P2: External GitHub plugin source is unpinned, allowing mutable upstream code changes and non-reproducible installs.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/.cpd-wrappers/jarrodwatts-claude-hud-project/.claude-plugin/marketplace.json, line 11:
<comment>External GitHub plugin source is unpinned, allowing mutable upstream code changes and non-reproducible installs.</comment>
<file context>
@@ -0,0 +1,16 @@
+ "name": "claude-hud",
+ "source": {
+ "source": "github",
+ "repo": "jarrodwatts/claude-hud"
+ },
+ "strict": false
</file context>
| "cpd-jarrodwatts-claude-hud-project": { | ||
| "source": { | ||
| "source": "directory", | ||
| "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project" |
There was a problem hiding this comment.
P2: Hardcoded absolute local path in committed plugin config makes marketplace resolution non-portable across machines/CI.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/settings.json, line 6:
<comment>Hardcoded absolute local path in committed plugin config makes marketplace resolution non-portable across machines/CI.</comment>
<file context>
@@ -0,0 +1,13 @@
+ "cpd-jarrodwatts-claude-hud-project": {
+ "source": {
+ "source": "directory",
+ "path": "/home/user/everything-claude-code/.claude/.cpd-wrappers/jarrodwatts-claude-hud-project"
+ }
+ }
</file context>
|
Thanks for the contribution. I'm closing this because it checks in a project-local Claude plugin install wrapper and with an absolute path, rather than a reusable repository change. The claude-hud integration direction is useful, but it should come back as docs or portable marketplace metadata without machine-local settings. |
|
Clarifying the close reason because my previous comment lost the inline path text: this PR checks in |
What Changed
Added Claude plugin configuration files to enable the
claude-hudplugin from the jarrodwatts/claude-hud repository:.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/marketplace.jsonwith plugin marketplace definition.claude/.cpd-wrappers/jarrodwatts-claude-hud-project/cpd-meta.jsonwith plugin metadata.claude/settings.jsonto register the marketplace and enable the pluginWhy This Change
This change integrates the claude-hud plugin into the project's Claude development environment, allowing the plugin to be available for use within Claude. The configuration establishes the plugin source from the GitHub repository and enables it at the project scope.
Testing Done
node tests/run-all.js)Type of Change
chore:Maintenance/toolingSecurity & Quality Checklist
Documentation
https://claude.ai/code/session_01Qe1PoFhrpk2mUKwNFMG998
Summary by cubic
Adds configuration to install and enable the
claude-hudplugin at project scope. Registers a local marketplace (cpd-jarrodwatts-claude-hud-project) pointing tojarrodwatts/claude-hud, making the HUD available in the Claude dev environment..claude/settings.json.Written for commit 5824938. Summary will update on new commits.
Summary by CodeRabbit