Appearance
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 viaChatPreferencesProxy.session— preference per session.local— browser localStorage only (whenfallbackToLocalState: 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
| Command | Effect |
|---|---|
/theme [preset] | Switch theme. With no argument, lists available presets. |
/clear | New session (clears transcript). |
/sessions | Show session list. |
/help | Show available commands. |
Per-mode setting differences
| Setting | standalone-local | standalone-connected | daemon-hosted |
|---|---|---|---|
| Identity | local-user constant | depends on bound service | gateway bootstrap |
| Preferences provider | LocalPreferencesService | configurable | ChatPreferencesProxy to runtime |
| Theme persist | local | local | user-scoped via runtime |
| Conversation backend | LocalConversationService | adapter | RemoteActorConversationAdapter |
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.