Accessing settings
To configure droid settings:- Run
droid - Enter
/settings - Adjust your preferences interactively
Where settings live
If the file doesn’t exist, it’s created with defaults the first time you run droid.
Local overrides
You can create asettings.local.json alongside settings.json in any .factory/ folder:
~/.factory/settings.local.json(user-level)<project>/.factory/settings.local.json(project-level)
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.jsonandsettings.local.jsonfor 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
Model
Setmodel 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.
off, while GPT-5 starts on medium.
Autonomy level
UsesessionDefaultSettings.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 bloopfx-ack01– Alternative built-in sound effect - tactile ripple feedbackbell– Use the system terminal belloff– No sound notifications- Custom path – Provide a file path to your own sound file (e.g.,
"/path/to/sound.wav")
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 focusedunfocused– Only play sounds when the terminal is not focused
Access sound settings via
/settings or Shift+Tab → Settings in the TUI.Hooks
ThehooksDisabled 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
/hooks menu or /settings.
IDE auto-connect
TheideAutoConnect 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 & blocklist
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 examplels,pwd,dir).commandDenylist– Commands in this array always require confirmation and are typically blocked because they are destructive or unsafe (for example recursiverm,mkfs, or privileged system operations). A denied command can still be run if you explicitly approve it.commandBlocklist– Commands in this array can never run. Unlike the denylist, there is no prompt and no way to approve them: the block applies even under full autonomy, auto-run, or--skip-permissions-unsafe. droid also resolves the actual program being invoked, so a blocked command cannot be slipped through with a wrapper shell, an absolute path, quoting tricks, or command substitution.
Example allow/deny/block configuration
commandBlocklist for commands that should be hard-stopped regardless of approvals; use commandDenylist for commands that are allowed only after explicit confirmation. 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 alsosessionDefaultSettings.interactionMode and sessionDefaultSettings.autonomyLevel in the table above.
Display and UI
Tune how droid renders content in the terminal.Additional sound and notification settings
Extends the Sound notifications section with toggles for the bell, per-event focus modes, and subagent activity.Mission settings
Configure Missions — multi-agent orchestration runs.Subagent settings
Configure subagents spawned by the Task tool. These appear in the Subagents tab of/settings.
Subagent autonomy level
subagentAutonomyLevel controls how much subagents can do without approval:
inherit– Subagents use the parent session’s autonomy level (default).off– Subagents require manual approval for every action.low,medium,high– Pre-authorize subagent work at or below that risk level.
maxAutonomyLevel, so it can never exceed the enterprise cap. Mission workers do not use this setting.
Context and compaction
Controls when and how droid compacts the conversation to stay within the model’s context window.Spec mode settings
Controls the persistent spec store created by Spec Mode.Infrastructure
System-level settings for status line, worktrees, and request timeouts.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.Example configuration
Need more?
- CLI Overview – see the main TUI workflow
- CLI Reference – command flags & options
- IDE Integrations – editor-specific setup
- Custom models & BYOK - add custom models and API keys
