ReferenceEnvironment variables

Environment variables

Environment variables tune Syntic Code for one shell, one CI job or one machine. Set them before starting syntic (SYNTIC_MODEL="Syntic Code Fast" syntic), or put them in the env block of a settings file.

How values are read. On/off switches accept 1, true, yes, on and 0, false, no, off, in any case. An empty value counts as unset. Times and sizes are whole numbers in the unit shown; an invalid number falls back to the default. Rows that accept fewer spellings say so.

A project’s settings file cannot set variables that change credentials, endpoints, folders, proxies, certificates or updates. Those are dropped with a warning, so a repository cannot redirect your account.

Sign-in and connection

VariableEffectDefault
SYNTIC_API_KEYA credential that wins over every other source. Never passed to child processes.
SYNTIC_OAUTH_REFRESH_TOKENSign in without a browser (CI). Swapped for an access token at start.
SYNTIC_NO_BROWSERDo not open a browser for sign-in; show the address and a paste flow instead.off
SYNTIC_ACCOUNT_EMAILThe email shown in the header and /status.your saved email
SYNTIC_API_TIMEOUT_MSHow long to wait for a response.300 s
SYNTIC_MAX_RETRIESRetries for failed or rate-limited requests (up to 50; 0 turns retries off).3
SYNTIC_RETRY_BUDGETMost retries of any kind in one request.10
SYNTIC_RETRY_WAIT_LIMIT_SECSUnattended runs only: most total time spent waiting between retries.600
SYNTIC_STREAM_IDLE_TIMEOUT_SECSSeconds without data before a streamed reply counts as stalled and is retried (0 off).90
SYNTIC_HTTPS_PROXY, SYNTIC_NO_PROXYProxy for API traffic, and hosts that skip it. HTTPS_PROXY and HTTP_PROXY are honored too.
SYNTIC_EXTRA_CA_CERTSExtra CA certificates (a PEM bundle).
SYNTIC_CLIENT_CERT, SYNTIC_CLIENT_KEYA client certificate and key for mutual TLS.

Models and reasoning

VariableEffectDefault
SYNTIC_MODELMain model (the --model flag still wins).settings or platform default
SYNTIC_SMALL_MODELModel for background helper tasks.platform default
SYNTIC_ALIAS_<ALIAS>_MODELPoint a model alias (default, mini, long) at another model, for example SYNTIC_ALIAS_MINI_MODEL.
SYNTIC_SUBAGENT_MODELDefault model for subagents.
SYNTIC_SUBAGENT_MODEL_FORCEMake every subagent use SYNTIC_SUBAGENT_MODEL.off
SYNTIC_MAX_THINKING_TOKENS (or MAX_THINKING_TOKENS)Reasoning budget.16384
SYNTIC_MAX_TURNSMost agent turns in one run (0 = no limit).0
SYNTIC_IMMEDIATE_COMMAND/model, /fast and /effort apply at once, even mid-reply.off
SYNTIC_ENABLE_ADVISOR, SYNTIC_ADVISOR_MODELOffer the Advisor tool, and the model it asks.off, main model
SYNTIC_DISABLE_INTERLEAVED_THINKINGReason only at the start of a turn, not after every tool result.off

Permissions and safety

VariableEffectDefault
SYNTIC_PERMISSION_MODEStarting mode: default, acceptEdits, auto, plan, bypassPermissions, dontAsk.default
SYNTIC_DISABLE_BYPASS_PERMISSIONSRefuse bypass mode.off
SYNTIC_AUTO_MODE_REVIEW0 turns off auto mode’s model review.on
SYNTIC_UNTRUSTED_WORKSPACETreat the folder as untrusted: no project hooks, no project allow rules.off
SYNTIC_RESTRICTEDLocked-down session (same as --restricted).off
SYNTIC_SAFE_MODETroubleshooting start (same as --safe-mode).off
SYNTIC_BAREBare session (same as --bare).off
SYNTIC_SIMPLECore tools only, no MCP, hooks or memory files.off

Interface

