Skip to main content

Settings File

Bossanova reads global settings from a JSON file on disk:

  • macOS: ~/Library/Application Support/bossanova/settings.json
  • Linux: $XDG_CONFIG_HOME/bossanova/settings.json (defaults to ~/.config/bossanova/settings.json)

The file is optional. When it's absent, defaults apply. Both boss and bossd read the same file.

Bossanova settings view

Example

{
"worktree_base_dir": "/Users/you/work/worktrees",
"default_agent": "claude",
"poll_interval_seconds": 120,
"plugins": [
{
"name": "claude",
"path": "/opt/homebrew/libexec/plugins/bossd-plugin-claude",
"enabled": true,
"config": {
"dangerously_skip_permissions": "true"
}
},
{
"name": "codex",
"path": "/opt/homebrew/libexec/plugins/bossd-plugin-codex",
"enabled": true
},
{
"name": "repair",
"path": "/opt/homebrew/libexec/plugins/bossd-plugin-repair",
"enabled": true
}
],
"repair": {
"skills": { "repair": "boss-repair" },
"cooldown_minutes": 1,
"poll_interval_seconds": 5,
"sweep_interval_minutes": 1
}
}

Cloud-sync settings (orchestrator URL, WorkOS client ID, daemon ID) are configured via environment variables. See Environment overrides below.

Top-level fields

FieldTypeDefaultDescription
worktree_base_dirstring~/.bossanova/worktreesDirectory where per-session git worktrees are created. Auto-created on load.
default_agentstringclaudeName of the default agent plugin used for new sessions.
skills_declinedboolfalseSet after the user declines the one-time skills install prompt so it's not shown again.
poll_interval_secondsint120How often the Terminal UI (TUI) polls for PR display status, in seconds.
pluginsarrayauto-discoveredPlugin binaries to load (see below). If unset, bossd auto-discovers bossd-plugin-* binaries next to its own.
repairobjectdefaults belowRepair plugin configuration.

plugins[] entries

FieldTypeDescription
namestringPlugin name (matches the suffix after bossd-plugin-).
pathstringAbsolute path to the plugin binary.
enabledboolWhen false, the plugin is loaded-but-inert.
versionstringOptional version string, informational.
configobjectPlugin-specific string key/value pairs.

claude plugin config keys

KeyTypeDefaultDescription
dangerously_skip_permissionsstring "true" / "false""false" (omit for default)Pass --dangerously-skip-permissions to the Claude Code CLI invoked by the claude plugin. Off by default. Toggle via boss settings --skip-permissions / --no-skip-permissions, or in the boss TUI settings view.

repair fields

FieldTypeDefaultDescription
skills.repairstringboss-repairSkill invoked to attempt repair.
cooldown_minutesint1Minimum gap between repair attempts on the same session.
poll_interval_secondsint5Poll interval for repair status checks.
sweep_interval_minutesint1How often the plugin sweeps for sessions needing repair.

Environment overrides

Cloud-sync settings (orchestrator URL, WorkOS client ID, daemon ID) are configured exclusively via environment variables. Other settings that have a settings.json field can also be overridden by env var. Precedence (highest wins): environment variable → settings.json → hardcoded default.

boss (TUI / CLI)

VariableNotes
BOSS_WORKOS_CLIENT_IDWorkOS client used by boss login; override when pointing at a staging orchestrator
BOSS_SKIP_SKILLSany non-empty value suppresses the first-run skill-install prompt (persistent equivalent: skills_declined in settings.json)
BOSS_SOCKEToverrides the path to the local bossd Unix-domain socket
BOSS_DAEMON_SKIP_LAUNCHCTLany non-empty value skips launchctl calls in boss daemon install/uninstall/status
BOSS_REPORT_URLoverrides the bug-report submission URL
BOSS_AUTH_E2E_EMAILe2e tests only: pre-seeds an authenticated identity so login flows can be exercised in CI; built only under the e2e build tag

bossd (daemon)

VariableNotes
BOSSD_ORCHESTRATOR_URLURL bossd syncs with (default: https://orchestrator.bossanova.dev); set to "" for local-only mode
BOSSD_DAEMON_IDstable identifier this daemon registers under (defaults to machine hostname); each value creates a separate daemon record, so change carefully
BOSSD_USER_JWTbypass the keychain and pass a WorkOS JWT directly; used in CI

XDG and path variables

VariableWhat it affects
XDG_CONFIG_HOMEWhere settings.json is read from on Linux (macOS uses ~/Library/Application Support/)
XDG_STATE_HOMEWhere rotated log files live
XDG_RUNTIME_DIRWhere the bossd Unix socket lives (override with BOSS_SOCKET)
HOMEUsed to resolve ~/.claude/skills/ and ~/.bossanova/