Skip to main content

Documentation Index

Fetch the complete documentation index at: https://factory-changelog-may20.mintlify.app/llms.txt

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

Accessing settings

To configure droid settings:
  1. Run droid
  2. Enter /settings
  3. Adjust your preferences interactively
Changes take effect immediately and are saved to your settings file.

Where settings live

OSLocation
macOS / Linux~/.factory/settings.json
Windows%USERPROFILE%\.factory\settings.json
If the file doesn’t exist, it’s created with defaults the first time you run droid.

Local overrides

You can create a settings.local.json alongside settings.json in any .factory/ folder:
  • ~/.factory/settings.local.json (user-level)
  • <project>/.factory/settings.local.json (project-level)
Local overrides merge on top of the corresponding settings.json at the same level and follow the same hierarchy precedence. Add settings.local.json to .gitignore if you want to keep machine-specific preferences out of version control.

Legacy Droid YAML configuration

.droid.yaml was an older project configuration surface. Use the current .factory/ files instead:
  • Use settings.json and settings.local.json for Droid preferences and local overrides.
  • Use AGENTS.md for repository instructions, conventions, and validation commands.
  • Use MCP servers, hooks, and skills for integrations, automation, and reusable workflows.

Available settings

SettingOptionsDefaultDescription
modelAny available model IDProduct defaultThe default AI model used by droid
reasoningEffortoff, none, low, medium, high (availability depends on the model)Model-dependent defaultControls how much structured thinking the model performs.
sessionDefaultSettings.interactionModeauto, specautoSets whether new sessions start in Auto or Spec Mode.
sessionDefaultSettings.autonomyLeveloff, low, medium, highoffSets the default Autonomy Level for new sessions.
cloudSessionSynctrue, falsetrueMirror CLI sessions to Factory web.
diffModegithub, unifiedgithubChoose between split GitHub-style diffs and a single-column view.
completionSoundoff, bell, fx-ok01, fx-ack01, or custom file pathfx-ok01Audio cue when a response finishes.
awaitingInputSoundoff, bell, fx-ok01, fx-ack01, or custom file pathfx-ack01Audio cue when droid is waiting for user input.
soundFocusModealways, focused, unfocusedalwaysWhen to play sound notifications.
commandAllowlistArray of commandsSafe defaults providedCommands that run without extra confirmation.
commandDenylistArray of commandsRestrictive defaults providedCommands that always require confirmation.
includeCoAuthoredByDroidtrue, falsetrueAutomatically append the Droid co-author trailer to commits.
enableDroidShieldtrue, falsetrueEnable secret scanning and git guardrails.
hooksDisabledtrue, falsefalseGlobally disable all hooks execution.
ideAutoConnecttrue, falsefalseAuto-connect to IDE from external terminals.
showThinkingInMainViewtrue, falsefalseDisplay AI thinking/reasoning blocks in the main chat view.
customModelsArray of model configs[]Custom model configurations for BYOK. See BYOK docs.

Model

Set model to a model ID from Available Models. For custom models, see Bring Your Own Key (BYOK).

Reasoning effort

reasoningEffort adjusts how much structured thinking the model performs before replying. Available values depend on the model, but typically include:
  • off / none – disable structured reasoning (fastest).
  • low, medium, high – progressively increase deliberation time for more complex reasoning.
Anthropic models default to off, while GPT-5 starts on medium.

Autonomy level

Use sessionDefaultSettings.interactionMode to choose whether new sessions start in Auto or Spec Mode, and sessionDefaultSettings.autonomyLevel to set the default Autonomy Level. off keeps manual approvals; low, medium, and high pre-authorize work at or below that risk level. sessionDefaultSettings.autonomyMode is deprecated and retained for older configurations.

Diff mode

Control how droid displays code changes:
  • github – Side-by-side, higher fidelity render (recommended).
  • unified – Traditional single-column diff format.

Cloud session sync

When this switch is on, every CLI session is mirrored to Factory web so you can revisit conversations in the browser:
  • true – Sync sessions to the web app.
  • false – Keep sessions local only.

Sound notifications

