Skip to content

Eventual microtask 599#223

Open
iabdousd wants to merge 27 commits into
mainfrom
eventual-microtask-599
Open

Eventual microtask 599#223
iabdousd wants to merge 27 commits into
mainfrom
eventual-microtask-599

Conversation

@iabdousd

@iabdousd iabdousd commented May 1, 2026

Copy link
Copy Markdown
Member

Summary

  • New Plugins dialog (sidebar puzzle icon) lists every Claude Code plugin from configured marketplaces; thin Rust wrapper over claude plugin list/install/uninstall/marketplace keeps the CLI as the source of truth
  • Search across name + description, marketplace pill filter (only shown when 2+ marketplaces configured), "installed only" toggle, sort by install count or name; one-click install with scope picker (user / project / local)
  • Scope picker is gated to user-only when no project is selected, so installs never write to the wrong .claude/settings.json

Test plan

  • Click Puzzle icon in sidebar - Plugins dialog opens, ~170 cards load
  • Type amplitude in search - only matching cards remain
  • Toggle "Installed only" - shows just the plugins already in claude plugin list
  • With 2+ marketplaces, click a marketplace pill - filters to that marketplace; with 1 marketplace, the row is hidden
  • Install a small plugin (e.g. agent-sdk-dev) - spinner, success toast, card flips to Uninstall
  • Uninstall it - spinner, toast, card flips back
  • Refresh button re-fetches the catalog
  • With a project selected, scope picker shows user/project/local; with none selected, picker is hidden
  • Click backdrop or press Escape - dialog closes
  • If `claude` CLI is missing or pre-2.0, dialog shows "Update Claude Code to 2.0+" empty state

iabdousd added 27 commits May 1, 2026 20:53
…d cards

- Convert PluginsPage from full-screen panel to Dialog (matches Bootstrap dialog pattern, fixes background bleed)
- Move search box and sort/filter controls into the header next to title
- Drop per-card marketplace label; show as small badge near install count only when 2+ marketplaces are configured
- Bump description clamp from 3 to 4 lines for fewer mid-word truncations
- Add subtle bg-white/2 + hover bg-white/4 to lift cards from page background
- Remove Puzzle icon from dialog title
- Replace marketplace pill row with a select dropdown that only renders when 2+ marketplaces are configured, removing the orphaned secondary row
- Use explicit, consistent select styling (the previous input-base utility was forcing w-full on selects, breaking layout)
- Reorder controls left-to-right: title, search, marketplace, sort, installed-only, refresh
Drop card flex gap from 12px to 8px and align the title row to baseline with leading-tight on the title, so the title's default 1.5 line-height stops opening up extra space below it.
The previous text-white only happened to look right on themes with a dark accent. Switch to the semantic accent-foreground token (black in dark mode, white in light) and use bg-accent-hover to match the rest of the app's primary button styling.
…Claude

- Add a 180px left rail listing all five agents (Claude, Codex, Cursor, Gemini, OpenCode) with their brand icons. Active agent gets the accent treatment; non-Claude agents show a small 'Soon' pill
- Right pane only renders the search/filters/grid for Claude Code; selecting any other agent reveals a centered Coming Soon panel with the agent's icon, a soft glow, and a roadmap chip
…size it

Replace min-height/max-height with a fixed height of min(78vh, 720px). The
Coming Soon and Claude panes now occupy the same viewport regardless of
content size.
- Add a border-right divider between rail and content so the rail anchors visually
- Drop the outlined-card ring on the active item and replace it with a thin accent bar absolutely positioned on the left edge plus the muted accent fill, so it reads as a tab not a button
- Add a small 'Coding agent' section label above the list
- Slim items: tighter padding, 14px icons, smaller 'soon' label without ring, lowercase to match section style
- Reduce rail width 180→160 to give cards more room
Items now use px-2 py-1 (matching the project rows in Sidebar.tsx), the
section label uses font-semibold + text-text-muted + px-2, and the rail
divider sits at pr-2 with pl-3 on the content side. Tighter and aligned
with the rest of the app.
The shared Dialog applies p-5 to its content, which was forcing every
section in the plugins dialog to share the same outer padding and
fighting our per-section layout. Use -m-5 to neutralise it, then give
each section its own padding: px-4 py-3 on the title bar (with a
border-b separator), px-2 py-2 on the agent rail, and px-4 py-3 on the
right pane.
Title bar py-3 → py-2 and content top padding py-3 → pt-2 (kept pb-3
on the right pane so the grid still has bottom breathing room).
The Coming Soon panel on the right pane already conveys this.
The browser/UnoCSS default heading margin was bleeding through
leading-tight, leaving extra vertical space above and below the title.
…espacing

- Plugin detail drawer slides in from the right on card click, with full
  description, install count, marketplace, version, scope (when installed),
  install date, and clickable source URL. Backdrop fades; sheet slides via
  transform with 200ms ease-out. Content stays mounted briefly after close
  so it slides out with content visible
- For installed plugins the drawer reads <installPath>/.claude-plugin/plugin.json
  via a new plugin_read_manifest IPC command and enumerates skills, slash
  commands, agents, plus flags hooks/MCP/LSP — gives users a real picture
  of what each plugin ships before they install
- Plugins from claude-plugins-official link to https://claude.com/plugins/<name>
  instead of the underlying repo, so users land on the canonical Anthropic
  plugin page
- Dialog body splits by coding agent: Claude (functional), Codex/Cursor/Gemini/
  OpenCode (Coming Soon panel with brand icon, soft accent blur, clickable
  roadmap link). Sidebar matches the app's main rail density (px-2.5 py-1.5,
  border-r, accent indicator bar). Three vertical sections inside Claude:
  Installed (n), Popular (top 8), Browse all — search/sort/filters live in
  the Browse header and only narrow that grid
- Cards: tighter p-3 layout, font-semibold title with reset block margin,
  text-[11px] description, compact install count ("300K" instead of "299,640"),
  hover-only Uninstall pill, muted accent Install button (mint reserved for
  install action, sidebar active state goes neutral). Theme-aware borders
  via outline/N tokens so they show in light mode too
- Type chip on cards (MCP/LSP) detected from description with conservative
  regex; no chip when ambiguous
- Filter installed/synthesized plugins into the rendered list since
  `claude plugin list --json --available` excludes installed entries
- Skip current_dir when cwd is empty in install/uninstall — fixes
  "No such file or directory" error when running from project-less context
- scan_commands_dir now falls back to the filename when frontmatter omits
  `name:`, so plugin-shipped commands (e.g. code-review.md) are discovered
- Plugin commands are surfaced as `<plugin>:<command>` (e.g.
  /code-review:code-review), matching what Claude Code's CLI autocomplete
  shows. User and project commands keep their plain names
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.

1 participant