Crate vtcode_config

Crate vtcode_config 

Source
Expand description

Shared configuration loader utilities for VTCode 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::LedgerConfig;
pub use core::AgentConfig;
pub use core::AgentCustomPromptsConfig;
pub use core::AgentOnboardingConfig;
pub use core::AutomationConfig;
pub use core::CommandsConfig;
pub use core::FullAutoConfig;
pub use core::PromptCachingConfig;
pub use core::ProviderPromptCachingConfig;
pub use core::SecurityConfig;
pub use core::ToolPolicy;
pub use core::ToolsConfig;
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::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::ConfigManager;
pub use loader::SyntaxHighlightingConfig;
pub use loader::VTCodeConfig;
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 root::PtyConfig;
pub use root::StatusLineConfig;
pub use root::StatusLineMode;
pub use root::ToolOutputMode;
pub use root::UiConfig;
pub use router::ComplexityModelMap;
pub use router::HeuristicSettings;
pub use router::ResourceBudget;
pub use router::RouterConfig;
pub use schema::vtcode_config_schema;
pub use schema::vtcode_config_schema_json;
pub use schema::vtcode_config_schema_pretty;
pub use telemetry::TelemetryConfig;
pub use types::ReasoningEffortLevel;
pub use types::UiSurfacePreference;

Modules§

acp
api_keys
API key management module for secure retrieval from environment variables, .env files, and configuration files.
constants
context
core
defaults
hooks
loader
mcp
models
Model configuration and identification module
root
router
schema
telemetry
types
Common types and interfaces used throughout the application