AI Features Settings (Preferences)

Studio AI has three separate configuration surfaces, and it is easy to confuse them:

Surface Scope Covered in
AI Configuration panel Agents, MCP servers, token usage history, prompt fragments, tools, skills, model aliases. Opened via the AI Chat toolbar's More Actions... ("…") menu. AI Configuration: Managing Agents and Settings
Session Settings Overrides that apply only to the current chat session (Confirmation Timeout, Server-Side Compaction). Using the AI Chat
AI Features settings (this article) Global and per-provider preferences: enablement, LLM provider connections, chat behavior, compaction, security-relevant defaults, and more. Part of Studio's standard Settings UI. This article

This article covers the third surface: a large set of preferences (77 at the time of writing) under the AI Features category of Studio's standard Settings UI, most of which are not exposed anywhere in the AI Configuration panel.

Opening AI Features Settings

  1. Open the command palette (F1) and run Preferences: Open Settings (UI), or press Ctrl+,.
  2. In the left navigation, expand AI Features. It contains around 28 sub-sections (Agent Mode, Agent Settings, AI Enablement, Anthropic, Chat, Code Completion, and more).
  3. Alternatively, type a keyword (for example, "compaction" or "token usage") into the Search settings box at the top; matching settings from any category are shown directly.

Settings here apply globally to your Studio user/workspace, unlike the per-session overrides in article 03.

AI Enablement and LLM Providers

Turning AI on and connecting a provider is covered in Getting Started with Studio AI. The same AI Enablement section lives under AI Features in this Settings UI.

Each supported LLM provider has its own sub-section here for API keys, model lists, and provider-specific options:

Sub-section What it configures
Anthropic / Anthropic CustomAnthropic API key, the list of Anthropic models available to agents, and custom (self-defined) Anthropic model entries. See Custom LLM Providers.
Open AI Official Models / Open AI Custom ModelsOpenAI API key, official model list, custom model entries, and whether to use the Responses API (useResponseApi). See Custom LLM Providers.
GoogleAPI key, model list, and retry/backoff settings for rate-limit and other errors.
Hugging FaceAPI key and model list.
OllamaOllama host URL and model list, for a locally or network-hosted Ollama server.
LlamafileConfigured Llamafile executables.
Claude CodeAPI key and executable path for the bundled @anthropic-ai/claude-agent-sdk, used by the @ClaudeCode agent.
CodexAPI key for OpenAI Codex.
GitHub CopilotEnable/disable, enterprise URL, and model overrides.
Fabric (via Open AI Custom Models)Fabric as the LLM provider: a custom model entry whose URL is the Fabric /api/v1 base URL and whose API key is empty. The provider credentials sit in the Fabric AI LLM interface. See Custom LLM Providers.

Model Selection and Language Model Aliases also appear here, but both are thin pointers into the AI Configuration panel's Agents and Model Aliases tabs (see article 06) rather than separate editors. Model Settings does add two standalone knobs: maxRetries (retry attempts on a failed model call) and requestSettings (provider request tuning).

Server-Side Compaction

When a conversation grows past a model's context limit, server-side compaction has the provider itself summarize older turns so the session keeps working, instead of the request failing outright. It is a genuine safeguard against the kind of hard failure some users have hit ("prompt is too long: N tokens > maximum"), but it only works when the model/provider supports it, and only if it is actually enabled for that session.

Support is currently limited to Anthropic (recent Opus/Sonnet models, via a Beta Messages API) and OpenAI official models using the Responses API (Chat Completions is not supported). Unsupported models and providers silently ignore the setting.

Activation is layered, each level overriding the one before it:

