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 (
Shift+Tab
→ Settings) and toggle Custom Droids under the Experimental section. This persists"enableCustomDroids"
in~/.factory/settings.json
and registers the Task tool. - Run
/droids
to launch the Droids menu. - Choose Create a new Droid, pick a storage location (project or personal), then follow the wizard to set an identifier, system prompt, tools, and model.
- Save. The CLI writes
<name>.md
into the chosendroids/
directory and normalizes the filename (lowercase, hyphenated). - Ask droid to use it, e.g. “Run the Task tool with subagent
code-reviewer
to 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 | claude-opus-4-1-20250805 , claude-sonnet-4-20250514 , gpt-5-2025-08-07 , or inherit (use the parent session’s model). The validator rejects other strings. |
tools | all , a category (read-only , edit , execution , web , mcp ), or an explicit list of tool IDs (e.g. "Read" , "Execute" ). Default is all , which enables every CLI tool. |
createdAt /updatedAt | Auto-filled when using the wizard; optional otherwise. |
version | Optional string to track revisions. |
name
and include a non-empty body. DroidValidator
surfaces errors (invalid names, unknown models, unknown tools) and warnings (missing description, duplicated tools, unrestricted all
). Validation issues appear in the CLI logs when a file fails to load.
Tool categories → concrete tools
Category | Tools granted (LLM IDs) |
---|---|
read-only | Read , Grep , Glob , LS |
edit | Edit , MultiEdit , Create |
execution | Execute |
web | WebSearch , FetchUrl |
mcp | Dynamically populated MCP tools (if any) |
5 · Managing droids in the UI
/droids
opens a modal with:
- Create a new Droid – launches the guided flow above.
- List of droids – shows name, summary, and location badge (Project / Personal).
- Selecting a droid lets you View, Edit, Delete, or go Back.
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-auditor
on this change”). - Switch models intentionally – the subagent respects the
model
field. Useinherit
when you want it to follow the parent session’s active provider and reasoning effort. - Limit tool access – prefer categories (e.g.
read-only
) or explicit lists so the subagent can’t execute unexpected shell commands. - Version in git – check
.factory/droids/*.md
into your repo to share prompts and review changes like code.
Summary:
and Findings:
helps the Task tool UI summarize results.
7 · Examples
Code reviewer (project scope)
code-reviewer
on the staged diff.”
Security sweeper (personal scope)
With custom droids, you capture tribal knowledge as code. Compose specialized prompts once, assign the right tools, and let the primary assistant delegate heavy lifts to the subagents you design.