Skip to content

Update User Settings

PUT
/api/settings/user

Update user preferences (accepts the full UserSettings model).

UserSettings

User preferences persisted to user_settings.json.

object
theme
Theme
string
default: dark
Allowed values: light dark
autoSave
Autosave
boolean
default: true
autoSaveIntervalMs
Autosaveintervalms
integer
default: 2000 >= 500 <= 10000
idleSaveMs
Idlesavems

Idle threshold (ms) after which the editor commits the buffer to the main .docx via the explicit save path. Per-keystroke autorecover writes cover crash recovery; this is the only timer that touches the canonical file.

integer
default: 30000 >= 5000 <= 300000
spellCheck
Spellcheck
boolean
default: true
showRailGuideCopy
Showrailguidecopy
boolean
default: true
contentMaxWidth
Contentmaxwidth
integer
default: 760 >= 600 <= 2560
chatTranscriptWidthPercent
Chattranscriptwidthpercent
integer
default: 92 >= 72 <= 98
chatHistoryWindow
Chathistorywindow

Number of recent messages included in LLM context for chat.

integer
default: 20 >= 5 <= 100
chatSearchResultsLimit
Chatsearchresultslimit

Maximum results returned when searching chat threads or messages.

integer
default: 10 >= 5 <= 100
notifications
Notifications
string
default: important
Allowed values: all important none
analyticsEnabled
Analyticsenabled
boolean
default: true
autoCheckOnSave
Autocheckonsave
boolean
autoCheckOnEdit
Autocheckonedit
boolean
autoCheckDelaySec
Autocheckdelaysec
integer
default: 5 >= 3 <= 30
entityDetectionIntervalMin
Entitydetectionintervalmin
integer
default: 5 >= 1 <= 60
knowledgeKeywordMinLength
Knowledgekeywordminlength
integer
default: 5 >= 3 <= 10
knowledgeKeywordOverlapThreshold
Knowledgekeywordoverlapthreshold
integer
default: 3 >= 1 <= 10
knowledgeScanScope
Knowledgescanscope
string
default: all_characters
Allowed values: pov_only all_characters
knowledgeAiSceneMaxChars
Knowledgeaiscenemaxchars
integer
default: 3000 >= 1000 <= 10000
outlineShowPrefixTypes
Outlineshowprefixtypes
Array<string>
default: series,chapter,scene,beat
outlineAutoNumberTypes
Outlineautonumbertypes
Array<string>
default: series,chapter,scene,beat
documentsDirectory
Documentsdirectory

Global default directory for saving documents. Empty = app default (data/documents/).

string
""
notificationPollIntervalSec
Notificationpollintervalsec

How often to poll for backend notifications (seconds).

integer
default: 15 >= 10 <= 120
notificationRetentionHours
Notificationretentionhours

How long to keep notifications before auto-cleanup (hours). Range: 1h-168h (1 week).

integer
default: 24 >= 1 <= 168
showFpsOverlay
Showfpsoverlay
boolean
reduceMotion
Reducemotion
boolean
animationDurationScale
Animationdurationscale
number
default: 1 <= 3
backgroundThrottling
Backgroundthrottling

Throttle rendering when window loses focus. Requires restart.

boolean
default: true
quickCaptureShortcut
Quickcaptureshortcut

Global keyboard shortcut for quick idea capture.

string
default: CommandOrControl+Shift+Q
quickCaptureEnabled
Quickcaptureenabled

Enable the global quick capture shortcut.

boolean
default: true
watchFolderPath
Watchfolderpath

Directory to watch for auto-import. Empty = disabled.

string
""
watchFolderEnabled
Watchfolderenabled

Enable automatic file watching and import.

boolean
watchFolderExtensions
Watchfolderextensions

File extensions to watch for in the watch folder.

Array<string>
default: .docx,.md,.txt
verboseAgentLogging
Verboseagentlogging

Enable verbose logging for the agent communication hub (message routing, authority checks).

boolean
embeddingDevice
Embeddingdevice

ONNX execution provider: auto (detect GPU), gpu (force DirectML), cpu (force CPU).

