vtcode 0.156.1

A Rust-based terminal coding agent with modular architecture supporting multiple LLM providers
docs.rs failed to build vtcode-0.156.1
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.
Visit the last successful build: vtcode-0.21.8

Secure, open, universal terminal coding agent in Rust.

Agent Skills Agent Client Protocol Model Context Protocol Agent Plugins Ask DeepWiki

[!TIP] New here? Start with Installation, then Getting Started.

Overview

VT Code is an open-source Rust terminal coding agent for interactive and long-running autonomous work. It is a harness, not just an LLM wrapper: the model provides reasoning, while the runtime provides the tools, context, sandbox, state, evaluation, and verification needed to turn that reasoning into safe, reviewable progress.

A responsive TUI, multi-provider LLM support, durable sessions, open protocols, and extensible Skills take you from question to reviewed change without leaving the terminal.

[!NOTE] Status: Active development. Local inference and some automation flows are experimental and may change between releases.

[!TIP] Behind the build: Building VT Code, a year in: harness design, evals, security, and lessons from a year of building.

Video companions: Podcast · Video.

Podcast companion Video companion
Watch the podcast Watch the video

Why VT Code

Pillar What it means
Harness, not a wrapper The model reasons; the harness composes tools, context, sandbox, state, and evaluations to enforce progress.
Safety-first execution Sandboxed shell, command policies, workspace approvals, and fail-closed defenses for injection, path/symlink escape, and environment leakage.
Long-run reliability Durable session memory, task tracking, spooled output, checkpoints, automatic compaction, resumable handoffs, and verification before "done".
Observable by design A canonical ThreadEvent runtime contract supports replay, archives, checkpoints, memory views, and trajectory export.
Protocol-native MCP, Skills, Agent Plugins, ACP (Zed), A2A, WebMCP, Open Responses, and ATIF extend the system without core forks.
Controlled autonomy Planning, human approval, isolated worktrees, propose/verify sub-agents, full automation, and cost guardrails scale autonomy safely.
Runs anywhere 30 providers plus local Ollama, LM Studio, and llama.cpp.

Quick start

1. Install

curl -fsSL https://raw.githubusercontent.com/vinhnx/vtcode/main/scripts/install.sh | bash
# or: brew install vinhnx/tap/vtcode | cargo install vtcode

2. Configure

cd path/to/your/project
vtcode init                    # scaffolds config + AGENTS.md; review before committing
export OPENAI_API_KEY="sk-..." # or `vtcode login` for OAuth providers

3. Run

vtcode                         # interactive TUI
vtcode ask "explain Rc vs Arc" # one-shot question
vtcode exec "refactor main.rs" # headless task
vtcode review                  # review uncommitted changes

See Installation and Getting Started.

[!CAUTION] Never commit API keys or put them in vtcode.toml.

WebMCP browser bridge (opt-in)

[!NOTE] Pair a running session from the TUI or serve a bounded workspace for authenticated browser editing.

# Inside the TUI:
/webmcp pair <origin>

# Or serve a bounded workspace:
vtcode webmcp serve --origin <origin> --allowed-root <dir>
Host Link
Hosted app https://vtcode.vinhnx.chatgpt.site/
Fallback https://vinhnx.github.io/VTCode/
User guide WebMCP user guide
Deployment WebMCP deployment reference

Documentation

Area Guides
Start Installation · Getting started · Wiki · Blog: Building VT Code, a year in · Podcast companion · Video companion
Use TUI · CLI · WebMCP · Automation · Planning · Configuration
Extend Skills · Plugins · MCP · Editors
Operate Safety · Protocols · Loop engineering · Architecture

Providers

30 built-in providers, custom OpenAI-compatible endpoints, and local backends. Provider Guides is the source of truth for credentials and model defaults.

vtcode models list
vtcode models config

[!TIP] Restrict providers per workspace with providers_whitelist in vtcode.toml. Local inference (experimental) via Ollama, LM Studio, and llama.cpp is managed with /local in the TUI - see Local Models.

Development

graph LR
    types --> config --> core --> tools --> agent --> TUI
  1. Clone and run the fast gate:
git clone https://github.com/vinhnx/vtcode.git
cd vtcode
./scripts/run-debug.sh
./scripts/check-dev.sh   # fast gate: clippy, fmt, check
cargo nextest run        # tests (never `cargo test`)

Rust stable, edition 2024. ~30 crates layered as types → config → core → tools → agent → TUI, with ThreadEvent as the authoritative runtime contract.

See Development setup and Testing.

Contributing

VT Code grows with its community. Bug fixes, docs, ideas, testing, and reviews are all welcome.

Ways to contribute

  • Security advisories: Please report vulnerabilities privately first: Security Policy.
  • Bug fixes and patches: Small or large, every fix counts.
  • Documentation: Guides, examples, and corrections help everyone.
  • Features and ideas: Open an issue or start a discussion.
  • Code reviews and testing: Trying things out and reporting breakage keeps the project healthy.

Getting started

[!NOTE] Small, focused PRs merge fastest. If you get stuck, open an issue for help.

Contributors

Thank you to everyone who shaped VT Code.

Support

Sponsorship

VT Code is built and maintained in spare time. If it helped you ship or learn something, a sponsorship keeps the project independent.

GitHub Sponsors

License

First-party code is MIT OR Apache-2.0. See LICENSE. Third-party code keeps its original licenses: see THIRD-PARTY-NOTICES.

Back to top