fix(UI): correct skill install command and marketplace setup UX - #33514
Conversation
Greptile SummaryThis PR fixes three bugs in the Claude Code skills UI that prevented the plugin install flow from working end-to-end, along with two UX improvements to make the setup path clearer.
Confidence Score: 5/5Safe to merge — changes are limited to UI string generation and display logic with no effect on backend or auth paths. All three changes are targeted corrections to static strings and a one-liner template function. The settings.json structure fix, the key rename, and the install-command rewrite each address a concrete user-facing failure with no risk to other flows. The removed test cases covered the old (wrong) behavior and are not needed for the replacement branchless function. No files require special attention.
|
| Filename | Overview |
|---|---|
| ui/litellm-dashboard/src/components/claude_code_plugins/helpers.ts | formatInstallCommand simplified to a template literal producing /plugin install {name}@litellm — correctly removes the old source-type branching that emitted the wrong /marketplace add command. |
| ui/litellm-dashboard/src/components/claude_code_plugins/helpers.test.ts | formatInstallCommand tests replaced to match the new simplified signature; four old tests removed, two new ones added — coverage is appropriate for a branchless template literal, though the two new cases are near-identical and cover no additional edge cases. |
| ui/litellm-dashboard/src/components/claude_code_plugins/skill_detail.tsx | Setup tab now shows /plugin marketplace add command as primary option and settings.json as secondary; settings.json snippet fixes the key from "my-org" to "litellm" and correctly nests the source object; a stale-catalog hint block added to the "How to Use" tab. |
Reviews (1): Last reviewed commit: "fix(claude-code): correct skill install ..." | Re-trigger Greptile
|
The test-server-root-path failure appears to be a pre-existing CI infrastructure issue (missing libisl.so.23 in the Chainguard base image during Docker build, unrelated to this PR's changes). Could a maintainer re-run it? |
8114c36 to
ee5faf4
Compare
PR overviewAll previously flagged issues have been addressed. No open security concerns remain on this pull request. Security reviewNo open security issues remain on this pull request. Fixed/addressed: 1 · PR risk: 0/10 |
|
Note: this PR also adds two UX improvements not in #33515 - a hint to run |
|
This PR is frontend-only — it corrects display strings in the UI (the install command format and the settings.json snippet structure). formatInstallCommand at helpers.ts:183 returns a static text string for the user to copy; it does not install plugins, call any API, or interact with catalog authorization. The concern about catalog entry authorization is pre-existing and out of scope for this fix. |
6505512 to
a1b51a4
Compare
|
Hi @ryan-crabbe-berri / team 👋 Just a gentle ping on this one. It’s a small UI fix for the Claude Code skills page that resolves the onboarding flow issues mentioned in #33512. Everything is green and ready for review whenever you have a cycle. Thanks! |
- formatInstallCommand now produces /plugin install {name}@litellm instead of /plugin marketplace add {source}
- extraKnownMarketplaces snippet fixed: source must be a nested object not a flat string; the flat string caused Claude Code to reject the settings file
- marketplace key renamed from my-org to litellm to match the name the proxy returns in marketplace.json
- setup tab now shows /plugin marketplace add command as primary option with settings.json as secondary
- usage tab now shows a hint to run /plugin marketplace update litellm when a plugin is not found
a1b51a4 to
346c065
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
4913b2a
into
BerriAI:litellm_internal_staging
Relevant issues
Fixes #33512
Linear ticket
Pre-Submission checklist
automatically once the PR is opened; only comment review after pushing changes)
Delays in PR merge?
If you're seeing a delay in your PR being merged, ck(#pr-review)](https://join.slack.com/t/litellmossslack/shared_invite/zt-3o7nkuyfr-p_kbNJj8taRfXGgQI1~YyA).
Screenshots / Proof of Fix
See linked issue for reproduction steps. UI changes are in the "How to Use" and "One-time setup" tabs of any skill detail page.
Type
🐛 Bug Fix
Changes
Three bugs in the Claude Code skills page fixed.
The install command shown to users was
/plugin marketplace add {source}, which adds a marketplace source rather than installing aplugin. It now correctly shows `/plugin install {n
The settings.json snippet had `extraKnownMarketpla string, which Claude Code rejects with "Expectedobject, received string" and skips the file entirely. The source is now a properly nested object.
The marketplace key was hardcoded as
"my-org"instead of"litellm", which would register the marketplace under the wrong name and make/plugin install {name}@litellmfail toTwo UX improvements were also added: the setup tabn marketplace add
command as the primary optionwith settings.json as a secondary persistent option, and the usage tab shows a hint to run/plugin marketplace update litellm`when a plugin is not found.
QA runbook
python litellm/proxy/proxy_clev_config.yamlcd ui/litellm-dashboard && npm run dev/plugin install {name}@litellmand the yellow update hint is visible"litellm"keyFinal Attestation