vtcode 0.171.4

A Rust-based terminal coding agent with modular architecture supporting multiple LLM providers
docs.rs failed to build vtcode-0.171.4
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

VT Code

An open-source terminal coding agent built in Rust.

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

Overview

VT Code is an open-source terminal coding agent built in Rust. Explore a codebase, plan changes, run tools, and review edits in the interactive TUI, or run vtcode exec headless. You pick the model and permissions; the runtime handles context, tools, and execution policy.

  • Plan, then review: read-only planning, then turn diffs.
  • Run long sessions: project instructions, compaction, resumption, execution logs.
  • Control execution: command policy and sandboxing.
  • Pick your stack: hosted or local models, plus MCP, Skills, and Plugins.

Plan, run, and review coding work from your terminal.

Quick start

1. Install

curl -fsSL https://raw.githubusercontent.com/vinhnx/VTCode/main/scripts/install.sh | bash

The installer also sets up ripgrep and ast-grep on macOS/Linux. Or use Homebrew or Cargo:

brew trust vinhnx/tap
brew install vinhnx/tap/vtcode

# Or install with Rust
cargo install vtcode

See the installation guide for prerequisites, other methods, and the installer script you can review before running.

[!NOTE] Windows artifacts are best-effort and may lag behind macOS/Linux.

2. Configure your project

In your project, initialize configuration and instructions, then add provider credentials. For example, with OpenAI:

cd path/to/your/project
vtcode init                # scaffolds config + AGENTS.md; review before committing
vtcode secret add openai   # stores an OpenAI API key in your OS keyring

Replace openai with your supported provider. Credentials can also come from environment variables or a workspace .env; vtcode login handles supported login flows. See Getting started and Provider guides.

[!NOTE] ChatGPT OAuth reuses the Codex CLI's public client identity via an unofficial compatibility flow; prefer your own OpenAI API key. GitHub Copilot uses the official copilot CLI. See OAuth authentication.

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

3. Run your first task

vtcode   # open the interactive TUI in your project

Start with a focused request, such as “Explain how this project handles authentication,” then review the diff and test results before committing. For automation and session commands, see Usage.

Usage

Interactive

Use vtcode to explore, plan, and implement changes in the TUI. For larger tasks, start with read-only planning, then review turn diffs before committing. See the interactive guide for controls.

Headless

Run tasks without the TUI: ask for a tool-free answer, exec for a tool-enabled coding task, and review for uncommitted changes:

vtcode ask "explain Rc vs Arc"    # one-shot answer, no session, no tools
vtcode exec "refactor main.rs"    # headless task with the full tool loop
vtcode review                     # agent review of uncommitted changes

exec requires autonomous execution enabled in [automation.full_auto] plus full_auto workspace trust: a terminal prompts for trust, while non-TTY runs fail unless you set VTCODE_TRUST_WORKSPACE=full-auto. Full-auto's tool allow-list, explicit denies, and execution policy still apply. See exec mode for trust and output options and full automation for configuration.

For repeatable, environment-checked results, use the eval framework — a completion message alone is not verification.

Scheduled tasks

For recurring work, use scheduled tasks: durable prompt jobs on the same exec runtime.

# Weekly dependency audit (Mondays 09:00)
vtcode schedule create --name "weekly-dep-audit" \
  --cron "0 9 * * 1" \
  --prompt "Check for outdated dependencies and report known vulnerabilities"

Sessions

Resume or inspect earlier work:

# Resume the most recent interactive session
vtcode continue

# Continue the last headless run with a follow-up prompt
vtcode exec resume --last "continue the refactor"

# Inspect the execution log
vtcode trajectory

Use vtcode continue --session-id <id> to fork an earlier session.

Extend and integrate

Enable these only when you need them; none are required for the quick start.

Extensions

MCP servers, Agent Skills, and Plugins.

Editors

ACP with Zed for editor integration. WebMCP pairs the TUI with an authenticated browser editor:

/webmcp pair <origin>    # inside the TUI

The hosted app at vtcode.vinhnx.chatgpt.site (mirror) uses this workspace-scoped bridge. See the WebMCP user guide and deployment reference.

Cross-session memory

Memcode MCP carries context between tasks; see the write-up.

Documentation

Guides by task; the full catalog lives in the documentation index, the docs overview, and the Wiki:

Goal Guides
Get started Installation · Getting started · Providers · OAuth login · FAQ · Compatibility
Work in the TUI TUI · Command reference · Planning · Turn diffs · Configuration · Safety
Automate Exec mode · Full automation · Scheduled tasks · Hooks
Extend and integrate Skills · Plugins · MCP · Editors (ACP) · WebMCP · Memcode
Develop and evaluate Development · Testing · Evals · Architecture · Protocols · Loop engineering

Development

graph LR
    BIN[vtcode binary] --> CORE[vtcode-core harness]
    BIN --> EVAL[vtcode-eval]
    CORE --> LLM[vtcode-llm]
    CORE --> SAFETY[vtcode-safety]
    CORE --> EVENTS[vtcode-exec-events]
    CORE --> CONFIG[vtcode-config]
    CORE --> MEMORY[vtcode-memory]
    CORE --> UI[vtcode-ui]

Full 23-crate map: Architecture guide. Requires Rust 1.98.1+ (edition 2024) and cargo-nextest for tests:

git clone https://github.com/vinhnx/VTCode.git
cd VTCode
./scripts/run-debug.sh     # build and launch a debug binary
./scripts/check-dev.sh     # fast gate: clippy, fmt, check
cargo nextest run          # tests (requires cargo-nextest)

CI sets RUSTFLAGS="-D warnings" and builds with --locked; match locally with RUSTFLAGS="-D warnings" cargo check --locked. Setup and checks: development overview · testing guide.

Release binaries and notes: GitHub releases.

Contributing

Contributions are welcome:

  • Code — pick or propose an issue; keep changes surgical and tested.
  • Docs — every user-facing feature lands with its documentation.
  • Evals — new suites and regression cases are high-leverage; see the eval guide.
  • Bug reports — include vtcode trajectory output when possible.

Before a PR, see the contribution guide: Conventional Commits (type(scope): subject), ./scripts/check-dev.sh + cargo nextest run, and a focused diff.

Community

Thanks to everyone who builds, tests, and improves VT Code.

Security Advisors

   

Main Contributor

 

Core Contributors

                 

Contributors

                           

Want to see your avatar here? Every bit counts: one-line fixes, bug reports, and feedback are all welcome.

Report a bug · Request a feature · Share feedback · Star the repo · Contribute

Contact

Partnerships and collaboration: vinhnguyen2308 [at] gmail [dot] com. Bugs and feature requests: GitHub Issues. Security vulnerabilities: report privately via GitHub private vulnerability reporting; never open a public issue. Details: security policy.

Resources

Share VT Code

If VT Code helped you ship something, telling other developers is the easiest way to support it:

Share on X · Share on Hacker News · Share on LinkedIn · Share via Email · Share via SMS

Sponsorship

VT Code is maintained in spare time; a sponsorship keeps it independent.

@dnhn  @codemod  @coderabbitai  @KhaiRyth

GitHub Sponsors Buy Me a Coffee

License

First-party code is MIT OR Apache-2.0 (LICENSE); third-party code keeps its original licenses (THIRD-PARTY-NOTICES).