Agents

Droid

Agent Agents @dip497 19 installs

Factory's Droid, with approvals, status and session resume wired into Hivemind.

hive agents install droid

Run it in a terminal, or find it in Hivemind under Settings ▸ Plugins.

Droid

Runs droid, the Droid command-line agent, in a Hivemind terminal tile.

Before you add it

Hivemind installs no code for it: it runs the droid command you install yourself. Get it from its install page, or run curl -fsSL https://app.factory.ai/cli | sh.

What it can do in Hivemind

  • Says when a turn ends, so another agent can hand it work and read its reply (hive ctl read, workflows).
  • Picks up the newest session for its folder after a restart.
  • Its permission prompts stay with you, even when another agent started it.

What it asks for

Hivemind shows this before it adds the agent.

  • Links your {home}/.factory into a private copy it points droid at
  • Reads {home}/.factory/sessions to find a session to resume
  • Reports its status and approval prompts to Hivemind through its own hooks, which can also read and type into your other tiles

Launch options

Set them on its page in Settings ▸ Plugins, or with hive plugins set agent:droid <option> <value>.

Option How it is passed
Autonomy --auto <value>

Listed from agent.yaml in this folder; fix it by pull request.

On the canvas

  • Resumes a session: yes
  • Reports when a turn ends: yes
  • Can be supervised by another agent: no

This adds Droid to Hivemind. Install droid itself too, if you don't have it.

Files

From dip497/hivemind-plugins at c417100. Hivemind checks each file's checksum as it downloads, and stops if one changed.

  • agent.yaml18b3553fe7e0
  • hive-notify.cjs9cc07e21e330
  • hive-turn-end.cjscbe6c72bb1a0
  • README.md5ea2def402d9
agent.yaml
# Droid — built-in provider manifest.
# Authoring format for the def half. See packages/hive-agents/src/manifest.ts.
manifestVersion: 2
# Written for the agent host that shipped in this release.
minAppVersion: '2026.9.6'
id: droid
label: Droid
bin: droid
enabled: true
caps:
  promptDelivery: typed
  turnSignal: true
  resume: cwd
  supervise: human
  blockedDetection: true
icon:
  viewBox: 0 0 24 24
  attrs:
    fill: none
    stroke: currentColor
    strokeWidth: '1.2'
  shapes:
  - ellipse:
      cx: '12'
      cy: '12'
      rx: '10'
      ry: '2.6'
  - ellipse:
      cx: '12'
      cy: '12'
      rx: '10'
      ry: '2.6'
      transform: rotate(45 12 12)
  - ellipse:
      cx: '12'
      cy: '12'
      rx: '10'
      ry: '2.6'
      transform: rotate(90 12 12)
  - ellipse:
      cx: '12'
      cy: '12'
      rx: '10'
      ry: '2.6'
      transform: rotate(135 12 12)
# A message typed while it works steers that turn: droid 0.161.0 says "Enter to steer" while it
# works, and lists it under "Steering messages".
steer: true
# An image whose path is pasted alone is attached: droid 0.161.0 lists it as "[Image 1] <name>".
pastedImages: true
options:
- id: mode
  label: Autonomy
  flag: --auto
  unattended: high
install:
  url: https://docs.factory.ai/cli/getting-started/quickstart
  command: "curl -fsSL https://app.factory.ai/cli | sh"
detect:
  rules:
  - when:
      all:
      - containsCS: EXECUTE
      - any:
        - contains: enter to select
        - contains: ↑↓ to navigate
        - contains: esc to cancel
        - contains: '> yes, allow'
        - contains: '> no, cancel'
    then: blocked
  - when:
      all:
      - any:
        - contains: enter to select
        - contains: ↑↓ to navigate
        - contains: esc to cancel
      - any:
        - contains: '> yes, allow'
        - contains: '> no, cancel'
    then: blocked
  - when:
      contains: esc to stop
    then: working
  default: idle
session:
  resume:
    args:
    - --resume
    - '{id}'
    find:
      strategy: jsonl-header
      root: '{home}/.factory/sessions'
      cwdPath: cwd
      idPath: id
      require:
        type: session_start
home:
  root: droid-home
  dir: .factory
  mirror: '{home}/.factory'
  env: FACTORY_HOME_OVERRIDE
  own:
  - name: settings.local.json
    merge: true
    set:
      disableAutoUpdate: true
hooks:
  file: hooks.json
  template: '{events}'
  events:
    SessionStart:
      emit: session.started
      timeout: 10
    SessionEnd:
      emit: session.ended
      timeout: 10
    UserPromptSubmit:
      emit: turn.started
      timeout: 10
    Stop:
      hook: turnEnd
      timeout: 10
    Notification:
      hook: notify
      timeout: 10
    PostToolUse:
      emit: input.resolved
      timeout: 10
assets:
- name: hive-turn-end.cjs
  file: hive-turn-end.cjs
  hook: turnEnd
  produces: [turn.ended]
- name: hive-notify.cjs
  file: hive-notify.cjs
  hook: notify
  produces: [input.requested]
launch:
  hcp: true

Hivemind shows you this list and asks before it installs.

  • links your {home}/.factory into a private copy it points droid at
  • reads {home}/.factory/sessions to find a session to resume
  • reports its status and approval prompts to Hivemind through its own hooks, which can also read and type into your other tiles
VersionCommitListed
1.0.0 c417100 October 20, 2026

Needs Hivemind 2026.9.6 or newer.

HiveHub keeps the version listed last. The ones before it are in the repository's history.

Something wrong with it? Report it.