Skip to content

fix(UI): correct skill install command and marketplace setup UX - #33514

Merged
ryan-crabbe-berri merged 5 commits into
BerriAI:litellm_internal_stagingfrom
ozolam:litellm_fix_skills_marketplace_commands_v2
Aug 24, 2026
Merged

fix(UI): correct skill install command and marketplace setup UX#33514
ryan-crabbe-berri merged 5 commits into
BerriAI:litellm_internal_stagingfrom
ozolam:litellm_fix_skills_marketplace_commands_v2

Conversation

@ozolam

@ozolam ozolam commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Relevant issues

Fixes #33512

Linear ticket

Pre-Submission checklist

  • I have added meaningful tests
  • My PR passes all CI/CD checks (e.g., lint, format, unit tests)
  • My PR's scope is as isolated as possible; item
  • I have received a Greptile Confidence Score of at least 4/5 before requesting a maintainer review (Greptile reviews
    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 a
plugin. 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}@litellm fail to

Two UX improvements were also added: the setup tabn marketplace addcommand 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

  1. Start the proxy: python litellm/proxy/proxy_clev_config.yaml
  2. Start the dashboard: cd ui/litellm-dashboard && npm run dev
  3. Go to http://localhost:3000, navigate to Skills
  4. "How to Use" tab: verify install command shows /plugin install {name}@litellm and the yellow update hint is visible
  5. "One-time setup" tab: verify the command optionings.json snippet with nested source structure and"litellm" key

Final Attestation

  • The tests check the right things, including the edge cases, and regressions in the respective real-world customer use-cases are not possible after this PR

@CLAassistant

CLAassistant commented Jul 16, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This 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.

  • helpers.ts: formatInstallCommand is rewritten as a one-liner that emits /plugin install {name}@litellm, replacing the old branching logic that incorrectly emitted /plugin marketplace add {source}.
  • skill_detail.tsx: The setup tab's settings.json snippet is corrected — marketplace key changed from "my-org" to "litellm" and the source value is now a properly nested object (was a flat string that Claude Code rejected). A new /plugin marketplace add command is added as the primary setup path; a stale-catalog hint is added to the install tab.
  • helpers.test.ts: formatInstallCommand tests are updated to reflect the simplified function signature; all other test suites are untouched.

Confidence Score: 5/5

Safe 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.

Important Files Changed

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

@ozolam

ozolam commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

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?

@ozolam
ozolam force-pushed the litellm_fix_skills_marketplace_commands_v2 branch from 8114c36 to ee5faf4 Compare July 16, 2026 10:37
Comment thread ui/litellm-dashboard/src/components/claude_code_plugins/helpers.ts
@veria-ai

veria-ai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

PR overview

All previously flagged issues have been addressed. No open security concerns remain on this pull request.

Security review

No open security issues remain on this pull request.

Fixed/addressed: 1 · PR risk: 0/10

@ozolam

ozolam commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Note: this PR also adds two UX improvements not in #33515 - a hint to run
/plugin marketplace update litellm when a plugin isn't found, and a
/plugin marketplace add command as the primary setup option before the
settings.json snippet.

@ozolam

ozolam commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

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.

@codspeed-hq

codspeed-hq Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 31 untouched benchmarks


Comparing ozolam:litellm_fix_skills_marketplace_commands_v2 (168ee2d) with litellm_internal_staging (b144b15)1

Open in CodSpeed

Footnotes

  1. No successful run was found on litellm_internal_staging (65fbeb5) during the generation of this report, so b144b15 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@ozolam
ozolam force-pushed the litellm_fix_skills_marketplace_commands_v2 branch 2 times, most recently from 6505512 to a1b51a4 Compare July 16, 2026 11:15
@ozolam ozolam changed the title fix(claude-code): correct skill install command and marketplace setup UX fix(UI): correct skill install command and marketplace setup UX Jul 21, 2026
@ozolam

ozolam commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

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!

ozolam added 4 commits August 11, 2026 11:22
- 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
@ozolam
ozolam force-pushed the litellm_fix_skills_marketplace_commands_v2 branch from a1b51a4 to 346c065 Compare August 11, 2026 19:03
@codecov

codecov Bot commented Aug 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

[Bug]: Claude Code skills page shows wrong install command and invalid settings.json snippet

3 participants