Skip to main content
Plugins let you extend Droid with custom functionality that can be shared across projects and teams. A plugin bundles skills, slash commands, agents, and MCP servers into a single, distributable package.

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:

When to use plugins vs standalone configuration

Start with standalone configuration in .factory/ for quick iteration, then convert to a plugin when you’re ready to share.

Managing plugins

Droid provides two ways to manage plugins: Use the /plugins slash command to open the plugin manager:
This opens a tabbed interface:
  • Browse - View and install plugins from registered marketplaces
  • Installed - Manage installed plugins (view info, update, uninstall)
  • Marketplaces - Add, update, or remove marketplaces
Navigation:
  • 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):
Plugin IDs use the format pluginName@marketplaceName (e.g., security-guidance@claude-plugins-official).

Plugin structure

Every plugin follows this directory structure:
Don’t put commands/, skills/, droids/, or hooks/ inside the .factory-plugin/ directory. Only plugin.json goes inside .factory-plugin/. All other directories must be at the plugin root level.

Plugin hooks

Plugins can include hooks that execute at specific lifecycle events. Add a hooks/ directory with a hooks.json file:
hooks/hooks.json example:
Use ${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:

Plugin scopes

When installing plugins, you choose an installation scope:
Org scope: Plugins enabled via organization managed settings are automatically installed with org scope. You cannot manually set org scope.
A plugin can only exist at one scope. To change scope, uninstall first and reinstall.

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. To pin a marketplace to a specific version, set ref (a branch or tag) or sha (a full 40-character commit SHA) on the marketplace source. See Pinning a marketplace to a ref or commit below.

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:
When Droid starts, it automatically:
  1. Registers any marketplaces from extraKnownMarketplaces that aren’t already registered
  2. Installs any plugins from enabledPlugins that aren’t already installed
The installation scope depends on where the setting is defined:
  • Org-managed settings → org scope
  • User settings → user scope
  • Project settings → project scope

Pinning a marketplace to a ref or commit

By default Droid tracks the marketplace’s default branch and pulls the latest commit on update. You can pin a marketplace to a specific Git ref or commit by adding ref or sha to the source object. ref and sha are supported on the github, url, and git-subdir source types. Use sha for hard pins; use ref to follow a branch or tag.
From the CLI, pass --ref or --sha when adding a marketplace:

Discovering plugins

Official Factory plugins

Factory maintains an official plugin marketplace at Factory-AI/factory-plugins with curated plugins. Add via /plugins UI or CLI:
Available plugins: Install via /plugins UI (Browse tab) or CLI:

Community plugins

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.

CLI command reference

Quick reference for the droid plugin subcommands. All commands accept --scope user|project (alias -s) to control where the plugin is installed; omit the flag to be prompted. Common workflows:
Prefer the interactive /plugins UI for browsing and one-off installs. Use the CLI when scripting onboarding, CI setup, or shared dotfiles.

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.