ConfigurationSettingsSettings reference

Settings keys

Every key Syntic Code reads from its settings files. Where the files live and which one wins is on Settings files. “Policy” means an organization’s managed file may set it (Organization policy).

Core

KeyTypeDefaultPolicyWhat it does
modelstringplatform defaultyesModel for the main conversation.
smallModelstringplatform defaultyesModel for background helper tasks.
fallbackModelstring or list (up to 3)noneyesModels to try when the main one is unavailable.
permissionModedefault, acceptEdits, auto, plan, bypass, dontAskdefault (auto on new installs; auto-edit in a trusted folder when unset)yesThe mode sessions start in. acceptEdits is shown as auto-edit; the older bypassPermissions is migrated to bypass. A project file cannot choose auto or bypass. See Permission modes.
agentstringnonenoRun the main session as this custom agent.
agentsobject {"defaultMaxBudgetUsd": n}noneyesSpend cap in dollars for each sub-agent run whose definition sets no maxBudgetUsd.
outputStylestringdefaultnoOutput style.
envobjectnoneyesEnvironment variables for the session’s commands (trusted folders only).
shellstringyour login shellnoThe shell for commands.
maxTurnsnumber0 (no limit)yesMost agent turns per run.
apiKeyHelpercommandnonenoA command that prints a credential (user settings only).
apiKeystringnonenoA stored API credential. Signing in, the environment or apiKeyHelper are better choices; it is never printed back in full.
apiBaseUrlstringthe Syntic serviceyesSend API requests to a different endpoint.
bashOutputMaxCharsnumber (up to 150000)30000noHow much shell output the model receives before the rest is cut.
languagestringfollows younoLanguage for replies and session titles.

Permissions

KeyTypeWhat it does
permissions.allow / ask / denylist of rulesRun without asking / always ask / refuse. See rules.
permissions.defaultModemodeSame as permissionMode.
permissions.additionalDirectorieslist of pathsExtra folders sessions may work in.
permissions.disableAutoMode"disable" or trueAuto mode cannot be chosen.
permissions.disableBypassPermissionsMode"disable" or trueBypass mode cannot be chosen.
permissions.blockReadsOutsideWorkingDirectoriesboolKeep file reads inside the working folders.
allowManagedPermissionRulesOnlyboolPolicy only: only the policy’s allow rules count.
alwaysAllow / alwaysAsk / alwaysDenylist of rulesOlder flat forms of the three lists.
autoModeobjectallow, soft_deny, hard_deny lists, plus review, reviewReadOnly, classifyAllShell. See auto mode.
sandboxobjectThe shell sandbox: enabled, failIfUnavailable, autoAllowBashIfSandboxed, strictCwd, network, filesystem, excludedCommands, allowUnsandboxedCommands, allowAppleEvents, bwrapPath.
browserAutomationobject{"enabled": true} offers the Browser tool; optional chromePath, userDataDir, headless. User and policy files only; a project cannot turn it on.
computerUseobject{"enabled": true} offers the computer-control tool. User and policy files only.

Hooks

KeyTypeWhat it does
hooksobjectHooks by event. See Hooks.
disableAllHooksboolTurn hooks off (in policy: all hooks).
allowManagedHooksOnlyboolPolicy: only the policy’s hooks run.
allowedHttpHookUrlslist of URL patternsURLs http hooks may call.

MCP, plugins and skills

KeyTypeWhat it does
mcpServersobjectMCP server definitions.
allowedMcpServers / deniedMcpServerslistWhich MCP servers may start (allow list is policy only).
channelsEnabledboolfalse turns MCP channels off (user or policy files).
channelslist of server namesUser settings only: MCP servers allowed to push messages into your session, added to --channels.
allowedChannelServerslistPolicy only: narrows which servers may push messages.
extraKnownMarketplaces (also additionalMarketplaces)objectPlugin marketplaces known by name.
enabledPluginsobjectPolicy: {"plugin@marketplace": false} forces a plugin off.
strictKnownMarketplaces (also allowedMarketplaces), blockedMarketplaceslistWhich marketplaces may be used.
pluginTrustMessagestringPolicy: a note shown after each plugin install.
skillOverridesobjectPer skill: off, user-invocable-only, name-only.
disableSkillShellExecutionboolDo not run inline shell in skills and commands.

