Multi-agent orchestration for Factory Droid with 5 execution modes: Autopilot (autonomous), Ultrapilot (3-5x parallel), Swarm (coordinated agents), Pipeline (sequential chains), Ecomode (token-efficient). 31+ skills, 32 specialized droids, zero learning curve.
Find a file
coli.dev 6cc2b29d8f feat(agents): add custom droid loading from markdown files
introduces a new mechanism for defining custom agents using markdown files with frontmatter. these droids can be loaded from `~/.factory/droids` and `./.factory/droids` directories.

the frontmatter supports `name`, `description`, `model`, and `tools` properties. tools can be specified as a comma-separated list, a yaml list, or by using predefined categories like `read`, `edit`, `execute`, `search`, or `all`.

this change enhances agent customization by allowing users to define their own agents with specific configurations and tools.
2026-02-28 22:06:26 +07:00
.factory-plugin docs(terminology)!: replace agent references with droid 2026-02-09 10:27:13 +07:00
.github docs(reference)!: align agent terminology with droid nomenclature 2026-02-08 23:12:37 +07:00
bridge docs(analysis)!: remove hephaestus deep-executor comparison 2026-02-09 09:37:23 +07:00
commands docs(tooling)!: switch references to askuser tool 2026-02-09 12:24:58 +07:00
docs docs(terminology)!: replace agent references with droid 2026-02-09 10:27:13 +07:00
droids docs(tooling)!: switch references to askuser tool 2026-02-09 12:24:58 +07:00
examples docs(reference)!: align agent terminology with droid nomenclature 2026-02-08 23:12:37 +07:00
hooks docs(terminology)!: replace agent references with droid 2026-02-09 10:27:13 +07:00
scripts docs(reference)!: align agent terminology with droid nomenclature 2026-02-08 23:12:37 +07:00
skills docs(tooling)!: switch references to askuser tool 2026-02-09 12:24:58 +07:00
src feat(agents): add custom droid loading from markdown files 2026-02-28 22:06:26 +07:00
templates docs(terminology)!: replace agent references with droid 2026-02-09 10:27:13 +07:00
.gitattributes chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00
.gitignore chore: remove benchmark directory and related files 2026-02-28 21:20:17 +07:00
.mcp.json chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00
.npmignore refactor(config)!: rename droid references to factory 2026-02-08 22:32:15 +07:00
AGENTS.md chore: remove benchmark directory and related files 2026-02-28 21:20:17 +07:00
bun.lock fix(bridge)!: rename omc paths to omd 2026-02-08 22:47:10 +07:00
CHANGELOG.md fix(cli)!: rename oh-my-droid cli references 2026-02-09 12:17:10 +07:00
eslint.config.js chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00
LICENSE chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00
package.json fix(cli)!: rename oh-my-droid cli references 2026-02-09 12:17:10 +07:00
README.md docs(readme): remove fork reference and badges from project description 2026-02-09 12:27:09 +07:00
tsconfig.json chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00
typos.toml chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00
vitest.config.ts chore(github)!: add droid plugin metadata and workflows 2026-02-08 22:29:49 +07:00

oh-my-droid

Multi-droid orchestration for Droid CLI. Zero learning curve.

oh-my-droid extends Droid with execution modes, specialized droids, skills, hooks, model routing, and MCP bridge servers.


Quick Start

Install plugin

/plugin marketplace add https://github.com/coli-dev/oh-my-droid
/plugin install oh-my-droid

Initial setup

/oh-my-droid:omd-setup

First task

autopilot: build a small REST API with auth and tests

Core Features

  • Multi-droid delegation with task-aware model routing
  • Execution modes: autopilot, ultrawork, ralph, ultrapilot, swarm, pipeline, ecomode
  • 30+ skills and command wrappers
  • Hook system for automation and context injection
  • MCP bridge servers for Codex/Gemini orchestration
  • LSP/AST integrated tooling and verification workflows

Magic Keywords

You can use natural language, but these shortcuts give explicit control:

Keyword Effect Example
autopilot Full autonomous execution autopilot: implement OAuth login
ralph Persistent completion loop ralph fix flaky test suite
ulw / ultrawork Maximum parallelism ulw migrate all API handlers
eco / ecomode Token-efficient execution eco refactor this module
plan Strategic planning flow plan this feature end-to-end

