ConfigurationModel and responsesModels and reasoning

Models & reasoning

Pick which Syntic model does the work, how hard it thinks, and what happens when a model is busy. Which models you can choose depends on your plan; see Plans & models.

Choose the model

HowLasts
/model, highlight a row, EnterSaved as your default.
/model, highlight a row, s (or /model <name> --session)This session only.
Alt+POpens the same picker.
syntic --model "Syntic Code Fast"This run.
SYNTIC_MODELEvery run with that variable.
"model" in a settings fileEvery session that reads it.

When several are set, the flag wins, then the environment variable, then settings, then the platform default.

The model list comes from the platform

/model lists the models the Syntic platform offers for Syntic Code, not a list built into the program. Each entry shows its description, context window, the plan tier it needs and, when known, its price. A model your plan does not include is still listed, marked with the plan it needs, as in (needs the <plan> plan), so you can see what an upgrade would add; the platform only serves models your plan includes.

The list is fetched in the background at start and refreshed while you work. If it arrives after the session started, the next turn picks up the model’s real context window. The header and the agent’s own idea of which model it is follow /model straight away.

Limit which models can be chosen

SettingEffect
availableModelsOnly these names can be chosen. A trailing * matches any ending ("Syntic Code*"). The strongest settings file that sets it wins, so managed policy has the last word.
deniedModelsNames that can never be chosen. Entries from every file add up.
modelPickerThe models /model lists, in order: plain names, or {"model": "...", "label": "..."} to show your own label.

Names match without regard to case.

{
  "availableModels": ["Syntic Code*"],
  "deniedModels": ["Amara S2"],
  "modelPicker": ["Syntic Code", { "model": "Syntic Code Fast", "label": "Quick" }]
}

Helper and subagent models

SettingFlag / variableUsed for
smallModel--small-model, SYNTIC_SMALL_MODELBackground chores: session titles, summaries, auto mode review, goal checks.
SYNTIC_SUBAGENT_MODELDefault model for subagents (a model named in an agent file still wins).
SYNTIC_SUBAGENT_MODEL_FORCE=1Make every subagent use SYNTIC_SUBAGENT_MODEL.

Fallback models

{ "fallbackModel": ["Syntic Code Fast"] }

When the main model is unavailable or overloaded, Syntic Code tries these in order (up to three). For one run: --fallback-model "Syntic Code Fast". When a switch happens, a line in the transcript and a short notice say which model took over; the fallback stays in use for the rest of that request.

Fast mode

/fast (or Alt+O) swaps to a lighter model for quick work and back again. See Fast mode.

Reasoning effort

Effort sets how much the model thinks before it answers. More effort helps with tricky bugs and design questions; less is faster and cheaper.

HowValues
/effort [level] (no level cycles to the next)low, normal, high, xhigh, max
syntic --effort <level>low, medium, high, xhigh, max
"effortLevel"The level sessions start with.
"maxEffortLevel"The highest level allowed, overall or per model ({"*": "high"}).

/effort saves the level to your user settings. Effort is remembered per model (effortByModel), so switching models brings back the level you last chose for that model; a model with no saved level uses effortLevel. /effort --session keeps the change to this session only.

{ "effortByModel": { "Syntic Code": "high", "Syntic Code Fast": "low" } }

Words in a message such as ultrathink or think harder raise effort for that one turn only. /effort ultracode on is a separate switch: large requests are planned as workflows of parallel steps, at any effort level, and the status bar shows [ULTRACODE].

Thinking

ControlEffect
Alt+T or /thinking on · /thinking offSwitch reasoning on or off for the rest of the session. Models that always reason keep reasoning.
/thinkingShow reasoning in full or as a one-line preview.
--max-thinking-tokens <n>Reasoning budget for a run (0 turns it off).
"maxThinkingTokens"Default budget (16,384).
"alwaysThinkingEnabled": falseStart sessions with reasoning off.
"showThinkingSummaries": trueShow reasoning in full by default.

The advisor

With the experimental advisor on, the agent can ask a second model for a short recommendation on a hard decision. Turn it on with /advisor on; details are on The advisor.

When model changes take effect

/model, /fast and /effort apply from the next request. To have them apply immediately, even in the middle of a reply, set SYNTIC_IMMEDIATE_COMMAND=1. PreModelSwitch and PostModelSwitch hooks let you confirm, block or react to a model change.

Usage limits

When you reach a plan limit, Syntic Code tells you when it resets and what you can do (/rate-limit-options). By default it continues automatically once the window resets; set "autoContinueAfterUsageLimit": false to stop instead.

Context window and compaction

Each model has its own context window; the list from the platform carries it. When the conversation fills a share of the window (autoCompactThreshold, 0.8 by default), Syntic Code compacts older turns into a summary.

Command or settingEffect
/autocompactShows whether automatic compaction is on and the window it measures against.
/autocompact on · offSwitch it now and save the choice (autoCompact).
/autocompact 200kCompact against a smaller window for the current model (saved per model in autoCompactWindows).
/autocompact defaultGo back to the model’s own window.
/compactCompact right now.

More on Context and compaction.

Context size is part of the model: the default model has a 256K-token window. For unknown models, contextWindow (or SYNTIC_CONTEXT_WINDOW) tells Syntic Code what to assume. See Context & compaction.