Models and reasoning

KeyTypeWhat it does
modelPickerlistModels /model shows, in order (name or {"model", "label"}).
availableModels / deniedModelslist of patternsWhich models can be chosen.
effortLevellevelStarting reasoning effort.
effortByModelobjectSaved effort per model, for example {"Syntic Code": "high"}. Written by /effort; a model with no entry uses effortLevel.
maxEffortLevellevel or per-model objectHighest effort allowed.
maxThinkingTokensnumber (16384)Reasoning budget per turn.
alwaysThinkingEnabledboolfalse starts with reasoning off.
fastModeboolStart in fast mode.
contextWindownumber (200000)Context size assumed for unknown models.
autoContinueAfterUsageLimitboolfalse stops instead of continuing after a usage window resets.
toolSearchobjectOn-demand tool loading per model: {"disabledModels": ["Amara Deep", "amara*"]} sends every tool up front, without ToolSearch loading, for the models named (exact name in any case, or a * pattern). Used only when the service’s model list does not say whether a model supports on-demand loading, and after SYNTIC_TOOLSEARCH_DENY_MODELS. Lists from every settings file are joined.

Memory and context

KeyTypeWhat it does
autoMemoryEnabledbool (true)Auto memory on or off.
autoMemoryUpkeepbool (true)Background saving and tidying of auto memory.
autoMemoryDirectoryabsolute pathWhere auto memory is kept (user and local settings only).
synticMdExcludeslist of patternsMemory files to skip.
includeGitInstructionsboolfalse leaves the built-in git guidance out.
autoCompactbool (true)Automatic compaction.
autoCompactThresholdnumber (0.8)Share of the window that triggers compaction.
autoCompactWindowsobjectPer-model window compaction measures against (set by /autocompact).
promptCacheTtl / subagentPromptCacheTtl"5m" or "1h"How long cached prompts last: main session / subagents.
cleanupPeriodDaysnumberDelete transcripts older than this.
plansDirectorypath (~/.syntic/plans)Where plan files go.

Git and commits

KeyTypeWhat it does
attributionfalse or {"commit": text, "pr": text}The attribution added to commits and pull requests.
includeCoAuthoredBybool (true)Older switch for the commit co-author line.
commitSessionTrailerbool (false)End commits with Syntic-Session: <id> (needs git 2.32+).
worktreeobjectbaseRef (head or fresh) and sparsePaths for new worktrees.
verificationfalse or {"enabled": bool, "maxSeconds": n}After a substantial turn, a read-only check compares the change with your request; its verdict is the turn’s Checked: line. On by default, 120 seconds at most; false turns it off.

Sessions

KeyTypeWhat it does
crossSessionInboundask, auto, refuseWhat happens to messages from your other sessions.
sessionMessagesAutoRunboolSame as crossSessionInbound: auto.
dialogExpirysecondsDismiss a waiting message after this long.
disableDeepLinksboolRefuse syntic-cli:// links.
disableDeepLinkRegistrationboolDo not register the link handler.

Interface