Configuration

Main user configuration file:

  • ~/.factory/.omd-config.json

Example:

{
  "defaultExecutionMode": "ultrawork",
  "mcpServers": {
    "context7": { "enabled": true },
    "exa": { "enabled": true, "apiKey": "YOUR_EXA_KEY" }
  }
}

Full example:

{
  "defaultExecutionMode": "ultrawork",
  "maxParallelAgents": 5,
  "verification": {
    "enabled": true,
    "defaultModel": "custom:claude-sonnet-4.5-5"
  },
  "models": {
    "default": "custom:gpt-5.3-codex-3",
    "low": "custom:gpt-5.2-codex-mini-0",
    "medium": "custom:claude-sonnet-4.5-5",
    "high": "custom:claude-opus-4.5-6"
  },
  "droids": {
    "architect": { "model": "custom:claude-opus-4.5-6", "enabled": true },
    "planner": { "model": "custom:claude-opus-4.5-6", "enabled": true },
    "executor": { "model": "custom:gpt-5.3-codex-3", "enabled": true },
    "explore": { "model": "custom:gpt-5.2-codex-mini-0", "enabled": true },
    "researcher": { "model": "custom:gpt-5.2-1", "enabled": true },
    "frontendEngineer": { "model": "custom:gemini-3-pro-8", "enabled": true },
    "documentWriter": { "model": "custom:claude-haiku-4.5-4", "enabled": true },
    "multimodalLooker": { "model": "custom:gemini-3-pro-8", "enabled": true }
  },
  "mcpServers": {
    "context7": { "enabled": true },
    "exa": { "enabled": true, "apiKey": "YOUR_EXA_KEY" },
    "x": { "enabled": true },
    "g": { "enabled": true }
  },
  "features": {
    "parallelExecution": true,
    "lspTools": true,
    "astTools": true,
    "continuationEnforcement": true,
    "autoContextInjection": true
  },
  "permissions": {
    "allowBash": true,
    "allowEdit": true,
    "allowWrite": true,
    "maxBackgroundTasks": 5
  },
  "magicKeywords": {
    "ultrawork": ["ulw", "ultrawork"],
    "search": ["search", "find"],
    "analyze": ["analyze", "debug", "investigate"],
    "ultrathink": ["ultrathink", "deep think"]
  }
}

MCP bridge config

Project MCP bridge definition lives in .mcp.json:

{
  "mcpServers": {
    "t": { "command": "node", "args": ["${DROID_PLUGIN_ROOT}/bridge/mcp-server.cjs"] },
    "x": { "command": "node", "args": ["${DROID_PLUGIN_ROOT}/bridge/codex-server.cjs"] },
    "g": { "command": "node", "args": ["${DROID_PLUGIN_ROOT}/bridge/gemini-server.cjs"] }
  }
}

Model IDs (Supported)

oh-my-droid supports explicit custom model IDs:

  • custom:gpt-5.2-codex-mini-0
  • custom:gpt-5.2-1
  • custom:gpt-5.2-codex-2
  • custom:gpt-5.3-codex-3
  • custom:claude-haiku-4.5-4
  • custom:claude-sonnet-4.5-5
  • custom:claude-opus-4.5-6
  • custom:gemini-3-flash-7
  • custom:gemini-3-pro-8

Droid defaults are defined in:

  • droids/*.md (frontmatter model)
  • src/agents/*.ts
  • src/agents/definitions.ts
  • src/config/loader.ts

Development

Requirements

  • Node.js >= 20
  • npm

Build and test

npm install
npm run build
npm run lint
npm test

Useful scripts

npm run dev
npm run test:coverage
npm run sync-metadata

Project Structure

  • src/ core TypeScript source
  • droids/ droid prompts
  • skills/ skill definitions
  • commands/ command wrappers
  • hooks/ hook templates
  • bridge/ compiled MCP bridge servers
  • docs/ detailed references and architecture

Documentation

  • docs/REFERENCE.md
  • docs/ARCHITECTURE.md
  • docs/FEATURES.md
  • docs/MIGRATION.md
  • docs/COMPATIBILITY.md

License

MIT


Special thanks to the original author of oh-my-claudecode.