VariableEffectDefault
SYNTIC_THEME, SYNTIC_SYNTAX_THEMEInterface and code-block themes.dark
SYNTIC_OUTPUT_STYLEOutput style.default
SYNTIC_RENDERERinline or fullscreen (flags win).inline
SYNTIC_NO_ALT_SCREEN (or NO_FLICKER)Always draw inline.off
SYNTIC_SCREEN_READER (or SYNTIC_ACCESSIBILITY, SYNTIC_CODE_ACCESSIBILITY)Screen reader mode.off
SYNTIC_VIM_MODEVim keys in the prompt.off
SYNTIC_TMUX_CONTROL_MODETell Syntic Code it runs inside tmux control mode (iTerm2 integration) when it cannot detect it.detected
SYNTIC_VERBOSEVerbose output.off
SYNTIC_KEY_PROTOCOLKeyboard protocol: kitty, or legacy.detected
SYNTIC_CLIENT_PLATFORMWhich keyboard hints to show: mac, linux, windows.detected
SYNTIC_DISABLE_MOUSELeave the mouse to your terminal (any value other than empty, 0 or false). Inline: native selection and scrollback come back, with no copy notice and no wheel-opens-transcript. Full screen: no mouse.mouse on
SYNTIC_SCROLL_SPEED, SYNTIC_SCROLL_ACCELERATIONMouse-wheel speed and acceleration.1, on
SYNTIC_HYPERLINKSExactly 0, false or off turns clickable links off.on
SYNTIC_SYNTAX_HIGHLIGHTSyntax colors in code blocks.on
SYNTIC_SYNC_OUTPUTDraw each frame as one update (turn off if your terminal flickers).on
SYNTIC_DISABLE_TERMINAL_TITLEDo not set the terminal tab title.off
SYNTIC_NOTIF_CHANNELNotifications: auto, iterm2, iterm2_with_bell, terminal_bell, kitty, ghostty, notifications_disabled.auto
SYNTIC_HIDE_CWDLeave the folder out of the welcome header.off
SYNTIC_DEMO_MODEHide your email, organization and name (for screen sharing).off
SYNTIC_SHOW_TURN_DURATION0 hides how long each reply took.on
SYNTIC_SPINNER_VERBS, SYNTIC_SPINNER_VERBS_MODEExtra spinner words; replace to replace the built-in ones.
SYNTIC_AWAY_RECAPRecap card when you come back after 5+ minutes.on
SYNTIC_MODEL_SUGGESTIONSLet the small model suggest your next prompt.on
SYNTIC_AUTO_TITLEAutomatic session titles.on
SYNTIC_DISABLE_FEEDBACK_SURVEYNo in-session rating question.off
SYNTIC_SETTING_<KEY>Set any settings key, for example SYNTIC_SETTING_AUTO_COMPACT_THRESHOLD=0.7.
NO_COLORAny value turns color off.
VISUAL, EDITOREditor for Ctrl+G (arguments allowed, such as code --wait).vi

Memory and context

VariableEffectDefault
SYNTIC_DISABLE_MEMORYLoad no memory files at all.off
SYNTIC_DISABLE_AUTO_MEMORYTurn auto memory off.off
SYNTIC_AUTO_MEMORY_DIRWhere auto memory is kept (absolute path).project data folder
SYNTIC_EXTRACT_MEMORIESBackground memory upkeep.on
SYNTIC_MAX_MEMORY_CHARSMost characters of memory sent.40000
SYNTIC_MEMORY_EXCLUDESMemory files to skip (patterns separated by :, ; on Windows).
SYNTIC_CONTEXT_DIRSExtra working folders (--add-dir adds to these).
SYNTIC_AUTO_COMPACT, SYNTIC_DISABLE_AUTO_COMPACT (or DISABLE_AUTOCOMPACT)Automatic compaction on or off.on
SYNTIC_AUTO_COMPACT_THRESHOLDHow full before compaction (0.8 or 80, kept between 0.3 and 0.98).0.8
SYNTIC_CONTEXT_WINDOWWindow size for models Syntic Code does not know.200000
SYNTIC_DISABLE_GIT_INSTRUCTIONSLeave the built-in git guidance out of the system prompt.off
SYNTIC_ENABLE_PROMPT_CACHING_1H, SYNTIC_FORCE_PROMPT_CACHING_5MOne-hour cache, or force the five-minute cache.off

Tools and shell