string
default: auto
Allowed values: auto gpu cpu
nliDevice
Nlidevice

ONNX execution provider for the NLI model (contradiction detection): auto (detect GPU), gpu (force DirectML), cpu (force CPU). Defaults to CPU — the model is small and GPU threading can crash.

string
default: cpu
Allowed values: auto gpu cpu
corefDepth
Corefdepth

Coref depth for the M4 contradiction engine. ‘on’ resolves pronoun chains so POV / knowledge / presence / dead-character queries fire on prose that uses pronouns instead of names — costs ~0.5-2s per scene on CPU with F-Coref. ‘off’ falls back to name-only linking and skips the FastCoref model entirely. Honors Absolute Rule #5: the speed/accuracy tradeoff is the user’s call, not Claude’s.

string
default: on
Allowed values: off on
corefDevice
Corefdevice

Hardware backend for the FastCoref F-Coref model. ‘cpu’ is always supported. ‘cuda’ requires a CUDA-enabled torch build AND an NVIDIA GPU — falls back to CPU automatically when either is missing. DirectML is not supported by FastCoref and is not exposed.

string
default: cpu
Allowed values: cpu cuda
laganChatTimeoutSec
Laganchattimeoutsec

Hard ceiling in seconds for a freeform Lagan chat turn. The route wraps ask_lagan in asyncio.wait_for(timeout) — when the tool loop outruns this, the endpoint raises a 504 instead of leaving the UI hanging. Tune higher for heavier tool loops.

integer
default: 60 >= 10 <= 600
laganEnrichmentMaxConcepts
Laganenrichmentmaxconcepts

How many key concepts Lagan pulls out of the content when enriching from external sources. Higher = more candidate concepts to seed lookups, but more tokens and API calls per run. The first extracted concept is the actual query seed.

integer
default: 10 >= 1 <= 50
laganEnrichmentMaxCharsPerSource
Laganenrichmentmaxcharspersource

Maximum characters kept from each external enrichment source (Wikipedia summary, API payload, etc.) before merging into the enriched entry. Higher = more detail per source, but more tokens downstream.

integer
default: 500 >= 100 <= 5000
intentClassifierEnabled
Intentclassifierenabled

Master toggle for the M11 intent classifier. When disabled, the chat input never calls the classifier and the agent pill behaves exactly as it did before M11 (manual selection only).

boolean
default: true
intentRoutingMode
Intentroutingmode

‘suggest’ (default): show a chip the user can accept. ‘auto’: switch the agent automatically inside a Gmail-style undo window when confidence is above the threshold. Manual agent selection always wins regardless of mode.

string
default: suggest
Allowed values: suggest auto
intentConfidenceThreshold
Intentconfidencethreshold

Minimum normalized confidence for the chip to appear (suggest mode) or auto-route to fire (auto mode). Below this threshold, no chip renders even if a prediction exists. Range 0.30-0.95; values below 0.50 accept potential out-of-domain noise.

number
default: 0.65 >= 0.3 <= 0.95
intentShowAlternatives
Intentshowalternatives

How many top-K alternatives to surface in the chip’s ‘Why this prediction?’ expander.

integer
default: 3 >= 1 <= 5
intentAutoRouteSendDelayMs
Intentautoroutesenddelayms

Auto-route mode only: how long the Gmail-style ‘sending in Xs — Undo’ banner waits before actually sending. 0 disables the delay (message sends instantly with the routed agent).

integer
default: 2000 <= 5000
intentClassifyIdleTriggerMs
Intentclassifyidletriggerms

Chat input idle threshold (ms) after which the classifier fires when the user has not typed a sentence terminator. Lower = more responsive, more CPU; higher = less twitchy. On low-end hardware where embedding inference is 200-400ms per call, increase this to 800-1000ms for a smoother feel.

integer
default: 500 >= 200 <= 2000
projectClassifierEnabled
Projectclassifierenabled

Master toggle for the per-project content classifier. When disabled, EntryTypePredictor is hidden and the background trainer poller does not run.

boolean
default: true

Successful Response

Response Update User Settings Api Settings User Put
object
key
additional properties
string

Validation Error

HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object