Documentation
¶
Index ¶
- type Author
- type Plugin
- func (p Plugin) AuthorName() string
- func (p Plugin) FilterValue() string
- func (p Plugin) FullName() string
- func (p Plugin) GitHubURL() string
- func (p Plugin) InstallCommand() string
- func (p Plugin) InstallabilityReason() string
- func (p Plugin) InstallabilityTag() string
- func (p Plugin) Installable() bool
- func (p Plugin) Title() string
- func (p *Plugin) UnmarshalJSON(data []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Author ¶
type Author struct {
Name string `json:"name"`
Email string `json:"email"`
URL string `json:"url"`
Company string `json:"company"`
}
Author represents plugin author information
type Plugin ¶
type Plugin struct {
Name string `json:"name"`
Description string `json:"description"`
Version string `json:"version"`
Keywords []string `json:"keywords"`
Category string `json:"category"`
Author Author `json:"author"`
Marketplace string `json:"-"` // Friendly marketplace name (e.g., "feedmob-plugins")
MarketplaceRepo string `json:"-"` // Full repo URL for display (e.g., "https://github.com/feed-mob/claude-code-marketplace")
MarketplaceSource string `json:"-"` // CLI source format (e.g., "feed-mob/claude-code-marketplace" for GitHub)
Installed bool `json:"-"` // Whether this plugin is currently installed
IsDiscoverable bool `json:"-"` // Whether from a discoverable (not installed) marketplace
InstallPath string `json:"-"` // Path if installed
Source string `json:"source"` // Source path within marketplace
Homepage string `json:"homepage"`
Repository string `json:"repository"` // Source repository URL
License string `json:"license"` // License identifier (e.g., "MIT")
Tags []string `json:"tags"` // Categorization tags
// Installability tracking
HasLSPServers bool `json:"-"` // True if plugin has lspServers config (built into Claude Code)
IsExternalURL bool `json:"-"` // True if source points to external Git repo
IsIncomplete bool `json:"-"` // True if plugin is missing required files (e.g., .claude-plugin/plugin.json)
}
Plugin represents a Claude Code plugin from any marketplace. Contains metadata, installation state, and marketplace source information. Used for search, display, and installation command generation.
func (Plugin) AuthorName ¶
AuthorName returns the author's name or "Unknown" if not set
func (Plugin) FilterValue ¶
FilterValue implements the list.Item interface for bubbles/list
func (Plugin) GitHubURL ¶ added in v0.3.0
GitHubURL returns the GitHub URL for this plugin's source code Constructs URL from MarketplaceRepo + Source path Example: https://github.com/owner/repo/tree/main/plugins/plugin-name
func (Plugin) InstallCommand ¶
InstallCommand returns the command to install this plugin
func (Plugin) InstallabilityReason ¶ added in v0.4.1
InstallabilityReason returns a human-readable reason why the plugin is not installable. Returns empty string if the plugin is installable.
func (Plugin) InstallabilityTag ¶ added in v0.4.1
InstallabilityTag returns a short tag for display purposes. Returns empty string if the plugin is installable.
func (Plugin) Installable ¶ added in v0.4.1
Installable returns true if the plugin can be installed via plum. Plugins with LSP servers, external URLs, or missing files require different installation methods.
func (*Plugin) UnmarshalJSON ¶ added in v0.3.3
UnmarshalJSON implements custom JSON unmarshaling for Plugin to handle the "source" field which can be either a string or an object with Git URL.