Skip to main content

MatrixConfig

Struct MatrixConfig 

Source
pub struct MatrixConfig {
Show 18 fields pub provider: Option<String>, pub api_key: Option<String>, pub base_url: Option<String>, pub model: Option<String>, pub think: bool, pub markdown: bool, pub max_tokens: u32, pub context_size: Option<u32>, pub multi_model: Option<bool>, pub plan_model: Option<String>, pub compress_model: Option<String>, pub fast_model: Option<String>, pub approve_mode: Option<String>, pub extra_headers: Option<HashMap<String, String>>, pub mcp_servers: Option<HashMap<String, McpServerConfig>>, pub lsp_servers: Option<HashMap<String, LspServerConfig>>, pub enable_lsp: bool, pub verify_strategy: Option<String>,
}
Expand description

Matrixcode configuration file structure. Uses universal naming (no ANTHROPIC_ prefix).

Fields§

§provider: Option<String>

LLM provider: “anthropic” or “openai”

§api_key: Option<String>

API key (universal naming, also supports ANTHROPIC_AUTH_TOKEN alias)

§base_url: Option<String>

Base URL for API endpoint

§model: Option<String>

Main model name

§think: bool

Enable extended thinking

§markdown: bool

Enable markdown rendering

§max_tokens: u32

Maximum output tokens

§context_size: Option<u32>

Context size

§multi_model: Option<bool>

Multi-model configuration

§plan_model: Option<String>

Plan/reasoning model

§compress_model: Option<String>

Compress/haiku model

§fast_model: Option<String>

Fast model

§approve_mode: Option<String>

Approve mode: “ask”, “auto”, “strict”

§extra_headers: Option<HashMap<String, String>>

Extra HTTP headers to add to API requests Format: {“Header-Name”: “header-value”}

§mcp_servers: Option<HashMap<String, McpServerConfig>>

MCP servers configuration Format: {“server_name”: McpServerConfig}

§lsp_servers: Option<HashMap<String, LspServerConfig>>

LSP servers configuration Format: {“server_name”: LspServerConfig}

§enable_lsp: bool

Enable LSP tools globally If false, LSP servers won’t be loaded and LSP tools won’t be available

§verify_strategy: Option<String>

Code verification strategy for write operations Options: “none” (no verification), “post” (verify after write, default), “pre” (verify before write, block if errors), “pre-quick” (quick syntax check before, full check after) When “pre” is enabled, invalid code will be blocked and errors returned to AI for automatic correction.

Implementations§

Source§

impl MatrixConfig

Source

pub fn matrix_config_path() -> Option<PathBuf>

Path to matrixcode config file.

Source

pub fn claude_settings_path() -> Option<PathBuf>

Path to Claude Code settings file.

Source

pub fn load() -> Self

Load configuration with fallback chain. Priority: env vars > ~/.matrix/config.json > ~/.claude/settings.json > defaults

Source

pub fn get_api_key(&self, provider: &str) -> Option<String>

Get API key, with fallback to environment variable. Universal env var: API_KEY (also supports ANTHROPIC_AUTH_TOKEN for compatibility)

Source

pub fn get_model(&self, provider: &str) -> String

Get model name, with fallback to environment variable. Universal env var: MODEL (also supports ANTHROPIC_MODEL for compatibility)

Source

pub fn get_base_url(&self, provider: &str) -> String

Get base URL, with fallback to environment variable. Universal env var: BASE_URL (also supports ANTHROPIC_BASE_URL for compatibility)

Source

pub fn save(&self) -> Result<()>

Save configuration to ~/.matrix/config.json.

Source

pub fn is_api_configured(&self) -> bool

Check if API is configured.

Source

pub fn resolve_api_key(&self) -> Option<String>

Get API key with fallback chain (public for subagent use)

Source

pub fn resolve_base_url(&self) -> Option<String>

Get base URL with fallback chain (public for subagent use)

Source

pub fn resolve_provider_type(&self, model: &str) -> ProviderType

Resolve provider type from config or infer from model (public for subagent use)

Source

pub fn create_provider_from_env() -> Result<Arc<dyn Provider>>

Create a Provider instance from configuration. Useful for tools that need AI capabilities but don’t have an injected provider.

Trait Implementations§

Source§

impl Clone for MatrixConfig

Source§

fn clone(&self) -> MatrixConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MatrixConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MatrixConfig

Source§

fn default() -> MatrixConfig

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for MatrixConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for MatrixConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more