Level Setting Notes
Global default ai-features.chat.serverSideCompaction (checkbox, on by default) and ai-features.chat.serverSideCompactionTokenThreshold (minimum 50,000 tokens; unset means the provider's own default applies) Applies to all chat requests unless overridden
Per-provider override ai-features.anthropic.serverSideCompaction / ...TokenThreshold, and ai-features.openAiOfficial.serverSideCompaction / ...TokenThreshold Each can be set to follow the global default, or forced on/off; overrides the global default for that provider only
Per-session override Session Settings dialog, "Server-Side Compaction" Highest precedence; see Using the AI Chat

When compaction fires, an inline marker appears in the chat and the token-usage tooltip shows a "compacted N×" count; this is persisted with the session and restored on reload. If you see a hard token-limit error despite compaction being enabled, check that the session's model is actually one of the supported ones (Anthropic Opus/Sonnet or an OpenAI Responses-API model); on any other model, compaction has no effect and the raw context limit still applies.

Token Usage Visibility (Experimental)

Separately from compaction, three experimental settings control whether you get any visibility into approaching a token limit at all:

Setting What it does
ai-features.chat.tokenUsageIndicator.enabled Shows a running token-usage indicator in the chat view. Marked experimental; counts may be inaccurate depending on model/provider.
ai-features.chat.tokenUsageWarning.enabled Shows a notification when a session's token usage crosses a configured threshold. Requires the model provider to report token usage.
ai-features.chat.tokenUsageWarning.defaultThresholdPercentage The percentage of the model's context window at which the warning fires; also drives the indicator's warning/error color bands. At the time of writing this resolves against an assumed 200k-token context window rather than each model's real context size.

This is the closest equivalent Studio AI currently has to a "your session is getting long, consider starting fresh" warning. It is off by default in some deployments and marked experimental, so if you want a proactive nearing-the-limit warning rather than relying on compaction alone, check that both tokenUsageIndicator.enabled and tokenUsageWarning.enabled are turned on.

Chat Behavior

Setting What it does
defaultChatAgentWhich agent handles a message when none is explicitly addressed.
defaultToolConfirmationDefault confirmation behavior for tools without a tool-specific entry (see below). Some tools always require confirmation regardless of this setting.
toolConfirmationPer-tool confirmation overrides (e.g. force a specific tool to always ask, or always allow).
toolConfirmationTimeoutSeconds before a pending tool confirmation is auto-denied. 0 (default) disables the timeout. Also settable per session; see article 03.
pinChatAgentKeeps a mentioned agent active across prompts so you don't need to repeat @Agent every message.
persistedSessionLimitMaximum chat sessions to persist; -1 unlimited, 0 disables persistence. Oldest sessions are pruned first.
sessionStorageScopePersist sessions per-workspace or in a single global store.
welcomeScreenSessionsHow many sessions to show on the chat welcome/home view before overflowing to "Browse all chats...".
bypassModelRequirementSkips the language-model-configured check, for external agents (e.g. @ClaudeCode) that don't need a Theia-managed model.
allowedResourceUrlsControls which external resources chat markdown is allowed to load (a security hardening setting).

If tool confirmations are set to auto-allow (globally or by default), review that choice with your security team: it means agent tool calls, including shell commands and file writes, proceed without a per-action prompt. See Security and Privacy.

Agent Mode and Agent Settings

Agent Mode: Enabled (ai-features.agentMode.enabled) is the global default for whether @Coder's Agent Mode is available without an extra first-use confirmation dialog. See AI Code Editing and Changesets.

Agent Settings is a pointer, not a separate editor: it directs you to the AI Configuration panel's Agents tab for enablement, LLM selection, prompt customization, and custom agent creation (articles 06 and 09).

Code Completion

SettingWhat it does
Automatic Code CompletionAuto-triggers inline AI completions while editing (any Monaco editor). Otherwise, trigger manually via the "Trigger Inline Suggestion" command (Ctrl+Alt+Space).
Cache CapacityMax completions cached; minimum 10, recommended 50-200.
Debounce DelayMilliseconds to wait after an edit before triggering a completion; requires automatic completion to be on.
Excluded File ExtensionsFile types where completions are disabled.
Max Context LinesLines of surrounding code used as completion context.
Strip BackticksWhether to strip Markdown code fences from returned completions.

Prompt Templates and Skills

These settings back the file-location behavior described in Customizing Agent Prompts and Skills and Slash Commands. Live-checked in this project:

SettingConfirmed live value / behavior
promptTemplatesFolderConfirmed set to <workspace root>/.prompts in this project (falls back to the user config directory if not customized).
taskContextStorageDirectoryWorkspace-relative path for persisted task-context descriptions; confirmed as .prompts/task-contexts here. Empty means in-memory only.
WorkspaceTemplateDirectories / WorkspaceTemplateFilesAdditional folders/files scanned for workspace-specific prompt templates, resolved by priority when IDs collide.
TemplateExtensionsFile extensions treated as prompt templates.
skills.skillDirectoriesConfirmed: .prompts/skills and .agents/skills in the workspace, plus .agents/skills in the user's home directory, and the product's own skills folder, are always included. This setting adds further directories on top. Live value in this project: <workspace root>/.agents/skills.

This directly confirms the workspace-vs-global custom-agent/skill location question left open in article 09: skills (and, by the same convention, agents) resolve from both a workspace-level .agents/ folder and a user-home-level ~/.agents/ folder, with workspace taking precedence.

MCP, Notifications, Reasoning, Orchestrator

Sub-sectionWhat it does
MCPmcpServers and useWorkspaceAsRoot. See MCP Servers for the friendlier AI Configuration panel editor over the same data.
Notificationsnotifications.default: the default way an agent gets your attention when it finishes or needs input (individual agents can override). See Viewing Token Consumption and AI History.
Reasoningreasoning.defaults: default value for the chat input's reasoning-effort selector, for models that support it. See Using the AI Chat.
Orchestratororchestrator.excludedAgents: agent IDs the built-in @Orchestrator agent is not allowed to delegate to. See Other Studio AI Agents.

Security-Relevant Settings

These directly affect what AI agents and tools can access or execute without your explicit per-action approval; see also Security and Privacy.

SettingWhat it does
terminal.shellCommandAllowlistShell command patterns that are auto-allowed without confirmation (supports a trailing * wildcard). Commands containing $ or backticks are never auto-allowed regardless.
terminal.shellCommandDenylistShell command patterns always auto-rejected. Ships with default patterns covering dangerous commands (eval, exec, sudo, rm -rf, and similar).
workspaceFunctions.allowedExternalPathsAbsolute paths or file URIs outside the workspace that AI tools may read. Empty (no access) by default; opt-in only.
workspaceFunctions.considerGitIgnoreWhether AI file-search/read tools respect .gitignore.
workspaceFunctions.fileContentMaxSizeKB / searchMaxResults / userExcludesCaps on how much file content and how many search results AI tools can pull in per call, plus a user-defined exclude list.
SCANOSS.apiKey / SCANOSS.modeOptional integration that sends a hash of AI-suggested code snippets to the SCANOSS service (Software Transparency Foundation) to check for license/provenance issues.
registry.githubTokenOptional GitHub personal access token used when downloading skills from GitHub, raising the rate limit from 60 to 5,000 requests/hour.

API keys and tokens entered in these fields are stored in clear text on the machine running Studio unless you use the corresponding environment variable instead (for example, SCANOSS_API_KEY). Prefer environment variables for anything sensitive.

AI Features Settings (Preferences)

Studio AI has three separate configuration surfaces, and it is easy to confuse them:

Surface Scope Covered in
AI Configuration panel Agents, MCP servers, token usage history, prompt fragments, tools, skills, model aliases. Opened via the AI Chat toolbar's More Actions... ("…") menu. AI Configuration: Managing Agents and Settings
Session Settings Overrides that apply only to the current chat session (Confirmation Timeout, Server-Side Compaction). Using the AI Chat
AI Features settings (this article) Global and per-provider preferences: enablement, LLM provider connections, chat behavior, compaction, security-relevant defaults, and more. Part of Studio's standard Settings UI. This article

This article covers the third surface: a large set of preferences (77 at the time of writing) under the AI Features category of Studio's standard Settings UI, most of which are not exposed anywhere in the AI Configuration panel.

Opening AI Features Settings

  1. Open the command palette (F1) and run Preferences: Open Settings (UI), or press Ctrl+,.
  2. In the left navigation, expand AI Features. It contains around 28 sub-sections (Agent Mode, Agent Settings, AI Enablement, Anthropic, Chat, Code Completion, and more).
  3. Alternatively, type a keyword (for example, "compaction" or "token usage") into the Search settings box at the top; matching settings from any category are shown directly.

Settings here apply globally to your Studio user/workspace, unlike the per-session overrides in article 03.

AI Enablement and LLM Providers

Turning AI on and connecting a provider is covered in Getting Started with Studio AI. The same AI Enablement section lives under AI Features in this Settings UI.

Each supported LLM provider has its own sub-section here for API keys, model lists, and provider-specific options:

Sub-section What it configures
Anthropic / Anthropic CustomAnthropic API key, the list of Anthropic models available to agents, and custom (self-defined) Anthropic model entries. See Custom LLM Providers.
Open AI Official Models / Open AI Custom ModelsOpenAI API key, official model list, custom model entries, and whether to use the Responses API (useResponseApi). See Custom LLM Providers.
GoogleAPI key, model list, and retry/backoff settings for rate-limit and other errors.
Hugging FaceAPI key and model list.
OllamaOllama host URL and model list, for a locally or network-hosted Ollama server.
LlamafileConfigured Llamafile executables.
Claude CodeAPI key and executable path for the bundled @anthropic-ai/claude-agent-sdk, used by the @ClaudeCode agent.
CodexAPI key for OpenAI Codex.
GitHub CopilotEnable/disable, enterprise URL, and model overrides.
Fabric (via Open AI Custom Models)Fabric as the LLM provider: a custom model entry whose URL is the Fabric /api/v1 base URL and whose API key is empty. The provider credentials sit in the Fabric AI LLM interface. See Custom LLM Providers.

Model Selection and Language Model Aliases also appear here, but both are thin pointers into the AI Configuration panel's Agents and Model Aliases tabs (see article 06) rather than separate editors. Model Settings does add two standalone knobs: maxRetries (retry attempts on a failed model call) and requestSettings (provider request tuning).

Server-Side Compaction

When a conversation grows past a model's context limit, server-side compaction has the provider itself summarize older turns so the session keeps working, instead of the request failing outright. It is a genuine safeguard against the kind of hard failure some users have hit ("prompt is too long: N tokens > maximum"), but it only works when the model/provider supports it, and only if it is actually enabled for that session.

Support is currently limited to Anthropic (recent Opus/Sonnet models, via a Beta Messages API) and OpenAI official models using the Responses API (Chat Completions is not supported). Unsupported models and providers silently ignore the setting.

Activation is layered, each level overriding the one before it:

Level Setting Notes
Global default ai-features.chat.serverSideCompaction (checkbox, on by default) and ai-features.chat.serverSideCompactionTokenThreshold (minimum 50,000 tokens; unset means the provider's own default applies) Applies to all chat requests unless overridden
Per-provider override ai-features.anthropic.serverSideCompaction / ...TokenThreshold, and ai-features.openAiOfficial.serverSideCompaction / ...TokenThreshold Each can be set to follow the global default, or forced on/off; overrides the global default for that provider only
Per-session override Session Settings dialog, "Server-Side Compaction" Highest precedence; see Using the AI Chat

When compaction fires, an inline marker appears in the chat and the token-usage tooltip shows a "compacted N×" count; this is persisted with the session and restored on reload. If you see a hard token-limit error despite compaction being enabled, check that the session's model is actually one of the supported ones (Anthropic Opus/Sonnet or an OpenAI Responses-API model); on any other model, compaction has no effect and the raw context limit still applies.

Token Usage Visibility (Experimental)

Separately from compaction, three experimental settings control whether you get any visibility into approaching a token limit at all:

Setting What it does
ai-features.chat.tokenUsageIndicator.enabled Shows a running token-usage indicator in the chat view. Marked experimental; counts may be inaccurate depending on model/provider.
ai-features.chat.tokenUsageWarning.enabled Shows a notification when a session's token usage crosses a configured threshold. Requires the model provider to report token usage.
ai-features.chat.tokenUsageWarning.defaultThresholdPercentage The percentage of the model's context window at which the warning fires; also drives the indicator's warning/error color bands. At the time of writing this resolves against an assumed 200k-token context window rather than each model's real context size.

This is the closest equivalent Studio AI currently has to a "your session is getting long, consider starting fresh" warning. It is off by default in some deployments and marked experimental, so if you want a proactive nearing-the-limit warning rather than relying on compaction alone, check that both tokenUsageIndicator.enabled and tokenUsageWarning.enabled are turned on.

Chat Behavior

Setting What it does
defaultChatAgentWhich agent handles a message when none is explicitly addressed.
defaultToolConfirmationDefault confirmation behavior for tools without a tool-specific entry (see below). Some tools always require confirmation regardless of this setting.
toolConfirmationPer-tool confirmation overrides (e.g. force a specific tool to always ask, or always allow).
toolConfirmationTimeoutSeconds before a pending tool confirmation is auto-denied. 0 (default) disables the timeout. Also settable per session; see article 03.
pinChatAgentKeeps a mentioned agent active across prompts so you don't need to repeat @Agent every message.
persistedSessionLimitMaximum chat sessions to persist; -1 unlimited, 0 disables persistence. Oldest sessions are pruned first.
sessionStorageScopePersist sessions per-workspace or in a single global store.
welcomeScreenSessionsHow many sessions to show on the chat welcome/home view before overflowing to "Browse all chats...".
bypassModelRequirementSkips the language-model-configured check, for external agents (e.g. @ClaudeCode) that don't need a Theia-managed model.
allowedResourceUrlsControls which external resources chat markdown is allowed to load (a security hardening setting).

If tool confirmations are set to auto-allow (globally or by default), review that choice with your security team: it means agent tool calls, including shell commands and file writes, proceed without a per-action prompt. See Security and Privacy.

Agent Mode and Agent Settings

Agent Mode: Enabled (ai-features.agentMode.enabled) is the global default for whether @Coder's Agent Mode is available without an extra first-use confirmation dialog. See AI Code Editing and Changesets.

Agent Settings is a pointer, not a separate editor: it directs you to the AI Configuration panel's Agents tab for enablement, LLM selection, prompt customization, and custom agent creation (articles 06 and 09).

Code Completion

SettingWhat it does
Automatic Code CompletionAuto-triggers inline AI completions while editing (any Monaco editor). Otherwise, trigger manually via the "Trigger Inline Suggestion" command (Ctrl+Alt+Space).
Cache CapacityMax completions cached; minimum 10, recommended 50-200.
Debounce DelayMilliseconds to wait after an edit before triggering a completion; requires automatic completion to be on.
Excluded File ExtensionsFile types where completions are disabled.
Max Context LinesLines of surrounding code used as completion context.
Strip BackticksWhether to strip Markdown code fences from returned completions.

Prompt Templates and Skills

These settings back the file-location behavior described in Customizing Agent Prompts and Skills and Slash Commands. Live-checked in this project:

SettingConfirmed live value / behavior
promptTemplatesFolderConfirmed set to <workspace root>/.prompts in this project (falls back to the user config directory if not customized).
taskContextStorageDirectoryWorkspace-relative path for persisted task-context descriptions; confirmed as .prompts/task-contexts here. Empty means in-memory only.
WorkspaceTemplateDirectories / WorkspaceTemplateFilesAdditional folders/files scanned for workspace-specific prompt templates, resolved by priority when IDs collide.
TemplateExtensionsFile extensions treated as prompt templates.
skills.skillDirectoriesConfirmed: .prompts/skills and .agents/skills in the workspace, plus .agents/skills in the user's home directory, and the product's own skills folder, are always included. This setting adds further directories on top. Live value in this project: <workspace root>/.agents/skills.

This directly confirms the workspace-vs-global custom-agent/skill location question left open in article 09: skills (and, by the same convention, agents) resolve from both a workspace-level .agents/ folder and a user-home-level ~/.agents/ folder, with workspace taking precedence.

MCP, Notifications, Reasoning, Orchestrator

Sub-sectionWhat it does
MCPmcpServers and useWorkspaceAsRoot. See MCP Servers for the friendlier AI Configuration panel editor over the same data.
Notificationsnotifications.default: the default way an agent gets your attention when it finishes or needs input (individual agents can override). See Viewing Token Consumption and AI History.
Reasoningreasoning.defaults: default value for the chat input's reasoning-effort selector, for models that support it. See Using the AI Chat.
Orchestratororchestrator.excludedAgents: agent IDs the built-in @Orchestrator agent is not allowed to delegate to. See Other Studio AI Agents.

Security-Relevant Settings

These directly affect what AI agents and tools can access or execute without your explicit per-action approval; see also Security and Privacy.

SettingWhat it does
terminal.shellCommandAllowlistShell command patterns that are auto-allowed without confirmation (supports a trailing * wildcard). Commands containing $ or backticks are never auto-allowed regardless.
terminal.shellCommandDenylistShell command patterns always auto-rejected. Ships with default patterns covering dangerous commands (eval, exec, sudo, rm -rf, and similar).
workspaceFunctions.allowedExternalPathsAbsolute paths or file URIs outside the workspace that AI tools may read. Empty (no access) by default; opt-in only.
workspaceFunctions.considerGitIgnoreWhether AI file-search/read tools respect .gitignore.
workspaceFunctions.fileContentMaxSizeKB / searchMaxResults / userExcludesCaps on how much file content and how many search results AI tools can pull in per call, plus a user-defined exclude list.
SCANOSS.apiKey / SCANOSS.modeOptional integration that sends a hash of AI-suggested code snippets to the SCANOSS service (Software Transparency Foundation) to check for license/provenance issues.
registry.githubTokenOptional GitHub personal access token used when downloading skills from GitHub, raising the rate limit from 60 to 5,000 requests/hour.

API keys and tokens entered in these fields are stored in clear text on the machine running Studio unless you use the corresponding environment variable instead (for example, SCANOSS_API_KEY). Prefer environment variables for anything sensitive.