VariableEffectDefault
SYNTIC_SHELLThe shell for commands (same as the shell setting).your login shell
SYNTIC_SHELL_PREFIX (or SHELL_PREFIX)A command put in front of every shell command, such as firejail --net=none.
SYNTIC_TMPDIRTemporary folder for Syntic Code and the commands it runs.system temp
SYNTIC_BASH_MAINTAIN_PROJECT_WORKING_DIRStart every command in the project folder instead of where the last cd left it.off
SYNTIC_SHELL_SNAPSHOT0 stops capturing your shell’s aliases and functions.on
SYNTIC_BASH_NO_LOGIN1 captures the shell snapshot without starting a login shell (faster when your login files are slow).off
SYNTIC_KILL_GRACE_MSHow long a stopped background command gets to exit before it is killed (up to 30000).1000
SYNTIC_BG_UNATTENDED_TIMEOUT_SECS-p runs: longest a background command may run when nobody is watching.1800
SYNTIC_BASH_MEMORY_LIMIT_MBLinux: memory cap for each command (uses systemd-run).none
SYNTIC_GIT_BASH_PATHWindows: the Git Bash bash.exe to use.found automatically
SYNTIC_BASH_SANDBOX, SYNTIC_BASH_SANDBOX_NET, SYNTIC_BASH_SANDBOX_EXCLUDED, SYNTIC_BASH_ALLOW_UNSANDBOXEDShell sandbox controls.off
BASH_DEFAULT_TIMEOUT_MS, BASH_MAX_TIMEOUT_MSDefault and longest timeout for a command.120000, 600000
BASH_MAX_OUTPUT_LENGTHCharacters of command output the model sees (up to 150000).30000
SYNTIC_DISABLE_BACKGROUND_TASKSNo background commands; Ctrl+B is ignored.off
SYNTIC_BG_OUTPUT_CAP_MBStop a background command once its output passes this size.64
SYNTIC_BG_STALL_SECSTell the agent a background command looks stuck waiting for input.45
SYNTIC_FILE_READ_MAX_OUTPUT_TOKENSMost tokens one file read returns.25000
SYNTIC_DISABLE_WEBFETCH, SYNTIC_WEBFETCH_BLOCKED_HOSTSRemove the web fetch tool, or block hosts.
SYNTIC_WEBFETCH_DEADLINE_MS, SYNTIC_WEBFETCH_CACHE_TTL_MSTime limit and cache lifetime for fetches.30 s, 15 min
SYNTIC_MAX_WEB_SEARCHES_PER_SESSIONWeb search limit per session (8 per turn is fixed).200
BRAVE_SEARCH_API_KEYUse Brave Search for web search (otherwise DuckDuckGo).
ENABLE_TOOL_SEARCHLoad tool descriptions on demand: always, never, auto, auto:N%.auto:10%
SYNTIC_TOOLSEARCH_DENY_MODELS (older name: SYNTIC_TOOL_SEARCH_MODEL_DENYLIST)Models (names or * patterns, comma-separated) that get every tool up front instead of loading on demand.
SYNTIC_STREAMING_TOOLS0 stops read-only tools from starting while a reply is still streaming; every call then waits for the reply to finish.on
SYNTIC_AGENT_STAGGER_MSDelay between subagents of the same type started together, so they do not all hit the service at once (0 off, at most 10000).1500
SYNTIC_TURN_VERIFIER0 turns off the end-of-turn check for this process.on
SYNTIC_DISABLE_AGENTSRemove the agent, task, schedule and worktree tools.off
SYNTIC_DISABLE_REPL, SYNTIC_DISABLE_STRUCTURED_OUTPUTRemove those tools.off
SYNTIC_MAX_SUBAGENT_DEPTH, SYNTIC_MAX_CONCURRENT_SUBAGENTS, SYNTIC_SUBAGENT_STALL_SECSSubagent limits.3, 20, 600
SYNTIC_WORKFLOW_MAX_CONCURRENT_AGENTSRaises the cap on workflow steps running at once (1 to 256). A workflow runs 4 steps at a time unless it asks for more, up to this cap.16
SYNTIC_CRON_FILE, SYNTIC_PLANS_DIRWhere schedules and plans are saved.~/.syntic/…
SYNTIC_TODO_FILEA JSON to-do file the agent is reminded about.
SYNTIC_FEEDBACK_DRAFTS0 stops the agent from preparing feedback drafts for /feedback.on
SYNTIC_SETTINGS_FILEThe settings file the Config tool reads and writes.~/.syntic/settings.json

