VT Code:用 Rust 构建的开源终端编码智能体
vinhnx/VTCode
vinhnx/VTCode 是一款用 Rust 构建的开源终端编码智能体,可在终端中规划、运行和审查编码工作,支持托管或本地模型、沙箱执行与可恢复会话。它提供交互式 TUI 和 `vtcode exec` 无头模式,并集成 MCP、Skills、插件及 Zed 编辑器桥接,安装需 Rust 1.98.1+。
An open-source terminal coding agent built in Rust.
Plan, run, and review coding work from your terminal, with hosted or local models, sandboxed execution, and resumable sessions.
Contents
- VT Code
Overview
Explore a codebase, plan changes, run tools, and review edits in the interactive TUI, or run vtcode exec headless.
Pick your model and set your permissions; the runtime handles context management, tools, and execution policy.
| At a glance | What you get |
|---|---|
| Planning | Plan read-only, then review turn diffs. |
| Safety | Auditable command policy and sandboxing. |
| Long runs | Headless exec with compaction, resumption, and logs. |
| Integrations | MCP, Skills, plugins, and editor bridges. |
| Models | Hosted or local providers, chosen per task. |
The sections below follow that arc: install, configure, run a first task, then go deeper.
Quick start
Requirements: macOS, Linux, or Windows/WSL. The Cargo path also needs Rust 1.98.1+ (edition 2024).
1. Install
curl -fsSL https://raw.githubusercontent.com/vinhnx/VTCode/main/scripts/install.sh | bashThe 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 (requires Rust 1.98.1+)
cargo install vtcodeVerify the install with vtcode --version, then see the installation guide for
prerequisites, other methods, and the installer script to 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 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 projectStart with a focused request, such as "Explain how this project handles authentication," then review the diff and test results before committing. See Usage for automation and session commands, or getting started for a guided tour.
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.
After a task, /explain reviews outcome, changes, decisions, verification, and review priorities without another
model call:
/explain --detailsadds evidence./explain diagramshows execution relationships./explain --webopens the browser view with an offline fallback./explain --export htmlsaves a standalone report.
Scopes and report options: explanation usage.
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 [automation.full_auto] plus full_auto workspace trust. Terminals prompt for trust; non-TTY runs
fail unless VTCODE_TRUST_WORKSPACE=full-auto is set. The tool allow-list, explicit denies, and execution policy
still apply. See exec mode and
full automation for trust, output, and configuration details.
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 from the same commands:
# 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.
Integrations
Enable these only when you need them; none are required for the quick start.
| Integration | What it gives you |
|---|---|
| MCP | Connect external tools and data sources. |
| Agent Skills | Load reusable prompt packages on demand. |
| Plugins | Extend the agent with plugin manifests. |
| ACP with Zed | Drive VT Code from the Zed editor. |
| WebMCP | Pair the TUI with an authenticated browser editor via /webmcp pair <origin>; the hosted app (site, mirror) connects through this bridge. See the deployment reference. |
| Memcode MCP | Carry context between tasks; see the design 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]
Loading
The full 23-crate map lives in the architecture guide. Building requires Rust 1.98.1+
(edition 2024); tests need cargo-nextest:
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
and the testing guide.
Release binaries and notes: GitHub releases.
Contributing
Contributions are welcome in every form:
- 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 trajectoryoutput 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.
Security
Report vulnerabilities privately via GitHub private vulnerability reporting; never open a public issue. Details: security policy.
Community
Thanks to everyone who builds, tests, and improves VT Code. For partnerships and collaboration, reach the maintainer
at vinhnguyen2308 [at] gmail [dot] com; bugs and feature requests belong in
GitHub Issues.
View all contributors
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
Resources
- Building VT Code, a year in: harness design, evals, security, and lessons learned.
- Podcast · Video
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.
License
First-party code is MIT OR Apache-2.0 under LICENSE. Third-party code keeps its original licenses, listed in THIRD-PARTY-NOTICES.
来源:GitHub · github.com
