Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.crewship.ai/llms.txt

Use this file to discover all available pages before exploring further.

droid CLI from Factory. Curl-installer from app.factory.ai.

Install

curl -fsSL https://app.factory.ai/cli -o /tmp/droid-install.sh && bash /tmp/droid-install.sh
Pre-installed via Crewship’s baseCLIPostCreate. Linux requires xdg-utils (also installed by Crewship’s apt step).

Auth

Env varFormat
FACTORY_API_KEYfact_… / factory_…
Get the key from app.factory.ai/settings/api-keys. Free tier exists. droid login (browser OAuth) is NOT yet wired in Crewship — API key only.

Models

Bare provider model IDs (no namespace prefix). Droid multiplexes across providers:
API stringTierNotes
claude-opus-4-7 / claude-opus-4-6 / claude-sonnet-4-6frontier1.2x–2x multiplier
claude-opus-4-6-fastfrontier12x premium tier
gpt-5.5 / gpt-5.4 / gpt-5.3-codexfrontierPlus -fast variants
gemini-3.1-pro-preview / gemini-3-flash-previewfrontier/fast0.2x-0.8x
glm-5.1 / kimi-k2.6 / minimax-m2.7open-weightCheap tiers

Command shape

droid exec --auto <low|medium> -o stream-json --model <m> -- <message>
  • exec — non-interactive subcommand
  • --auto low (read-only, MINIMAL/CONSULTATIVE profile) | medium (file edits, default)
  • --auto high is intentionally NOT exposed (bypasses workspace boundary)
  • -o stream-json — JSONL events
  • --mission is NOT used — fails in headless containers per Factory issue #794

MCP

Configured at /output/<slug>/.factory/mcp.json:
{
  "mcpServers": {
    "linear": {
      "type": "http",
      "url": "https://mcp.linear.app/sse",
      "headers": {"Authorization": "Bearer ${LINEAR_TOKEN}"}
    },
    "fs": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/work"]
    }
  }
}
Droid REQUIRES type: stdio | http discriminator on every server (Crewship’s writer always emits it).

Memory

Canonical memory set including AGENTS.md (Droid’s primary discovery) and .factory/AGENTS.md (Droid alternate path). Droid exec has no --system-prompt flag and AGENTS.md only loads on the second invocation, so turn-1 parity is achieved by prepending the preamble inline with [SYSTEM]/[USER] delimiters; turn-2+ relies on the file.

Output stream

JSONL per docs.factory.ai/cli/droid-exec/overview. Note camelCase / snake_case inconsistency — Crewship’s parser accepts both:
EventFields
system (subtype: init)cwd, session_id, tools, model
messagerole, id, text
tool_callcamelCase: toolName, parameters, toolId, messageId
tool_resultcamelCase: value (NOT output), isError
completioncamelCase: finalText, numTurns, durationMs
resultsnake_case: result, num_turns, duration_ms, is_error

Troubleshooting

droid: not found — installer needs xdg-utils on Linux. Check apt list --installed | grep xdg-utils. Failed to start factoryd — happens when running droid exec --mission headless (issue #794). Crewship’s adapter never passes --mission so this should not occur. Empty tool_result — pre-fix parser used output field; Droid emits value. Verify orchestrator on current schema (parser_droid_test.go).