Extend Droid with shareable packages of skills, commands, and tools.
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.
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:
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.
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.
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.
Via UI: /plugins → Marketplaces tab → “Add new marketplace” → enter URLVia CLI:
# From GitHubdroid plugin marketplace add https://github.com/owner/repo# From other Git hostsdroid plugin marketplace add https://gitlab.com/company/plugins.git# From local path (for development)droid plugin marketplace add /path/to/local/marketplace
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.
Field
Type
Description
ref
string
Branch or tag to track (e.g. "main", "v1.2.0", "staging").
sha
string
Full 40-character commit SHA. When set, the marketplace stays on this exact commit and droid plugin marketplace update is a no-op.
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.
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.
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.
Command
Purpose
Example
droid plugin install <plugin@marketplace>
Install a plugin from a registered marketplace. Alias: droid plugin i.