Hooks, skills, plugins, MCP and editors

VariableEffectDefault
SYNTIC_DISABLE_HOOKSNo hooks at all.off
SYNTIC_STOP_HOOK_BLOCK_CAPHow many times in a row Stop hooks may send the agent back.8
SYNTIC_SKILLS_BARE, SYNTIC_SKILLS_PLUGIN_ONLYNo skills at all, or plugin skills only.off
SYNTIC_SKILLS_DISABLE_PROJECT, SYNTIC_SKILLS_DISABLE_USER, SYNTIC_DISABLE_POLICY_SKILLSSkip project, user or organization skills.off
SYNTIC_MANAGED_SKILLS_DIRAn extra folder of organization skills.
SYNTIC_SKILL_LISTING_CHAR_BUDGETCharacters the skill list may use (0 = names only).about 4% of the window
SYNTIC_SKILL_WATCH0 stops watching skill files for changes.on
SYNTIC_PLUGIN_DIRS, SYNTIC_PLUGIN_SEED_DIRLoad plugins from folders for a session, or on every session.
SYNTIC_PLUGIN_AUTO_UPDATEMarketplace refresh: off, on/force (every start), unset (daily).daily
SYNTIC_PLUGIN_GIT_PROTOCOLssh clones GitHub sources over SSH.https
SYNTIC_PLUGIN_LOCKDOWN, SYNTIC_TRUSTED_PLUGINSOnly trusted plugins load; add names to the trusted list.off
SYNTIC_DISABLE_MCPStart no MCP servers.off
SYNTIC_MCP_TIMEOUTTime each server gets to start.30 s
MCP_TIMEOUTMilliseconds an MCP server gets to answer its handshake and quick requests.30000
MCP_CONNECTION_NONBLOCKING-p runs: do not wait for slow MCP servers. Servers ready within the short window bring their tools; the rest sit out this run. Interactive sessions always work this way.off
MCP_CONNECT_TIMEOUT_MSThat short window, in milliseconds.5000
SYNTIC_MCP_BACKGROUND_AFTER_SECSWhen a long MCP call moves to the background (0 never).120
SYNTIC_MCP_TOOL_CACHERemember servers’ tool lists between starts.on
SYNTIC_MCP_LEGACY_PROTOCOLOffer the older MCP protocol version to servers that need it.off
SYNTIC_MCP_TOOL_IDLE_TIMEOUT, MCP_TOOL_TIMEOUTLimits for remote and all MCP tool calls.300 s, none
SYNTIC_MCP_MAX_DESCRIPTION_CHARSLongest MCP tool description kept.2048
SYNTIC_MCP_OAUTH_CALLBACK_PORTPort for MCP sign-in.random
SYNTIC_WINDOWS_HOMEWSL: the Windows profile folder (as a WSL path) where editors leave their connection files.found automatically
SYNTIC_IDE_AUTOCONNECT, SYNTIC_IDE_AUTORECONNECTConnect to your editor at start, and reconnect after drops.on in an editor terminal
SYNTIC_DISABLE_MODSKeep every mod off.off

Sessions and background runs