Configure audio feedback for droid events: Completion sound (completionSound) - plays when a response finishes:
  • fx-ok01 – Built-in completion sound (default) - soft success bloop
  • fx-ack01 – Alternative built-in sound effect - tactile ripple feedback
  • bell – Use the system terminal bell
  • off – No sound notifications
  • Custom path – Provide a file path to your own sound file (e.g., "/path/to/sound.wav")
Awaiting input sound (awaitingInputSound) - plays when droid is waiting for user input. Same options as completion sound, defaults to fx-ack01. Sound focus mode (soundFocusMode) - controls when sounds play:
  • always – Play sounds regardless of window focus (default)
  • focused – Only play sounds when the terminal is focused
  • unfocused – Only play sounds when the terminal is not focused
Access sound settings via /settings or Shift+TabSettings in the TUI.

Hooks

The hooksDisabled setting provides a global toggle to disable all hooks execution without removing your hook configurations:
  • false – Hooks are enabled and will execute normally (default)
  • true – All hooks are disabled globally
You can also toggle this from the /hooks menu or /settings.

IDE auto-connect

The ideAutoConnect setting controls whether droid automatically connects to your IDE when running from external terminals (outside the IDE’s built-in terminal):
  • false – Only auto-connect when running inside IDE terminal (default)
  • true – Auto-connect to IDE from any terminal

Command allowlist & denylist

Use these settings to control which commands droid can execute automatically and which it must never run:
  • commandAllowlist – Commands in this array are treated as safe and run without additional confirmation, regardless of autonomy prompts. Include only low-risk utilities you rely on frequently (for example ls, pwd, dir).
  • commandDenylist – Commands in this array always require confirmation and are typically blocked because they are destructive or unsafe (for example recursive rm, mkfs, or privileged system operations).
Commands that appear in both lists default to the denylist behavior. Any command that is in neither list falls back to the autonomy level you selected for the session.

Example allow/deny configuration

{
  "commandAllowlist": ["ls", "pwd", "dir"],
  "commandDenylist": ["rm -rf /", "mkfs", "shutdown"]
}
Review and update these arrays periodically to match your workflow and security posture, especially when sharing configurations across teams.

Session defaults

Defaults applied when a new session starts. See also sessionDefaultSettings.interactionMode and sessionDefaultSettings.autonomyLevel in the table above.
SettingTypeOptionsDefaultDescription
sessionDefaultSettings.specModeModelstringAny available model IDInherits modelOverride the model used when sessions start in Spec Mode.
sessionDefaultSettings.specModeReasoningEffortstringoff, none, low, medium, highModel defaultReasoning effort applied to the spec model.

Display and UI

Tune how droid renders content in the terminal.
SettingTypeOptionsDefaultDescription
toolResultDisplaystringexpanded, compactexpandedHow tool results are rendered in the transcript.
showTokenUsageIndicatorbooleantrue, falsefalseShow the live token usage indicator at the bottom of the input.
logoAnimationstringonce, always, offonceAnimate the droid logo on startup.
themestringTheme ID (see /themes)System themeColor theme used by the TUI.
overrideTerminalColorsbooleantrue, falsefalseForce droid’s theme to override the terminal’s color scheme.
nerdFontbooleantrue, falsefalseEnable Nerd Font glyphs in the UI (requires a Nerd Font in your terminal).

Additional sound and notification settings

Extends the Sound notifications section with toggles for the bell, per-event focus modes, and subagent activity.
SettingTypeOptionsDefaultDescription
subagentSoundsstringon, offoffPlay sounds for subagent lifecycle events (start, complete, error).

Mission settings

Configure Missions — multi-agent orchestration runs.
SettingTypeOptionsDefaultDescription
missionModelSettings.workerModelstringAny available model IDInheritsDefault model used by mission worker subagents.
missionModelSettings.workerReasoningEffortstringoff, none, low, medium, highModel defaultReasoning effort for mission workers.
missionModelSettings.validationWorkerModelstringAny available model IDInheritsModel used by mission validators (scrutiny / user-testing workers).
missionModelSettings.validationWorkerReasoningEffortstringoff, none, low, medium, highModel defaultReasoning effort for validation workers.
missionModelSettings.skipScrutinybooleantrue, falsefalseSkip scrutiny validation milestones during missions.
missionModelSettings.skipUserTestingbooleantrue, falsefalseSkip user-testing validation milestones during missions.
missionOrchestratorModelstringAny available model IDInheritsModel used by the mission orchestrator.
missionOrchestratorReasoningEffortstringoff, none, low, medium, highModel defaultReasoning effort for the mission orchestrator.
keepSystemAwakeDuringMissionsbooleantrue, falsetruePrevent the OS from sleeping while a mission is running.

