Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
VT Code is an open-source Rust terminal coding agent for interactive and long-running autonomous workflows. It brings a responsive TUI, safe terminal tools, multi-provider LLM support, open protocols, and extensible Skills into one tool—so you can move from a question to a reviewed change without leaving your terminal.
Project status: Active development. VT Code is currently at version
0.146.4; local inference and some automation workflows are experimental. Interfaces and configuration may change between releases.
Contents
New here? Start with Installation, then Getting Started.
Features
Runtime and coding
- Agent runtime: interactive TUI, slash commands, streaming,
ask/execCLI, session resume, and review workflows - Coding tools: safe file operations, ripgrep search, ast-grep symbol maps, fuzzy discovery, code intelligence, project indexing, and terminal execution
Extensibility and providers
- Extensibility: Agent Skills, MCP client/server, Agent Plugins, lifecycle hooks, subagents, custom providers, and ACP
- Model providers: 26+ built-in providers, custom OpenAI-compatible endpoints, and local inference via Ollama, LM Studio, and llama.cpp (managed with
/local)
Safety and protocols
- Safety: restricted shell sandbox, tool guardrails, subprocess isolation, audit logging, and per-workspace approval before lifecycle hooks defined in workspace configuration (
vtcode.toml,.vtcode, or agent-spec files) can run shell commands - Provider governance:
providers_whitelistrestricts which LLM providers VT Code can access, preventing accidental data leakage to unapproved endpoints - Protocols: Open Responses, Agent2Agent (A2A), ATIF, and Anthropic Messages API
Automation and planning
- Loop engineering: worktree isolation for parallel agents, propose/verify sub-agent separation, durable loop state, and cost guardrails
- Planning workflow: iterate on a build plan with
/planand theplanprimary agent, then hand off tobuild/autovia a structured review gate
Quick start
1. Install
The native installer is recommended for macOS and Linux. It installs VT Code
and the ripgrep and ast-grep search tools used by its coding workflow.
|
Other installation methods are documented in the Installation Guide.
# Homebrew
# Cargo
2. Initialize a workspace
Run this from the project you want VT Code to work on:
This scaffolds project configuration and agent guidance. Review the generated files before committing them.
3. Configure a provider
Set the API key for the provider you want to use (or configure an OAuth-based
provider with vtcode login). For example:
See the provider guides for supported
providers, local inference options, and authentication details. Never commit
API keys or place them directly in vtcode.toml.
4. Launch VT Code
VT Code opens an interactive terminal UI in the current workspace. Use ask,
exec, or review when you want a one-shot workflow.
Common commands
Documentation
User guides
- Wiki: community wiki on getting started, configuration, providers, local models, skills, MCP, automation, security, and FAQ
- Installation: installation methods, provider setup, and troubleshooting
- Interactive TUI: primary agents, slash commands (
/model,/review,/mcp,/skills,/theme,/compact) - CLI commands: command reference for interactive, headless, review, and automation workflows
- Full automation:
--full-autoCLI, plan-build-evaluate harness, subagents, and scheduled tasks - Providers: setup guides for all 26+ providers
- Configuration:
vtcode.toml, tool config, and lifecycle hooks
Integrations
- Agent Skills: creating, loading, and sharing skills
- Agent Plugins: portable skill + MCP packages via
vtcode plugins - MCP Integration: client and server modes
- Editor guides: Zed ACP, VS Code, and Claude Code
Operations and architecture
- Safety: shell sandbox, security hardening, and threat model
- Protocols: Open Responses, ATIF, A2A, and Anthropic Messages API
- Loop engineering: worktree isolation, propose/verify, loop state, and cost guardrails
- Planning workflow:
/plan, review gate, and plan handoff to build/auto agents
Reference
- Architecture: workspace boundaries and runtime design
- Configuration field reference: complete
vtcode.tomlreference - Command security model: execution policy and sandbox boundaries
- Development setup: prerequisites and local workflow
- Testing: test profiles and verification commands
Providers
VT Code supports 26+ built-in providers, local inference backends, and custom OpenAI-compatible endpoints.
Provider directory
| Category | Providers |
|---|---|
| Cloud LLMs | Anthropic · OpenAI · Gemini · Meta AI (Muse) · Z.AI · Moonshot (Kimi) · StepFun · MiniMax · Mistral · Qwen |
| Foundations | NVIDIA NIM · Xiaomi MiMo |
| Gateways | OpenRouter · Merge Gateway · Evolink · HuggingFace · Atlas Cloud · OmniRoute |
| Local inference | Ollama · LM Studio · llama.cpp |
| Other | GitHub Copilot · Anthropic API Compat · Poolside |
Additional built-in providers include DeepSeek, xAI, OpenCode Zen, and OpenCode Go.
See the Provider Guides for credentials,
model defaults, API capabilities, and setup details.
Merge Gateway is a built-in OpenAI-compatible gateway with curated routes and
pass-through support for valid explicit provider/model IDs.
Configure a provider
List available providers and configure one from the CLI:
For a quick start, set the environment variable documented by your provider.
OAuth-based providers can use their dedicated vtcode login command.
Custom providers
Use [[custom_providers]] to add a private gateway, an aggregator such as
Atlas Cloud or OmniRoute, or an internal inference cluster:
Basic configuration
[[]]
= "mycorp"
= "MyCorp"
= "https://llm.corp.example/v1"
= "MYCORP_API_KEY"
= "gpt-5-mini"
= ["gpt-5-mini", "gpt-5.4"]
= 256000 # optional; defaults to 128000 tokens
Set the corresponding environment variable before launching VT Code:
Capability settings
context_window: capability size in tokens. It controls UI context sizing, compaction thresholds, and preflight token checks.models: optional model IDs to expose in the model picker.modelremains the default selection.api_format: optional value ofauto,openai-chat,openai-responses, oranthropic-messages. Omit it to preserve autodetection, or set it explicitly to prevent fallback to another format.- Capability defaults include
supports_tools,supports_reasoning,supports_reasoning_effort,supports_vision,supports_structured_output,supports_parallel_tool_calls,supports_context_caching,supports_responses_compaction, andsupports_context_edits.
The separate context.max_context_tokens setting can impose a lower session
budget. See the configuration reference,
the custom provider configuration.
Model profiles
Use a profile for model-specific overrides:
[]
= "openai-responses"
= 131072
= true
= false
= true
Profiles apply only to an existing model identifier. They do not add models to
the picker. Use model or models on the provider entry to control model
availability.
Validate the configuration
See the worked provider examples for Atlas Cloud and OmniRoute.
Provider governance
Use providers_whitelist in vtcode.toml to restrict access to approved
providers. This helps prevent accidental data leakage in corporate or
air-gapped environments.
# vtcode.toml
= ["opencode-zen", "opencode-go", "gemini"]
Leave it empty, the default, to allow all built-in and custom providers. See the configuration reference and Getting Started for setup instructions.
Local models (experimental)
Run models entirely on your machine for privacy, offline use, or zero token cost. VT Code supports three local backends, all managed from the TUI:
Supported backends
- Ollama (
ollama serve), best-supported local backend; auto-loads pulled models. - LM Studio (
lms server start), OpenAI-compatible; select the loaded model in the picker. - llama.cpp (
llama-server -m model.gguf), most automated; auto-starts viaLLAMACPP_MODEL_PATH.
TUI commands
/local # interactive local server manager
/local start ollama # start a specific backend
/local troubleshoot # diagnose connection / model issues
Before each generation VT Code verifies the server is up and the model is
loaded, and on failure prints the exact recovery command (e.g.
ollama pull gpt-oss:20b) instead of a cryptic error. Local inference is
experimental and depends on your hardware. See
Local Models guide for trade-offs, hardware
sizing, and a reliable-setup checklist. For the full /local reference, see
Local Inference Servers.
Development
Build from source
Workspace layout
Rust stable, edition 2024, MSRV 1.93.0. The workspace contains roughly 30 crates; the root binary and core/UI crates are included in the default build:
| Layer | Crates |
|---|---|
| Binary | vtcode |
| Common | vtcode-commons, vtcode-exec-events, vtcode-macros, vtcode-utility-tool-specs |
| Codegen | vtcode-core, vtcode-ui, vtcode-config, vtcode-llm, vtcode-skills, vtcode-safety, vtcode-a2a, vtcode-mcp, vtcode-auth, vtcode-acp, vtcode-indexer, vtcode-bash-runner, vtcode-memory, vtcode-eval |
Library use
For crate-based integrations, see vtcode-battery-pack.
Quality checks
CI runs locked dependency resolution and treats warnings as errors. For a
faster local iteration loop, use ./scripts/check-dev.sh; use nextest rather
than cargo test for the project's test suite.
Contributing
VT Code is built by an open-source community. Whether you're fixing bugs, improving docs, proposing features, reporting security issues, or shipping patches, all contributions are welcome.
Ways to contribute
- Security advisories: Responsible disclosure makes everyone safer. See the Security Policy for reporting guidelines.
- Bug fixes and patches: Small or large, every fix matters.
- Documentation: Guides, examples, and improvements help the whole ecosystem.
- Features and ideas: Open an issue or start a discussion.
- Code reviews and testing: Help keep the project healthy.
Getting started
- Browse good first issues
- Read CONTRIBUTING.md for humans
- Check AGENTS.md for AI agents
Contributors
Thank you to everyone who has contributed to VT Code, your work makes this project better for all of us.
Support
Sponsorship
VT Code is a labor of love built in my spare time. If it's helped you ship something or learn something, a sponsorship would mean the world.
License
First-party code is licensed under MIT OR Apache-2.0, choose whichever works best for you. See LICENSE for the full Apache-2.0 text; MIT terms are also granted under the same copyright.
Third-party and inspired-by code remains under its original licenses. See THIRD-PARTY-NOTICES for attributions.