VariableEffectDefault
SYNTIC_CONFIG_DIRYour user folder.~/.syntic
SYNTIC_DATA_DIRWhere transcripts, background-run records and usage are kept.system data folder
SYNTIC_SKIP_SESSION_PERSISTENCE (or SYNTIC_DISABLE_SESSION_PERSISTENCE)Save no transcripts, prompt history or edit backups.off
SYNTIC_SKIP_PROMPT_HISTORYKeep prompts out of ↑ history.off
SYNTIC_PROJECT_DIR_NAMEFolder name for this project’s transcripts.from the path
SYNTIC_RESUME_INTERRUPTED_TURNWhen resuming, rerun a turn that never finished.off
SYNTIC_EDIT_BACKUPS_PER_FILE, SYNTIC_EDIT_BACKUPS_MAX_MBRewind backup limits.10, 200
SYNTIC_BG_AGENT_WAIT_SECSIn -p runs, how long to wait for background agents before stopping them.600
SYNTIC_FORWARD_SUBAGENT_TEXTstream-json: include subagents’ text.off
SYNTIC_EXIT_AFTER_STOP_DELAYstream-json sessions exit after this long idle (ms).never
SYNTIC_SYSTEM_PROMPT_SNAPSHOToff rebuilds the system prompt every turn (same as --system-prompt-snapshot off).on
SYNTIC_EXCLUDE_DYNAMIC_PROMPT_SECTIONSKeep machine-specific details out of the system prompt (same as --exclude-dynamic-system-prompt-sections).off
SYNTIC_SDK_MANAGED_SETTINGSA JSON object of managed settings from a program that embeds Syntic Code. Applies only when the machine has no administrator policy, unless the policy sets parentSettingsBehavior to merge.
SYNTIC_TIMING_LOGWrite start-up timing marks to this file, to find out what makes a start slow.
SYNTIC_GATEWAY_HINT_HEADERSAdd request-class headers (no content) for proxies.off

Updates

VariableEffectDefault
SYNTIC_DISABLE_UPDATESTurn off every update path, including syntic update.off
SYNTIC_DISABLE_AUTOUPDATER (or DISABLE_AUTOUPDATER, SYNTIC_DISABLE_UPDATE_CHECK)Turn off the background check only.off
SYNTIC_UPDATE_CHANNELstable or latest.stable
SYNTIC_RELEASE_BASE_URL, SYNTIC_UPDATE_MANIFEST_URLUse a release mirror.
SYNTIC_UPDATE_PUBLIC_KEY, SYNTIC_UPDATE_METADATA_KEYSigning keys to check a release mirror’s downloads against.built in
SYNTIC_SKIP_VERSION_GATEStart even below the minimum supported version, for one run.off

Privacy and telemetry

VariableEffectDefault
SYNTIC_PRIVACYstandard, essential or disabled.standard
SYNTIC_OFFLINESame as SYNTIC_PRIVACY=disabled.off
SYNTIC_DISABLE_NONESSENTIAL_TRAFFICSame as SYNTIC_PRIVACY=essential.off
SYNTIC_TELEMETRY (or DO_NOT_TRACK)Opt out of telemetry.
SYNTIC_OTEL_MAX_CONTENT_CHARSLongest prompt or tool text included in exported logs, when content logging is on.2048
SYNTIC_PROMETHEUS_FILEAlso write metrics in Prometheus text format to this file.
SYNTIC_PROMETHEUS_ALLOW_REMOTEAllow the Prometheus endpoint to listen on an address other machines can reach.off
SYNTIC_ENABLE_TELEMETRY and OTEL_*OpenTelemetry export; see Privacy & network.off

Variables Syntic Code sets

Commands, hooks and MCP servers started by Syntic Code can read these:

VariableSet forValue
SYNTIC_CODEShell commands, local MCP servers1
AI_AGENTShell commandssyntic-code
SYNTIC_SESSION_IDHooks, shell commands, local MCP serversThe session id.
SYNTIC_PROJECT_DIRHooks, local MCP serversThe project folder.
SYNTIC_EFFORTHooks, shell commandsThe effort level, when set.
SYNTIC_PLUGIN_ROOT, SYNTIC_PLUGIN_DATA, SYNTIC_USER_CONFIG_<KEY>Plugin hooks and serversThe plugin’s folder, data folder and options.
SYNTIC_MOD_NAME, SYNTIC_MOD_DIR, SYNTIC_MOD_DATA, SYNTIC_MOD_PROTOCOLModsThe mod’s details.
SYNTIC_BACKGROUND_IDA background session’s processIts run id.
SYNTIC_MCP_SERVER_NAME, SYNTIC_MCP_SERVER_URLAn MCP server’s headersHelper commandWhich server the headers are for, so one script can serve several servers.
SYNTIC_WORKTREE_TMUXA --worktree --tmux session inside tmux1, so the session does not start tmux again.

Starting an interactive syntic where SYNTIC_CODE=1 is set is refused, so sessions do not nest by accident; -p runs are allowed. Credentials such as SYNTIC_API_KEY are removed from every child process’s environment.