diff --git a/plugins/tiddlywiki/ai-tools/globals.tid b/plugins/tiddlywiki/ai-tools/globals.tid
index 6215de226..181991702 100644
--- a/plugins/tiddlywiki/ai-tools/globals.tid
+++ b/plugins/tiddlywiki/ai-tools/globals.tid
@@ -2,7 +2,10 @@ title: $:/plugins/tiddlywiki/ai-tools/globals
 tags: $:/tags/Global
 
 \function ai-tools-default-llm-completion-server()
-[all[shadows+tiddlers]tag[$:/tags/AI/CompletionServer]sort[caption]first[]]
+[[$:/plugins/tiddlywiki/ai-tools/configs/default-server]get[completion-server]]
+\end
+\function ai-tools-default-llm-completion-model()
+[[$:/plugins/tiddlywiki/ai-tools/configs/default-server]get[completion-model]]
 \end
 
 <!--
@@ -119,21 +122,6 @@ Procedure to display a message from an AI conversation. Current tiddler is the c
 Action procedure to get the next response from the LLM on a chat tiddler.
 -->
 \procedure ai-tools-action-get-response()
-<!-- Assign a server and model on tiddler if user forget to pick one. -->
-<% if [<currentTiddler>!has[completion-server]] %>
-	<$action-setfield
-		$tiddler=<<currentTiddler>>
-		$field="completion-server"
-		$value={{{[all[shadows+tiddlers]tag[$:/tags/AI/CompletionServer]sort[caption]first[]]}}}
-	/>
-<% endif %>
-<% if [<currentTiddler>!has[completion-model]] %>
-	<$action-setfield
-		$tiddler=<<currentTiddler>>
-		$field="completion-model"
-		$value={{{[{!!completion-server}get[models]enlist-input[]first[]]}}}
-	/>
-<% endif %>
 <!-- Get the response -->
 <$let
 	resultTitlePrefix={{{ [<currentTiddler>addsuffix[ - Prompt]] }}}
@@ -173,10 +161,15 @@ Action procedure to get the next response from the LLM on a chat tiddler.
 	</$list>
 	</$select>
 	Model: <$select tiddler=<<currentTiddler>> field="completion-model" default=<<ai-tools-default-llm-completion-model>>>
-	<$list filter="[{!!completion-server}get[models]enlist-input[]]">
+	<$list filter="[<ai-tools-default-llm-completion-server>get[models]enlist-input[]]">
 	<option value=<<currentTiddler>>><<currentTiddler>></option>
 	</$list>
 	</$select>
+	<$list filter="[<ai-tools-default-llm-completion-server>get[settings]]">
+		<$button to=<<currentTiddler>> class="tc-btn-invisible">
+			{{$:/core/images/options-button}}
+		</$button>
+	</$list>
 
 	<div class="ai-conversation">
 		<$transclude
diff --git a/plugins/tiddlywiki/ai-tools/servers/deepseek.tid b/plugins/tiddlywiki/ai-tools/servers/deepseek.tid
index 359d13f25..c4be1cc70 100644
--- a/plugins/tiddlywiki/ai-tools/servers/deepseek.tid
+++ b/plugins/tiddlywiki/ai-tools/servers/deepseek.tid
@@ -5,3 +5,4 @@ caption: DeepSeek
 auth-token-store-key: deepseek-secret-key
 models: deepseek-chat deepseek-reasoner
 extends: $:/plugins/tiddlywiki/ai-tools/servers/openai
+settings: $:/plugins/tiddlywiki/ai-tools/settings/deepseek
diff --git a/plugins/tiddlywiki/ai-tools/servers/llamafile-llava.tid b/plugins/tiddlywiki/ai-tools/servers/llamafile-llava.tid
index 0ac1d8f33..f75b60026 100644
--- a/plugins/tiddlywiki/ai-tools/servers/llamafile-llava.tid
+++ b/plugins/tiddlywiki/ai-tools/servers/llamafile-llava.tid
@@ -2,6 +2,7 @@ title: $:/plugins/tiddlywiki/ai-tools/servers/llamafile-llava
 tags: $:/tags/AI/CompletionServer
 url: http://127.0.0.1:8080/completion
 caption: Local Llamafile server running LLaVA models
+settings: $:/plugins/tiddlywiki/ai-tools/settings/llamafile
 
 <!--
 Wikified JSON text to be sent to server
diff --git a/plugins/tiddlywiki/ai-tools/servers/openai.tid b/plugins/tiddlywiki/ai-tools/servers/openai.tid
index 916bb1903..290041550 100644
--- a/plugins/tiddlywiki/ai-tools/servers/openai.tid
+++ b/plugins/tiddlywiki/ai-tools/servers/openai.tid
@@ -4,6 +4,7 @@ url: https://api.openai.com/v1/chat/completions
 auth-token-store-key: openai-secret-key
 caption: OpenAI Service
 models: gpt-4o gpt-4.5-preview gpt-4o-mini o1 o1-mini o3-mini
+settings: $:/plugins/tiddlywiki/ai-tools/settings/openai
 
 <!--
 Wikified JSON text to be sent to server
diff --git a/plugins/tiddlywiki/ai-tools/servers/siliconflow.tid b/plugins/tiddlywiki/ai-tools/servers/siliconflow.tid
index 21c34a3c7..234130464 100644
--- a/plugins/tiddlywiki/ai-tools/servers/siliconflow.tid
+++ b/plugins/tiddlywiki/ai-tools/servers/siliconflow.tid
@@ -5,3 +5,4 @@ caption: SiliconFlow
 auth-token-store-key: siliconflow-secret-key
 models: deepseek-ai/DeepSeek-V3 deepseek-ai/DeepSeek-R1
 extends: $:/plugins/tiddlywiki/ai-tools/servers/openai
+settings: $:/plugins/tiddlywiki/ai-tools/settings/siliconflow
diff --git a/plugins/tiddlywiki/ai-tools/settings/settings.tid b/plugins/tiddlywiki/ai-tools/settings/settings.tid
index 38614b220..58cdb4729 100644
--- a/plugins/tiddlywiki/ai-tools/settings/settings.tid
+++ b/plugins/tiddlywiki/ai-tools/settings/settings.tid
@@ -5,4 +5,19 @@ These settings let you customise the behaviour of the "AI Tools" plugin.
 
 !! Completion Servers
 
-<<tabs "[all[shadows+tiddlers]tag[$:/tags/AI/ServerSetting]]">>
+Default Server: <$select tiddler="$:/plugins/tiddlywiki/ai-tools/configs/default-server" field="completion-server">
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/AI/CompletionServer]sort[caption]]">
+<option value=<<currentTiddler>>><$view field='caption'/></option>
+</$list>
+</$select>
+Default Model: <$select tiddler="$:/plugins/tiddlywiki/ai-tools/configs/default-server" field="completion-model">
+<$list filter="[{$:/plugins/tiddlywiki/ai-tools/configs/default-server!!completion-server}get[models]enlist-input[]]">
+<option value=<<currentTiddler>>><<currentTiddler>></option>
+</$list>
+</$select>
+
+<$transclude
+  $variable="tabs"
+  tabsList="[all[shadows+tiddlers]tag[$:/tags/AI/ServerSetting]]"
+  default={{{[{$:/plugins/tiddlywiki/ai-tools/configs/default-server!!completion-server}get[settings]]}}}
+/>