KeyTypeDefaultWhat it does
themetheme nameautoInterface colors: auto, dark, light, the color-blind and 16-color themes, and others listed on Themes.
syntaxThemestringfollows themeCode block colors.
themeColorsobjectnoneOverride individual colors.
rendererinline, fullscreeninlineDrawing mode (from the next start).
verboseboolfalseShow tool results in full.
vimModeboolfalseVim keys in the prompt.
vimInsertModeRemapsobjectnoneTwo-key sequences that leave insert mode.
vimRegisterPersistbooltrueKeep the vim register across sessions.
statusLine{"command": …}noneYour status line script.
subagentStatusLine{"command": …}noneA script for each running subagent’s row.
showTurnDurationbooltrueShow how long each reply took.
showThinkingSummaries, expandThinkingboolfalseShow reasoning in full.
respondToBashCommandsboolfalseLet the agent react to your ! commands right away.
screenReaderboolfalseScreen reader mode.
prefersReducedMotionboolfalseCalmer spinner, no animations.
notificationsEnabledbooltrueNotifications when long turns finish.
terminalProgressBarEnabledbooltrueBusy indicator on the terminal tab.
promptSuggestionEnabledbooltrueSuggest a next prompt in the empty prompt box.
autoScrollEnabledbooltrueFollow new output.
timeFormat12h, 24h12hClock format.
maxProseWidthnumber (≥ 40)full widthWidest reply text runs.
scrollSpeed0.25–101Mouse wheel speed.
wheelAccelerationbooltrueFaster scrolling on quick flicks.
respectGitignorebooltrueLeave ignored files out of @ suggestions.
fileSuggestion{"type": "command", "command": …}built inYour own @ file suggestions.
copyFullResponseboolfalse/copy takes the whole reply without asking.
spellCheckEnabledbooltrueUnderline misspellings (needs aspell or hunspell).
spinnerTipsEnabled, spinnerTips, spinnerVerbsSpinner tips and words.
spinnerTipsOverrideobjectnoneYour organization’s tips: tips (text, or {"text", "priority"}), tipsFile (one tip per line, # for comments), label (a prefix), excludeDefault (hide built-in tips).
showAgentsViewByDefaultboolfalseOpen the agents view when background agents start.
showClearContextOnPlanAcceptboolfalseOffer “clear context” when approving a plan.
workflowSizeGuidelinesmall, medium, large, unrestrictedmediumAdvice on workflow size.
prStatusFooterEnabledboolfalsePull request state in the footer (needs gh).
prUrlTemplatestringnoneWhere the pull request badge links.
footerLinksRegexeslistnoneFooter badges from the branch name (up to 3).
feedbackSurveybooltrueThe occasional one-question survey (answers stay local).
autoConnectIdebooltrueConnect to your editor when started in its terminal.
companyAnnouncementslist of stringsnoneMessages shown at start, one per day.

Organization policy only

KeyWhat it does
minimumVersion / maximumVersionVersions outside the range do not start a session.
forceLoginOrgUUIDOnly sign-ins to this organization are accepted.
forceLoginMethodsubscription or console: the only sign-in method allowed. A sign-in that asks for the other is refused with a message naming the right one. Read from policy files and your user file, never from a project.
processWrapperA launcher (absolute path, as a string or a list of arguments) that every shell command, hook and MCP server is started through, for example an auditing tool. Policy only.
modelPricingYour organization’s rates for cost figures.
requireRemoteManagedSettingsRefuse to start without fresh service-delivered settings.
parentSettingsBehaviorHow settings from a program that embeds Syntic Code combine with the policy.

Kept by Syntic Code

Syntic Code writes these itself. There is no need to set them by hand.

KeyWhat it records
hasCompletedOnboardingFirst-run setup is finished.
loginMethodThe sign-in method you chose last, so signing in again does not ask.
terminalSetupThe terminal key setup has been applied.
schemaVersionThe settings format version, updated when settings are migrated.

Old names

These older keys are still understood and moved to their new names when settings are migrated: allowedTools → alwaysAllow, deniedTools → alwaysDeny, maxThinking → maxThinkingTokens, compactThreshold → autoCompactThreshold. A permissions block with allow, ask, deny and defaultMode is read as described above.

Other files

FileHolds
~/.syntic/keybindings.jsonYour key bindings.
~/.syntic/update.jsonchannel and checkForUpdates.
.mcp.json, ~/.syntic/.mcp.jsonMCP servers.
.syntic/hooks.json, ~/.syntic/hooks.jsonHooks kept apart from settings.
.syntic/permissions.json, ~/.syntic/permissions.jsonRules kept apart from settings (allow, ask, deny).