Settings
A lookup-oriented list of every key Friday persists in its user preferences file. For an introduction to how settings work, see Settings.
Where settings live
- Path:
~/.friday/.user_preferences.yaml. Note the leading dot: this is a hidden file.ls ~/.fridaywithout-awon't show it. - Format: YAML. Friday loads it at startup and rewrites it whenever you change a setting through the UI.
- Override location: set
$FRIDAY_HOMEto use a different parent directory. Default is~/.friday. See Environment variables. - How to edit:
- Recommended: run
/settingsinside Friday and pick the setting from the menu. - Manual: edit the YAML file directly. Quit Friday first; a running session can overwrite your edits on its next save.
- Recommended: run
- Scope: most keys apply globally. A handful are per-project under
working_directory_mappings.
Example
A minimal .user_preferences.yaml:
agent_model: claude-sonnet-4-6
working_style: COLLABORATIVE
approval_mode: FIVE_X
conversation_chime: glass
editor: vscode
prevent_sleep_enabled: true
working_directory_mappings:
/Users/you/code/my-project:
base_branch: develop
Top-level keys
agent_model
- Type: string
- Default:
claude-sonnet-4-6 - Accepted values:
claude-sonnet-4-6,gpt-5.4 - Effect: model used by Dispatch and worker threads. The code-review subagent uses the opposite provider for an independent cross-provider review.
- Concept: Agent Model.
working_style
- Type: string (uppercase enum name)
- Default:
COLLABORATIVE - Accepted values:
COLLABORATIVE,SUPERVISED,AUTONOMOUS - Effect: shapes how the agent communicates. Collaborative asks clarifying questions; Supervised plans then executes; Autonomous keeps going on best judgment. Also controls runtime gates like the accept-thread modal.
- Concept: Working style.
approval_mode
- Type: string (uppercase enum name)
- Default:
FIVE_X - Accepted values:
TWO_X,FIVE_X,TEN_X - Effect: how much Friday auto-approves.
TWO_Xasks before every command.FIVE_Xauto-runs bash but asks for git commits/pushes/PRs.TEN_Xauto-runs everything. - CLI override:
friday --2x | --5x | --10x(session-only; doesn't write to the file). Autostart (--prompt) defaults toTEN_X. - Concept: Permissions and approval modes.
conversation_chime
- Type: string
- Default:
off - Accepted values:
off,glass,ping,funk - Effect: plays an audio notification whenever Friday is waiting for your input.
- Concept: Conversation chime.
prevent_sleep_enabled
- Type: boolean
- Default:
true - Effect: while the agent is processing, Friday calls
caffeinateto keep the machine awake. macOS only. - Concept: Prevent sleep.
auto_update_enabled
- Type: boolean
- Default:
false - Effect: when on, Friday auto-updates on launch if a new release is available. When off, you update manually with
friday --updateor the/updatecommand.
post_conversation_review_enabled
- Type: boolean
- Default:
false - Effect: after the agent finishes code modifications, Friday automatically reviews its own diff and removes anything that doesn't directly address the task.
- Concept: Self review.
editor
- Type: string
- Default:
vim - Effect: the external editor Friday opens for
/diffand similar commands. Supplied as a command name.
theme_mode
- Type: string
- Default:
textual-dark - Effect: Textual theme name. UI only.
blocklist
- Type: dict mapping tool name to list of glob patterns
- Default:
{} - Effect: any invocation of the named tool whose argument matches one of these patterns triggers a confirmation prompt regardless of approval mode. Currently scoped per tool; the most common entry is
Bash. - Example:
blocklist: Bash: - "rm -rf *" - "sudo *" - Concept: Permissions and approval modes.
enabled_plugins
- Type: dict mapping plugin id to boolean
- Default:
{} - Effect: which plugins are enabled. Keys are
<plugin_id>@<marketplace_name>. Set through/plugin-marketplace, not by hand. - Concept: Plugins and marketplaces.
mcp_instances
- Type: dict
- Default:
{} - Effect: persisted OAuth state and configuration for each MCP server you've connected. Managed through
/mcp; don't edit by hand. - Concept: MCP servers.
user_defined_mcp_servers
- Type: dict
- Default:
{} - Effect: MCP server definitions you've added beyond the built-in marketplace entries.
- Concept: MCP servers.
working_directory_mappings
- Type: dict keyed by absolute project path
- Default:
{} - Effect: holds per-project overrides. Each value is a dict of project-scoped keys (see below).
Sub-keys (under each <absolute-path>):
base_branch: string. The branch Friday uses as the PR target and the reference for "what's on this branch" (git log <base>..<current>). Set with/base-branch. Default: whatever Friday detects as the project's default branch.worktree_sync: list of{path, strategy}dicts. Files or directories to copy or symlink into each new worker worktree. See Worktree file sync.mcp: dict mapping MCP server name to an instance label. Picks which MCP instance is active for this project.
Example:
working_directory_mappings:
/Users/you/code/api:
base_branch: develop
worktree_sync:
- path: .env
strategy: copy
- path: node_modules
strategy: symlink
/Users/you/code/web:
base_branch: main
last_known_stable_version, last_known_beta_version
- Type: string or null
- Default: null
- Effect: internal bookkeeping for the update detector. Don't edit by hand.
Settings that are not in this file
- API keys: not stored here. Friday's proxy auth uses
gh auth token, so authenticating withgh auth loginis the credential path. See Installation. agents.md: project rules live in the repo, not in user preferences. See agents.md and project rules.- CLI flags:
--cowboy,--2x,--base-path,--prompt, etc. apply to one session only and don't write to the file. See CLI flags.
Common gotchas
- The file is hidden:
~/.friday/.user_preferences.yaml. Usels -a ~/.fridayto see it, or open by full path. - Enum values are uppercase names, not lowercase values.
working_style: COLLABORATIVE, notcollaborative. Same forapproval_mode. The mapping isEnumMember.name, notEnumMember.value. - Paths under
working_directory_mappingsmust be absolute. Relative paths or~shorthand won't match. - Booleans are YAML booleans (
true/false), not strings. - Quit Friday before editing by hand. A running session may overwrite your edits on its next save.
- Unknown or misspelled keys are ignored, not warned about. After a manual edit, confirm via
/settingsthat the change took.
Read next
- Settings: overview and how to change settings.
- File and directory layout: where the preferences file lives alongside checkpoints, workspaces, and snapshots.
- Environment variables: env vars that influence Friday at launch.
- Concept pages: Agent model, Working style, Permissions, Self review, Conversation chime, Prevent sleep, Worktree file sync, Branches.