Skip to content

Conversation

@DeJeune
Copy link
Collaborator

@DeJeune DeJeune commented Jan 11, 2026

What this PR does

Before this PR:

  • Plugins could only be discovered from statically packaged sources
  • No way to install custom plugin packages

After this PR:

  • Users can install plugin packages from ZIP files by drag-and-drop
  • Users can install plugin packages from directories (folders)
  • Unified drag zone supports both ZIP and folder drops
  • Installed plugins are grouped by package with package-level uninstall option
  • Security: Path traversal protection and ZIP bomb prevention

Why we need it and why it was done in this way

This enables users to install custom Claude Code plugins from ZIP packages or local directories, following the Claude Code plugin specification (.claude-plugin/plugin.json).

The following tradeoffs were made:

  • Used HTTP-based approach (no git dependency) for future marketplace support
  • ZIP extraction limits (100MB, 1000 files) to prevent resource exhaustion

The following alternatives were considered:

  • Git-based installation: Rejected to avoid requiring users to install git

Breaking changes

None. This is a new feature that doesn't affect existing functionality.

Special notes for your reviewer

Key changes:

  1. PluginService.ts - Core installation logic with security protections
  2. PluginZipUploader.tsx - Drag-drop UI supporting both ZIP and folders
  3. InstalledPluginsList.tsx - Package grouping and uninstall package feature
  4. isDirectory API - New preload API to detect dropped directories

Checklist

  • PR: The PR description is expressive enough and will help future contributors
  • Code: Write code that humans can understand and Keep it simple
  • Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
  • Upgrade: Impact of this change on upgrade flows was considered and addressed if required
  • Documentation: A user-guide update was considered and is present (link) or not required.

Release note

feat: Add plugin package installation from ZIP files and directories with drag-and-drop support

🤖 Generated with Claude Code

@DeJeune DeJeune requested a review from 0xfullex as a code owner January 11, 2026 13:24
@DeJeune DeJeune requested review from kangfenmao and vaayne January 11, 2026 13:30
@DeJeune DeJeune linked an issue Jan 11, 2026 that may be closed by this pull request
4 tasks
@DeJeune DeJeune added this to the v1.7.14 milestone Jan 19, 2026
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]: Add skill functionality

2 participants