Custom Droids are experimental. You must enable them in settings before they
will be picked up.
1 · What are custom droids?
Custom droids live as.md files under either your project’s .factory/droids/ or your personal ~/.factory/droids/ directory. When enabled, the CLI scans these folders (top-level files only), validates each definition, and exposes them as subagent_type targets for the Task tool. This lets the primary assistant spin up purpose-built helpers mid-session.
- Project droids sit in
<repo>/.factory/droids/and are shared with teammates. - Personal droids live in
~/.factory/droids/and follow you across workspaces. - Project definitions override personal ones when the names match.
2 · Why use them?
- Faster delegation – encode complex checklists once and reuse them with a single tool call.
- Stricter safety – limit an agent to read-only, edit-only, or curated tool sets.
- Context isolation – each subagent runs with a fresh context window, avoiding prompt bloat.
- Repeatable reviews – capture team-specific review, testing, or release gates as code you can version.
3 · Quick start
- Open Settings (
/settings) and toggle Custom Droids under the Experimental section. This persists"enableCustomDroids"in~/.factory/settings.jsonand registers the Task tool. - Restart
droid. - Run
/droidsto launch the Droids menu. - Choose Create a new Droid, pick a storage location (project or personal), then follow the wizard to set:
- Description of what the droid should do
- System prompt (auto-generated or manually edited)
- Identifier (name for the droid)
- Model (or inherit from parent session)
- Tools (explicit list of tool IDs)
- Save. The CLI writes
<name>.mdinto the chosendroids/directory and normalizes the filename (lowercase, hyphenated). - Ask droid to use it, e.g. “Run the Task tool with subagent
code-reviewerto review this diff,” or trigger it from automation.
4 · Configuration
Each droid file is Markdown with YAML frontmatter.| Field | Notes |
|---|---|
name | Required. Lowercase letters, digits, -, _. Drives the subagent_type value and filename. |
description | Optional. Shown in the UI list. Keep ≤500 chars. |
model | inherit (use parent session’s model), or specify an available model name. Run /models in the CLI to see available options. |
tools | Tool selection: undefined (all tools) or array of tool IDs like ["Read", "Edit", "Execute"]. Case-sensitive. |
name and include a non-empty body. DroidValidator surfaces errors (invalid names, unknown models, unknown tools) and warnings (missing description, duplicated tools). Validation issues appear in the CLI logs when a file fails to load.
Tool categories → concrete tools
| Category | Tool IDs | Purpose |
|---|---|---|
read-only | Read, LS, Grep, Glob | Safe analysis and file exploration |
edit | Create, Edit, MultiEdit, ApplyPatch | Code generation and modifications |
execute | Execute | Shell command execution |
web | WebSearch, FetchUrl | Internet research and content |
mcp | Dynamically populated (if any) | Model Context Protocol tools |
5 · Managing droids in the UI
/droids opens a modal displaying:
- List of droids – shows each droid with:
- Name and model in parentheses
- Description preview
- Location badge (Project / Personal)
- Tools summary (e.g., “All tools” or count of selected tools)
- Create a new Droid – launches a guided wizard:
- Choose location (Project or Personal)
- Describe what the droid should do
- Generate or manually edit the system prompt
- Confirm identifier, model, and tools
- Import from Claude Code – import existing agents from
~/.claude/agents/as custom droids - Actions – View, Edit, Delete droids, or Reload to refresh the list
5.5 · Importing Claude Code subagents
You can import agents created in Claude Code as custom droids. This lets you reuse your existing Claude Code agents with the Factory Droid system.How to import
- Run
/droidsto open the Droids menu - Press I to start the import flow
- The CLI scans Claude Code agent directories:
- Project scope:
<repo>/.claude/agents/(workspace-specific agents) - Personal scope:
~/.claude/agents/(personal agents)
- Project scope:
- Review the list of available agents:
- Agents marked
(already exists)are pre-deselected by default - Pre-selected agents are those not yet imported to Factory Droids
- Agents marked
- Press Space to toggle individual selections, A to toggle all
- Press Enter to import the selected agents
What happens during import
The import process converts Claude Code agents into Factory Droids:-
Metadata extraction:
- Agent name → droid
name - Agent description (including examples and usage guidance) → droid
description - Agent instructions → droid system prompt (body)
- Agent name → droid
-
Configuration mapping:
- Model: Maps Claude Code model families to Factory models:
inherit→inheritsonnet→ first available Sonnet modelhaiku→ first available Haiku modelopus→ first available Opus model
- Tools: Maps Claude Code tool names to Factory tools (may show validation warnings if tools don’t map)
- Location: Imports to Personal
~/.factory/droids/by default
- Model: Maps Claude Code model families to Factory models:
-
Tool validation:
- Some Claude Code tools may not have equivalents in Factory
- Invalid tools are listed with a warning: “Invalid tools: [list]”
- You can edit the droid to fix tool mappings or adjust tool access
-
File creation:
- Creates a
.mdfile in~/.factory/droids/(personal location) - Filename is normalized (lowercase, hyphenated)
- File format: YAML frontmatter + system prompt body
- Creates a
-
Import report:
- Shows success/failure for each agent
- Imported agents are immediately available in the droid list
- You can edit any imported droid to adjust model, tools, or prompt
Example import flow
Selection screen (before import):Handling tool validation errors
After importing, if you see “Invalid tools: [list]”, it means some Claude Code tools don’t have Factory equivalents:- View the droid (press Enter) to see the full tool list
- Edit the droid (press E) to adjust:
- Remove invalid tools from the list
- Keep only valid Factory tools
- Check available tools - the list shows which Factory tools are available
- Claude Code tools like
Write,NotebookEdit,BrowseURLdon’t exist in Factory - Replace with equivalent Factory tools:
Write→Edit,CreateBrowseURL→WebSearch,FetchUrl
- Or remove the
toolssection entirely to enable all Factory tools
6 · Using custom droids effectively
- Invoke via the Task tool – when custom droids are enabled, the droid may call it autonomously, or you can request it directly (“Use the subagent
security-auditoron this change”). - Choose models strategically – use
inheritto match the parent session, or specify a different model for specialized tasks:- Smaller/faster models for simple analysis and summary tasks (lower cost).
- Larger/more capable models for complex reasoning, code review, and multi-step analysis.
- Run
/modelsin the CLI to see available options for your workspace.
- Limit tool access – use explicit tool lists to restrict what a subagent can do, preventing unexpected shell commands or other dangerous operations.
- Leverage live updates – the Task tool now streams live progress, showing tool calls, results, and TodoWrite updates in real time as the subagent executes.
- Structure output – organize the prompt to emit sections like
Summary:andFindings:so the Task tool UI can summarize results clearly. - Share and collaborate – check
.factory/droids/*.mdinto your repo so teammates can use shared droids, and version-control prompt updates like code. - Leverage Claude Code agents – import your existing Claude Code agents (see section 5.5) to reuse them as custom droids in Factory.
7 · Examples
Code reviewer (project scope)
code-reviewer on the staged diff.”
Security sweeper (personal scope)
Task coordinator (with live progress)
With custom droids, you capture tribal knowledge as code. Compose specialized prompts once, assign the right tools and models, and let the primary assistant delegate heavy lifts to the subagents you design.