Crate vtcode_config

Crate vtcode_config 

Source
Expand description

Shared configuration loader utilities for VT Code and downstream integrations.

This crate exposes VTCodeConfig and ConfigManager for reading and validating vtcode.toml files while allowing applications to customize the filesystem layout via ConfigDefaultsProvider. Consumers can opt into the bootstrap feature (enabled by default) to scaffold configuration directories with project-specific defaults. Disable default features when you only need parsing/validation to omit the filesystem bootstrap helpers and reduce dependencies.

§Examples

use vtcode_config::ConfigManager;

let manager = ConfigManager::load_from_workspace(".")?;
println!("Active provider: {}", manager.config().agent.provider);

Install a custom ConfigDefaultsProvider with install_config_defaults_provider when you need to override search paths or syntax highlighting defaults exposed by the loader.

Re-exports§

pub use acp::AgentClientProtocolConfig;
pub use acp::AgentClientProtocolTransport;
pub use acp::AgentClientProtocolZedConfig;
pub use acp::AgentClientProtocolZedToolsConfig;
pub use acp::AgentClientProtocolZedWorkspaceTrustMode;
pub use acp::WorkspaceTrustLevel;
pub use api_keys::ApiKeySources;
pub use context::ContextFeaturesConfig;
pub use context::DynamicContextConfig;
pub use context::LedgerConfig;
pub use core::AgentConfig;
pub use core::AgentCustomPromptsConfig;
pub use core::AgentOnboardingConfig;
pub use core::AutomationConfig;
pub use core::CommandsConfig;
pub use core::DockerSandboxConfig;
pub use core::ExternalSandboxConfig;
pub use core::ExternalSandboxType;
pub use core::FullAutoConfig;
pub use core::MicroVMSandboxConfig;
pub use core::ModelConfig;
pub use core::NetworkAllowlistEntryConfig;
pub use core::NetworkConfig;
pub use core::PluginRuntimeConfig;
pub use core::PluginTrustLevel;
pub use core::PromptCachingConfig;
pub use core::ProviderPromptCachingConfig;
pub use core::ResourceLimitsConfig;
pub use core::ResourceLimitsPreset;
pub use core::SandboxConfig;
pub use core::SandboxMode;
pub use core::SeccompConfig;
pub use core::SeccompProfilePreset;
pub use core::SecurityConfig;
pub use core::SensitivePathsConfig;
pub use core::SkillsConfig;
pub use core::SkillsRenderMode;
pub use core::ToolPolicy;
pub use core::ToolsConfig;
pub use core::WebFetchConfig;
pub use debug::DebugConfig;
pub use debug::TraceLevel;
pub use defaults::ConfigDefaultsProvider;
pub use defaults::ContextStoreDefaults;
pub use defaults::PerformanceDefaults;
pub use defaults::ScenarioDefaults;
pub use defaults::SyntaxHighlightingDefaults;
pub use defaults::WorkspacePathsDefaults;
pub use defaults::current_config_defaults;
pub use defaults::get_config_dir;
pub use defaults::get_data_dir;
pub use defaults::install_config_defaults_provider;
pub use defaults::reset_to_default_config_defaults;
pub use defaults::with_config_defaults;
pub use hooks::HookCommandConfig;
pub use hooks::HookCommandKind;
pub use hooks::HookGroupConfig;
pub use hooks::HooksConfig;
pub use hooks::LifecycleHooksConfig;
pub use loader::layers::ConfigLayerEntry;
pub use loader::layers::ConfigLayerSource;
pub use loader::layers::ConfigLayerStack;
pub use loader::ConfigBuilder;
pub use loader::ConfigManager;
pub use loader::SyntaxHighlightingConfig;
pub use loader::VTCodeConfig;
pub use loader::merge_toml_values;
pub use mcp::McpAllowListConfig;
pub use mcp::McpAllowListRules;
pub use mcp::McpClientConfig;
pub use mcp::McpHttpServerConfig;
pub use mcp::McpProviderConfig;
pub use mcp::McpStdioServerConfig;
pub use mcp::McpTransportConfig;
pub use mcp::McpUiConfig;
pub use mcp::McpUiMode;
pub use models::ModelId;
pub use models::OpenRouterMetadata;
pub use optimization::AgentExecutionConfig;
pub use optimization::AsyncPipelineConfig;
pub use optimization::LLMClientConfig;
pub use optimization::MemoryPoolConfig;
pub use optimization::OptimizationConfig;
pub use optimization::ProfilingConfig;
pub use optimization::ToolRegistryConfig;
pub use output_styles::OutputStyle;
pub use output_styles::OutputStyleConfig;
pub use output_styles::OutputStyleManager;
pub use root::PtyConfig;
pub use root::ToolOutputMode;
pub use root::UiConfig;
pub use schema::vtcode_config_schema;
pub use schema::vtcode_config_schema_json;
pub use schema::vtcode_config_schema_pretty;
pub use status_line::StatusLineConfig;
pub use status_line::StatusLineMode;
pub use subagent::SubagentConfig;
pub use subagent::SubagentModel;
pub use subagent::SubagentParseError;
pub use subagent::SubagentPermissionMode;
pub use subagent::SubagentSource;
pub use subagent::SubagentsConfig;
pub use telemetry::TelemetryConfig;
pub use timeouts::TimeoutsConfig;
pub use types::EditingMode;
pub use types::ReasoningEffortLevel;
pub use types::SystemPromptMode;
pub use types::ToolDocumentationMode;
pub use types::UiSurfacePreference;
pub use types::VerbosityLevel;

Modules§

acp
api_keys
API key management module for secure retrieval from environment variables, .env files, and configuration files.
constants
context
core
debug
Debug and tracing configuration
defaults
hooks
loader
mcp
models
Model configuration and identification module
optimization
Configuration for performance optimization features
output_styles
root
schema
status_line
subagent
Subagent configuration schema and parsing
telemetry
timeouts
types
Common types and interfaces used throughout the application