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.
An open-source terminal coding agent built in Rust.
[!TIP] New here? Start with Installation, then Getting Started.
- Overview
- Quick start
- Why VT Code
- Architecture
- What's inside
- Documentation
- Development
- Contributing
- Support
- License
Overview
VT Code is a coding agent for your terminal: interactive TUI, headless
exec, and scheduled runs in one Rust binary. The model proposes work; the
runtime provides tools, context management, and command policy, and you
review changes before they land.
Plan, run, and review coding work from your terminal.
Full docs catalog: docs overview.
[!NOTE] Status: Active development; some automation flows are experimental. OAuth login for ChatGPT and GitHub Copilot reuses the Codex CLI's public client identity (unofficial); prefer your own API key for supported paths. See OAuth authentication.
- Building VT Code, a year in covering harness design, evals, security, and lessons learned.
- Podcast · Video
Quick start
1. Install
|
The installer also sets up ripgrep and ast-grep on macOS/Linux. Other
methods from the installation guide:
# or, if you have Rust: cargo install vtcode
[!NOTE] Windows artifacts are best-effort and may lag behind macOS/Linux; see the installation guide.
2. Configure
In your project, initialize workspace instructions and add a provider key:
Any provider works in place of openai. Env vars or a workspace .env also
work; vtcode login covers supported OAuth providers. Credential options:
Getting started.
[!CAUTION] Never commit API keys or put them in
vtcode.toml.
3. Run
Ask for a change, inspect the result, keep or discard it. For headless tasks and sessions, see Commands.
Why VT Code
For work that takes more than one prompt:
- Context that persists. Project instructions, context assembly, and compaction for long sessions. Runtime guidance
- Controlled tool use. Command policy and sandboxing at the execution boundary. Security model
- Revisitable sessions.
vtcode continue,vtcode trajectory, workspace snapshots. Command reference - A review path. Plan read-only before implementing; inspect edits in turn diffs. Planning workflow · Diff previews
- Beyond the TUI. Headless
vtcode exec, scheduled prompts, MCP, Skills, and Plugins. Full automation · Providers
For repeatable, environment-checked results, use the eval framework; an agent's completion message alone is not a verification result.
Architecture
One binary, four layers. Everything the model touches goes through the harness; nothing bypasses it.
graph LR
subgraph entry [Entry points]
TUI[TUI]
CLI[CLI / exec / cron]
ACP[Editor via ACP]
end
subgraph harness [Harness]
LOOP[Agent loop]
CTX[Context assembly + compaction]
SEC[Tool policy + sandboxed exec]
EVT[(ThreadEvent log)]
end
subgraph ext [Extensions]
MCPX[MCP servers]
SKILLS[Skills]
PLUGINS[Plugins]
end
MODELS[OpenAI · Anthropic · Gemini · local]
TUI --> LOOP
CLI --> LOOP
ACP --> LOOP
LOOP --> CTX
LOOP --> SEC
LOOP <--> EVT
LOOP <--> ext
LOOP <--> MODELS
The TUI, headless exec/ask, cron schedules, and editors over ACP all
drive the same loop. Layers map to workspace crates: entry points in
vtcode and vtcode-acp; the harness in vtcode-core (policy and
sandboxing in vtcode-safety); the ThreadEvent contract in
vtcode-exec-events; extensions in vtcode-mcp, vtcode-skills, and
vtcode-agent-plugins; provider clients in vtcode-llm.
Layer-by-layer details: Architecture guide.
What's inside
One binary: TUI, session tools, provider integrations, and an eval runner. MCP servers and plugins need their own setup; see the extension guides.
Commands
Run vtcode for the TUI; pick a subcommand for a specific task:
Common commands, flags, and workflows: command reference.
For session lifecycle and day-to-day operations:
| Command | Purpose |
|---|---|
vtcode continue |
Resume the last session, or fork it into a new one with --session-id |
vtcode init |
Scaffold vtcode.toml and AGENTS.md in the workspace; review before committing |
vtcode exec resume |
Continue a finished headless run with a follow-up prompt: --last or a session id |
vtcode schedule |
Durable recurring prompts, by cron or one-shot; install-service survives restarts |
vtcode secret |
Store provider API keys in your OS keyring, never in shell history or workspace files |
vtcode login |
OAuth sign-in for ChatGPT and GitHub Copilot; see OAuth authentication |
vtcode auth |
Show authentication status for one provider or all supported providers |
vtcode models |
Inspect, test, and compare providers and models |
vtcode snapshots / vtcode revert |
List and roll back to workspace snapshots |
vtcode tool-policy |
Allow or deny specific tools per workspace |
vtcode trajectory |
Pretty-print run logs for debugging and audits |
vtcode skills / vtcode plugins |
Manage skills and agent plugins |
vtcode mcp |
Connect and manage MCP servers |
More: vtcode config, vtcode dependencies, vtcode acp, vtcode a2a,
vtcode webmcp, vtcode session-store, vtcode schema (built-in tool
schemas), vtcode analyze (workspace structure/security/performance),
vtcode check (built-in repository checks), and vtcode man (man pages).
Full list: vtcode --help or the
command reference.
Everyday recipes
# Review only the uncommitted diff, then exit with a verdict
# Weekly dependency audit (Mondays 09:00) as a durable cron job
# Resume yesterday's session and fork it for a new experiment
# Continue the last headless run with a follow-up prompt
# See exactly what the agent did in the last run
Pick a specific exec session by id: vtcode exec resume <session-id> "...".
Headless exec: exec mode guide ·
Cron schedules: scheduled tasks guide.
WebMCP browser bridge (opt-in)
Pair the TUI with a browser editor for authenticated, bounded editing:
Hosts and deployment: WebMCP user guide.
Documentation
Per-subcommand details are in the command reference.
| Layer | Guides |
|---|---|
| Start | Installation · Getting started · OAuth login · FAQ · Compatibility · Wiki |
| Use | TUI · CLI · Exec mode · Scheduled tasks · WebMCP |
| Automate | Automation · Hooks · Planning · Configuration |
| Extend | Skills · Plugins · MCP · Editors (ACP) |
| Operate | Safety · Evals · Protocols · Loop engineering · Architecture |
Can't find a topic? Documentation Index.
The WebMCP hosted app (mirror) pairs with the TUI bridge; deployment: WebMCP deployment reference.
Development
graph LR
BIN[vtcode binary] --> CORE[vtcode-core harness]
CORE --> LLM[vtcode-llm]
CORE --> SAFETY[vtcode-safety]
CORE --> EVENTS[vtcode-exec-events]
CORE --> UI[vtcode-ui]
Rust stable, edition 2024, MSRV 1.98.1. Clone and run the fast gate:
CI runs with RUSTFLAGS="-D warnings" and --locked; match locally with
cargo check --locked. Details: development overview
· testing guide.
Release binaries and notes: GitHub releases (Windows artifacts may lag behind macOS/Linux).
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 trajectoryoutput when possible.
Before a PR: Conventional Commits
(type(scope): subject), ./scripts/check-dev.sh + cargo nextest run,
focused diff.
Contributors
VT Code is what it is because of the people who build, test, and improve it alongside me. Thank you, all of you.
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
Support
Contact
Partnership 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.
Share VT Code
If VT Code helped you ship something, telling other developers is the easiest way to support the project:
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 the project independent.
License
First-party code is MIT OR Apache-2.0 (LICENSE); third-party code keeps its original licenses (THIRD-PARTY-NOTICES).