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::AgentOnboardingConfig;pub use core::AgentPromptSuggestionsConfig;pub use core::AutoModeConfig;pub use core::AutoModeEnvironmentConfig;pub use core::AutomationConfig;pub use core::BundledSkillsConfig;pub use core::CommandsConfig;pub use core::DockerSandboxConfig;pub use core::EditorToolConfig;pub use core::ExternalSandboxConfig;pub use core::ExternalSandboxType;pub use core::FullAutoConfig;pub use core::GatekeeperConfig;pub use core::MicroVMSandboxConfig;pub use core::ModelConfig;pub use core::NetworkAllowlistEntryConfig;pub use core::NetworkConfig;pub use core::OpenAIConfig;pub use core::OpenAIHostedShellConfig;pub use core::OpenAIHostedShellDomainSecret;pub use core::OpenAIHostedShellEnvironment;pub use core::OpenAIHostedShellNetworkPolicy;pub use core::OpenAIHostedShellNetworkPolicyType;pub use core::OpenAIHostedSkill;pub use core::OpenAIServiceTier;pub use core::OpenResponsesConfig;pub use core::PermissionMode;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 ide_context::IdeContextConfig;pub use ide_context::IdeContextProviderConfig;pub use ide_context::IdeContextProviderFamily;pub use ide_context::IdeContextProviderMode;pub use ide_context::IdeContextProvidersConfig;pub use loader::layers::ConfigLayerEntry;pub use loader::layers::ConfigLayerLoadError;pub use loader::layers::ConfigLayerMetadata;pub use loader::layers::ConfigLayerSource;pub use loader::layers::ConfigLayerStack;pub use loader::layers::LayerDisabledReason;pub use loader::ConfigBuilder;pub use loader::ConfigManager;pub use loader::ConfigWatcher;pub use loader::SimpleConfigWatcher;pub use loader::SyntaxHighlightingConfig;pub use loader::VTCodeConfig;pub use loader::fingerprint_str;pub use loader::fingerprint_toml_value;pub use loader::merge_toml_values;pub use loader::merge_toml_values_with_origins;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::CommandCacheConfig;pub use optimization::FileReadCacheConfig;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::AskQuestionsConfig;pub use root::ChatConfig;pub use root::LayoutModeOverride;pub use root::NotificationDeliveryMode;pub use root::PtyConfig;pub use root::PtyEmulationBackend;pub use root::ReasoningDisplayMode;pub use root::ToolOutputMode;pub use root::UiConfig;pub use root::UiDisplayMode;pub use root::UiNotificationsConfig;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 subagents::DiscoveredSubagents;pub use subagents::SubagentDiscoveryInput;pub use subagents::SubagentMcpServer;pub use subagents::SubagentMemoryScope;pub use subagents::SubagentRuntimeLimits;pub use subagents::SubagentSource;pub use subagents::SubagentSpec;pub use subagents::builtin_subagents;pub use subagents::discover_subagents;pub use subagents::load_subagent_from_file;pub use telemetry::TelemetryConfig;pub use timeouts::TimeoutsConfig;pub use timeouts::resolve_timeout;pub use types::EditingMode;pub use types::ReasoningEffortLevel;pub use types::SystemPromptMode;pub use types::ToolDocumentationMode;pub use types::UiSurfacePreference;pub use types::VerbosityLevel;pub use workspace_env::read_workspace_env_value;pub use workspace_env::write_workspace_env_value;pub use codex::FileOpener;pub use codex::HistoryConfig;pub use codex::HistoryPersistence;pub use codex::TerminalNotificationMethod;pub use codex::TuiAlternateScreen;pub use codex::TuiConfig;pub use codex::TuiNotificationEvent;pub use codex::TuiNotificationsConfig;
Modules§
- acp
- api_
keys - API key management module for secure retrieval from environment variables, .env files, and configuration files.
- auth
- codex
- constants
- context
- core
- debug
- Debug and tracing configuration
- defaults
- hooks
- ide_
context - loader
- mcp
- models
- Model configuration and identification module
- optimization
- Configuration for performance optimization features
- output_
styles - root
- schema
- status_
line - subagents
- telemetry
- timeouts
- types
- Common types and interfaces used throughout the application
- update
- Update configuration for VT Code auto-updater
- workspace_
env
Structs§
- Auth
Config - Auth
Copilot Config - Copilot
Auth Config - OpenAI
Auth Config - OpenAI
Chat GptAuth Handle - Runtime auth state shared by OpenAI provider instances.
- OpenAI
Chat GptSession - Stored OpenAI ChatGPT subscription session.
- Open
Router Auth Config - Configuration for OpenRouter OAuth authentication.
- Open
RouterO Auth Config - Configuration for OpenRouter OAuth authentication.
- Open
Router Token - Stored OAuth token with metadata.
- Pkce
Challenge - PKCE challenge pair containing verifier and challenge strings.
Enums§
- Auth
Status - OAuth authentication status.
- OpenAI
Chat GptAuth Status - Generic auth status reused by slash auth/status output.
- OpenAI
Preferred Method
Functions§
- clear_
oauth_ token - clear_
openai_ chatgpt_ session - generate_
pkce_ challenge - Generate a cryptographically secure PKCE challenge pair.
- get_
auth_ status - get_
auth_ url - Generate the OAuth authorization URL.
- get_
openai_ chatgpt_ auth_ status - get_
openai_ chatgpt_ auth_ url - Build the OpenAI ChatGPT OAuth authorization URL.
- load_
oauth_ token - Load an OAuth token from storage using the default mode.
- load_
openai_ chatgpt_ session - resolve_
openai_ auth - Resolve the active OpenAI auth source for the current configuration.
- save_
oauth_ token - Save an OAuth token to encrypted storage using the default mode.
- save_
openai_ chatgpt_ session