Context and compaction

Controls when and how droid compacts the conversation to stay within the model’s context window.
SettingTypeOptionsDefaultDescription
compactionTokenLimitnumberToken countModel-dependentToken threshold that triggers automatic compaction of the current session.
compactionTokenLimitPerModelobject{ "<modelId>": number } map{}Per-model overrides for compactionTokenLimit.
compactionModelModestringsame, <modelId>sameWhich model performs compaction: same uses the current session model, or specify a model ID.

Spec mode settings

Controls the persistent spec store created by Spec Mode.
SettingTypeOptionsDefaultDescription
specSaveDirstringDirectory path~/.factory/specsDirectory where saved specs are written. Supports ~ expansion.

Infrastructure

System-level settings for status line, worktrees, and request timeouts.
SettingTypeOptionsDefaultDescription
statusLineobject{ "command": string, "padding"?: number, "maxRows"?: number }unsetCustom status line configuration. The command is executed and its stdout rendered above the input. Configure interactively with /statusline.
worktreeDirectorystringDirectory path~/.factory/worktreesDefault parent directory for git worktrees created with --worktree / -w.
llmRequestTimeoutnumberMillisecondsProduct defaultTimeout for individual LLM requests before they are aborted.

Enterprise and org-level settings

Enterprise / Org-level. The settings below are typically managed by an organization administrator and pushed to members through the Factory web app or a managed settings.json. Individual users generally do not set these directly.
SettingTypeOptionsDefaultDescription
maxAutonomyLevelstringoff, low, medium, highhighEnterprise. Maximum Autonomy Level any session may use. Higher levels selected by users are clamped.
modelPolicyobject{ "allowedModelIds"?: string[], "blockedModelIds"?: string[], "allowCustomModels"?: boolean, "allowedBaseUrls"?: string[] }unsetEnterprise. Restrict which models members can select, control whether custom models are permitted, and allowlist base URLs for custom model providers.
mcpPolicyobject{ "enabled"?: boolean, "allowlist"?: string[] }unsetEnterprise. Control whether MCP servers can run and which servers are permitted. See MCP.
missionPolicyobject{ "restrictedAccess"?: boolean, "allowedUserIds"?: string[] }unsetEnterprise. Restrict who can launch Missions.
networkPolicyobject{ "allowedIps": string[] }unsetEnterprise. Restrict outbound network access from droid sessions to the specified IPs or CIDR ranges in allowedIps.
sandboxobject{ "enabled"?: boolean, "mode"?: string, "filesystem"?: object, "network"?: object }unsetEnterprise. Sandbox configuration controlling filesystem and network isolation for tool execution.
restrictMemberVisibilitybooleantrue, falsefalseOrg-level. Hide other org members from non-admin users.
restrictApiKeyCreationToManagersbooleantrue, falsefalseOrg-level. Only org managers may create API keys.
sessionRetentionDaysnumber14365Org defaultOrg-level. How long synced session history is retained before deletion.
wikiCloudSyncbooleantrue, falsetrueOrg-level. Sync generated Wiki content to Factory cloud.
managedComputersEnabledbooleantrue, falsefalseEnterprise. Enable Factory-managed remote computers for the org.
byomComputersEnabledbooleantrue, falsefalseEnterprise. Allow members to register their own machines via droid computer register (BYOM).

Example configuration

{
  "model": "claude-opus-4-7",
  "reasoningEffort": "low",
  "diffMode": "github",
  "cloudSessionSync": true,
  "completionSound": "fx-ok01",
  "awaitingInputSound": "fx-ack01",
  "soundFocusMode": "always"
}

Need more?