Skip to content

Settings

Settings in Chat split across three actors plus the inference settings webapp.

Theme

ChatTheme (registered as <mx-theme>) controls the UI palette. Default is dark (config.theme.defaultPreset). The user can change it via the sidebar or /theme slash command.

config.theme.persistScope:

  • user — preference saved per principal via ChatPreferencesProxy.
  • session — preference per session.
  • local — browser localStorage only (when fallbackToLocalState: true).

Identity

ChatIdentityProxy exposes:

  • principalId — the user identity, displayed in the sidebar.
  • displayName — human-readable name.
  • addressRoot — the wire root where the user is signed in.
  • authenticated — boolean.

In daemon-hosted mode, identity comes from the gateway bootstrap. In standalone-local mode, the identity is the constant local-user.

You cannot change identity inside Chat. To switch identities, sign out at the matrix-web / matrix-edge shell level.

Preferences

ChatPreferencesProxy round-trips a small set of user preferences:

  • Theme preset (mirrors ChatTheme).
  • Show address tags toggle (config.app.showAddressTags).
  • Read-only mode (config.app.readOnly).
  • Window title override (config.app.windowTitle).

These are persisted on the runtime side under the user's principal scope.

What lives outside Chat

  • Provider/model selection. Inference Settings webapp at /apps/inference-settings/. Chat does not configure providers.
  • API keys / OAuth tokens. system.factotum, never exposed to Chat.
  • System prompts for an agent. Declared on the target actor or stored by system.agents. Chat does not edit them.
  • Memory scope / regime. Same — target actor's cognitiveState.

Slash settings shortcuts

CommandEffect
/theme [preset]Switch theme. With no argument, lists available presets.
/clearNew session (clears transcript).
/sessionsShow session list.
/helpShow available commands.

Per-mode setting differences

Settingstandalone-localstandalone-connecteddaemon-hosted
Identitylocal-user constantdepends on bound servicegateway bootstrap
Preferences providerLocalPreferencesServiceconfigurableChatPreferencesProxy to runtime
Theme persistlocallocaluser-scoped via runtime
Conversation backendLocalConversationServiceadapterRemoteActorConversationAdapter

The mode is set in the configuration; users do not toggle modes from the UI.

See also

Source: projects/matrix-3/packages/chat/src/app/services/ChatTheme.ts, ChatPreferencesProxy.ts, ChatIdentityProxy.ts, chat/config/config.defaults.json.