What are plugins?
Plugins are directories containing a manifest file (.factory-plugin/plugin.json) and optional components like skills, commands, and agents. Unlike standalone configuration in .factory/, plugins are designed for sharing and distribution.
Plugin components:
| Component | Purpose | Invocation |
|---|---|---|
| Skills | Reusable capabilities with instructions and tools | Model-invoked automatically based on task |
| Commands | Slash commands for specific workflows | User-invoked via /command-name |
| Agents | Specialized subagent definitions | Called via Task tool |
| Hooks | Lifecycle event handlers | Automatic on matching events |
| MCP Servers | External tool integrations | Available as tools when plugin is active |
When to use plugins vs standalone configuration
| Approach | Best for |
|---|---|
Standalone (.factory/ directory) | Personal workflows, project-specific customizations, quick experiments |
| Plugins | Sharing with teammates, distributing to community, versioned releases, reusable across projects |
.factory/ for quick iteration, then convert to a plugin when you’re ready to share.
Managing plugins
Droid provides two ways to manage plugins:Interactive UI (recommended)
Use the/plugins slash command to open the plugin manager:
- Browse - View and install plugins from registered marketplaces
- Installed - Manage installed plugins (view info, update, uninstall)
- Marketplaces - Add, update, or remove marketplaces
- Left/Right arrows: Switch between tabs
- Up/Down arrows: Navigate within a tab
- Enter: Select/confirm
- Escape: Go back or close
CLI commands (for scripting)
For automation, use CLI commands from your shell (not as slash commands):pluginName@marketplaceName (e.g., security-guidance@claude-plugins-official).
Plugin structure
Every plugin follows this directory structure:Plugin hooks
Plugins can include hooks that execute at specific lifecycle events. Add ahooks/ directory with a hooks.json file:
${DROID_PLUGIN_ROOT} to reference files within your plugin directory. This variable is expanded to the actual plugin path when the hook runs. See Hooks reference for details.
Plugin manifest
The manifest at.factory-plugin/plugin.json defines your plugin’s identity:
| Field | Purpose |
|---|---|
name | Unique identifier for the plugin. |
description | Shown in the plugin manager when browsing or installing. |
version | Track releases using semantic versioning. |
author | Optional. Helpful for attribution. |
Plugin scopes
When installing plugins, you choose an installation scope:| Scope | Location | Visibility |
|---|---|---|
| User | ~/.factory/ | Available across all your projects |
| Project | <project>/.factory/ | Shared with teammates via git |
Org scope: Plugins enabled via organization managed settings are automatically installed with
org scope. You cannot manually set org scope.Version tracking
Plugins are versioned by Git commit hash, not semantic version. When you update a plugin, Droid fetches the latest commit from the marketplace repository.Version pinning is not supported. Updates always fetch the latest version from the marketplace.
Marketplaces
Marketplaces are catalogs of plugins that you can browse and install from.Adding marketplaces
Via UI:/plugins → Marketplaces tab → “Add new marketplace” → enter URL
Via CLI:
Managing marketplaces
Via UI:/plugins → Marketplaces tab → select marketplace → choose action (Update, Disable auto-update, Delete)
Via CLI:
Removing a marketplace does not uninstall plugins from that marketplace. Installed plugins remain functional from cache.
Team marketplaces
Configure automatic marketplace and plugin installation by adding to.factory/settings.json:
- Registers any marketplaces from
extraKnownMarketplacesthat aren’t already registered - Installs any plugins from
enabledPluginsthat aren’t already installed
- Org-managed settings →
orgscope - User settings →
userscope - Project settings →
projectscope
Discovering plugins
Official Factory plugins
Factory maintains an official plugin marketplace atFactory-AI/factory-plugins with curated plugins.
Add via /plugins UI or CLI:
| Plugin | Description |
|---|---|
| droid-evolved | Skills for continuous learning: session navigation, human writing, skill creation, visual design, frontend design, browser automation |
| security-engineer | Security review, threat modeling, commit scanning, and vulnerability validation |
/plugins UI (Browse tab) or CLI:
Community plugins
| Plugin | Description | Source |
|---|---|---|
| superpowers | Complete software development workflow with brainstorming, planning, and subagent-driven development | obra/superpowers |
Enterprise Plugin Registry
For organizations that need centralized control over approved plugins, see Enterprise Plugin Registry. This allows you to:- Maintain a private marketplace of approved plugins
- Pre-install mandatory plugins for all users
- Organize plugins by team, role, or capability
Claude Code compatibility
Droid is compatible with plugins built for Claude Code. If you find a Claude Code plugin you’d like to use, you can install it directly - the plugin format is interoperable. See the Claude Code plugins documentation for more details.Next steps
Building plugins
Learn how to create your own plugins with skills and commands.
Skills
Understand how skills work and how to create them.
Custom commands
Create user-invoked slash commands.
Custom Droids
Create specialized subagents for your plugins.
