Skip to content

Feature Flags

Kova uses Cargo features so your build compiles only what you use. Providers are on by default; tools and telemetry are off.

FlagDefaultWhat it addsExtra dependencies
anthropicNative Anthropic provider (Messages API: streaming, tool use, adaptive thinking, automatic prompt caching)none beyond core
openaiOpenAI-compatible provider (OpenAI, Azure, vLLM, LM Studio, local Ollama endpoint) + OpenAI embeddingsnone beyond core
geminiGoogle Gemini providernone beyond core
ollamaOllama provider (local models, no API key) + Ollama embeddingsnone beyond core
bedrockAWS Bedrock providerthe AWS SDK crates (aws-sigv4, aws-config, smithy, …)
toolsFilesystem & shell tools: read_file, list_dir, search, edit_file, write_file, patch_file, shellglob, regex, diffy
web-toolsAdds fetch_webpage + the fetch_text SSRF-guarded helper; implies toolsscraper, dom_smoothie, htmd, enables tokio/net
telemetryOpenTelemetry span export (OTLP gRPC/HTTP, Jaeger, stdout)opentelemetry*, tracing-opentelemetry

The openai and ollama flags also gate the matching EmbeddingProvider implementations — see Embeddings.

Just hosted Anthropic, lightest build — skip the AWS dependency tree:

kova-sdk = { version = "0.9", default-features = false, features = ["anthropic"] }

Local development with Ollama, no cloud:

kova-sdk = { version = "0.9", default-features = false, features = ["ollama"] }

A coding/automation agent that needs filesystem + shell + web:

kova-sdk = { version = "0.9", features = ["web-tools"] }

Production with tracing to an OTLP collector:

kova-sdk = { version = "0.9", features = ["telemetry"] }

Everything:

kova-sdk = { version = "0.9", features = ["web-tools", "telemetry"] }
  • bedrock is on by default but heavy. It pulls the entire AWS SDK stack. If you don’t target Bedrock, default-features = false and re-add only the providers you use — the build shrinks noticeably.
  • Built-in tools are off by default. They add dependencies (web-tools pulls an HTML parser + readability extraction). Opt in only when you need them, and prefer tools over web-tools if you don’t fetch web pages.
  • telemetry is off by default. OpenTelemetry crates are heavy on compile time and binary size. Without the feature, TelemetryConfig::init() still installs a lightweight tracing_subscriber with zero OTEL overhead — so you keep structured logs and only pay for OTEL when you export.

web-tools implies tools — enabling it gives you the filesystem/shell tools and the web tools. There’s no way to get web tools without the file tools, by design (the web tools build on the same policy machinery). If you only need files and shell, use tools alone to avoid the HTML parsing stack.

Terminal window
# See the resolved feature set and dependency tree
cargo tree -e features -p kova-sdk
# Build with a specific set
cargo build --no-default-features --features openai,tools