Skip to main content
Settings methods expose gateway-owned runtime settings and the workspace-scoped self-improvement settings associated with the RPC connection. Clients can read and update them over JSON-RPC. Provider API keys, MCP secrets, skills, tasks, artifacts, and other workspace state remain separate surfaces. The gateway loads runtime settings from app config defaults and its runtime settings file, then returns the effective snapshot. Updates are persisted to the same gateway settings file. Self-improvement settings are resolved for the workspace bound to the RPC connection. Runtime systems that depend on these settings, such as memory hooks, thread episodic context, CLI runtime instances, keep-awake, voice input, and remote access, are refreshed through the gateway instead of requiring clients to edit files directly. This matters for remote gateways. A desktop or mobile client should call settings/get and settings/update; it should not write gateway-settings.toml on disk.

Methods

Snapshot shape

The response contains a settings object with general, memory, self_improvement, thread_episodic, cli_runtimes, remote_access, and voice_input sections. Model selection objects use: Self-improvement model selections use a separate object with provider and model. They are workspace settings, and they must name native API providers. CLI runtime ids and local providers are not valid self-improvement model selections. Vector search reports both configuration and readiness. provider_key tells the client whether the selected remote provider needs a key and whether one is present. refill_status reports index work, while local_model_status reports local model installation. Refill status values are disabled, unknown, required, running, complete, and failed. Local model status values are not_selected, unknown, missing, downloading, installed, and failed. Voice runtime phases are disabled, model_not_selected, missing, downloading, installing, loading, ready, and failed. effective_enabled reports whether the gateway can accept voice input after applying configuration and runtime readiness.

Reading settings

settings/get accepts an empty params object.
Response:

Updating settings

settings/update takes an update object. general is a patch: omitted fields keep their current effective value. thread_episodic and its nested vector_search object are patches. memory is a complete memory settings object when present, so clients should send the full memory section they want to keep. self_improvement is a complete workspace settings object when present. cli_runtimes is a complete runtime instance list when present. remote_access and voice_input are patches for their user-facing controls.
To update memory settings, send the full memory section:
The response shape is the same as settings/get and contains the new effective snapshot. To update one thread-context setting, send only that field under thread_episodic:
Disabling thread_episodic.enabled turns off the thread context layer as a whole. Disabling only indexing_enabled stops new indexing work while leaving existing state in place. Disabling only recall_enabled keeps indexing available but prevents recalled thread snippets from entering future prompts. To update vector search, send only the fields that should change inside thread_episodic.vector_search:
Set provider, model, or local_model to null to clear a selection. The gateway reports embedding_dimension and readiness fields; clients cannot set those fields. To enable workspace self-improvement, send the complete section with native API provider and model selections:
The gateway enables the learner only when the selected model is eligible and available. Learned skills stay workspace-scoped and pass the same policy, visibility, and prompt-capacity checks as installed skills. To update CLI runtime instances, send the full cli_runtimes.instances list you want the gateway to keep:
Runtime ids and display names must be unique after normalization. binary_path, home_path, and shadow_home_path are validated before the settings file is saved. To update voice input, send a patch. provider and model accept null when the current selection should be cleared. Set retry_install to true to retry a failed local model installation.
To enable remote access, send the enable flag and key. The key is written to the gateway keystore and is not serialized into gateway-settings.toml.
To clear the remote-access key:
remote_access.status is live runtime state. Clients receive gateway/remote_access/status_changed when the relay connection moves through states such as starting, connected, reconnecting, failed, or stopped.

Schemas

Generated schemas include:
  • /schemas/gateway_settings_get_params.json
  • /schemas/gateway_settings_get_response.json
  • /schemas/gateway_settings_update_params.json
  • /schemas/gateway_settings_update_response.json
  • /schemas/gateway_settings_snapshot.json
  • /schemas/gateway_general_settings.json
  • /schemas/gateway_general_settings_update.json
  • /schemas/gateway_self_improvement_settings.json
  • /schemas/gateway_self_improvement_model_selection.json
  • /schemas/gateway_memory_settings.json
  • /schemas/gateway_memory_model_selection.json
  • /schemas/gateway_memory_model_selection_source.json
  • /schemas/gateway_thread_episodic_settings.json
  • /schemas/gateway_thread_episodic_settings_update.json
  • /schemas/gateway_thread_episodic_vector_search_settings.json
  • /schemas/gateway_thread_episodic_vector_search_settings_update.json
  • /schemas/gateway_thread_episodic_vector_provider.json
  • /schemas/gateway_thread_episodic_vector_provider_key_status.json
  • /schemas/gateway_thread_episodic_vector_refill_status.json
  • /schemas/gateway_thread_episodic_vector_local_model_status.json
  • /schemas/gateway_thread_episodic_vector_refill_status_changed_notification.json
  • /schemas/gateway_cli_runtime_settings.json
  • /schemas/gateway_cli_runtime_instance_settings.json
  • /schemas/gateway_native_agent_config.json
  • /schemas/gateway_remote_access_transport.json
  • /schemas/gateway_remote_access_state.json
  • /schemas/gateway_remote_access_error_kind.json
  • /schemas/gateway_remote_access_status_changed_notification.json
  • /schemas/gateway_remote_access_settings.json
  • /schemas/gateway_remote_access_settings_update.json
  • /schemas/gateway_remote_access_status_snapshot.json
  • /schemas/gateway_settings_update.json
  • /schemas/gateway_voice_input_provider.json
  • /schemas/gateway_voice_input_settings.json
  • /schemas/gateway_voice_input_settings_update.json
  • /schemas/gateway_voice_input_runtime_snapshot.json
  • /schemas/gateway_voice_input_runtime_phase.json
  • /schemas/gateway_voice_input_status_changed_notification.json