Skip to main content

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::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§

AuthConfig
AuthCopilotConfig
CopilotAuthConfig
OpenAIAuthConfig
OpenAIChatGptAuthHandle
Runtime auth state shared by OpenAI provider instances.
OpenAIChatGptSession
Stored OpenAI ChatGPT subscription session.
OpenRouterAuthConfig
Configuration for OpenRouter OAuth authentication.
OpenRouterOAuthConfig
Configuration for OpenRouter OAuth authentication.
OpenRouterToken
Stored OAuth token with metadata.
PkceChallenge
PKCE challenge pair containing verifier and challenge strings.

Enums§

AuthStatus
OAuth authentication status.
OpenAIChatGptAuthStatus
Generic auth status reused by slash auth/status output.
OpenAIPreferredMethod

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