vtcode 0.117.5

A Rust-based terminal coding agent with modular architecture supporting multiple LLM providers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
<div align="center">
  <img src="./resources/logo/vt_code_adaptive.svg" alt="VT Code" width="520" />

  <p><strong>A Rust terminal coding agent with safe workspace tools, multi-provider LLM support, and open protocol integrations.</strong></p>

  <p>
    <a href="https://crates.io/crates/vtcode"><img src="https://img.shields.io/crates/v/vtcode?style=flat-square&color=171C26&label=crates.io" alt="Crates.io Version" /></a>&nbsp;
    <a href="https://github.com/vinhnx/vtcode/releases"><img src="https://img.shields.io/github/v/release/vinhnx/vtcode?style=flat-square&color=171C26&label=Release" alt="GitHub Release" /></a>&nbsp;
    <a href="./docs/skills/SKILLS_GUIDE.md"><img src="https://img.shields.io/badge/Agent%20Skills-BFB38F?style=flat-square" alt="Skills" /></a>&nbsp;
    <a href="./docs/guides/zed-acp.md"><img src="https://img.shields.io/badge/ACP-Zed-383B73?style=flat-square&logo=zedindustries" alt="Zed ACP" /></a>&nbsp;
    <a href="./docs/guides/mcp-integration.md"><img src="https://img.shields.io/badge/MCP-A63333?style=flat-square&logo=modelcontextprotocol" alt="MCP" /></a>&nbsp;
    <a href="https://deepwiki.com/vinhnx/VTCode"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki" /></a>
  </p>

  <img src="./resources/gif/vtcode.gif" alt="VT Code demo" />
</div>

## Table of contents

- [Table of contents]#table-of-contents
- [What is VT Code?]#what-is-vt-code
- [Core capabilities]#core-capabilities
- [Install]#install
    - [macOS and Linux]#macos-and-linux
    - [Windows PowerShell]#windows-powershell
    - [Package managers]#package-managers
- [Quick start]#quick-start
- [Model promotions]#model-promotions
    - [Xiaomi MiMo V2.5 Series]#xiaomi-mimo-v25-series
- [Configuration]#configuration
    - [Atlas Cloud]#atlas-cloud
- [Extension points]#extension-points
    - [Skills]#skills
    - [MCP]#mcp
    - [Agents and editors]#agents-and-editors
- [Safety model]#safety-model
- [Protocols and exports]#protocols-and-exports
- [Benchmarks]#benchmarks
- [Documentation]#documentation
- [Contributing guide]#contributing-guide
  - [For AI agents]#for-ai-agents
  - [For human contributors]#for-human-contributors
- [Development]#development
- [Contributing]#contributing
- [Support]#support
- [Star History]#star-history
- [License]#license

## What is VT Code?

VT Code is an open-source coding agent for the terminal. It combines a model-driven reasoning loop with a local harness that can read files, search code, edit safely, run commands, preserve context, resume sessions, and connect to external tools.

The default workflow is intentionally simple: one reliable agent loop, explicit delegation for bounded side work, and a workspace-first security model.

## Core capabilities

| Area             | What VT Code provides                                                                                                                                                 |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Agent runtime    | Interactive TUI, slash commands, streaming responses, non-interactive `ask` and `exec`, resume and continue, dynamic context curation                                 |
| Coding tools     | Safe file operations, patching, ripgrep search, fuzzy file discovery, syntax-aware code intelligence, project indexing, terminal execution                            |
| Model providers  | GitHub Copilot, OpenAI, Anthropic, Gemini, DeepSeek, OpenRouter, Z.AI, Moonshot AI, MiniMax, HuggingFace, Ollama, LM Studio, llama.cpp, custom OpenAI-compatible APIs |
| Extensibility    | Agent Skills, MCP clients and server mode, lifecycle hooks, subagents, background subprocess agents, custom providers, editor integrations                            |
| Interoperability | Open Responses, Agent2Agent, Anthropic Messages API compatibility, ATIF trajectory export                                                                             |
| Terminal UX      | Rich TUI, mouse support, text selection, live command output, Ghostty VT snapshots with `legacy_vt100` fallback                                                       |

## Install

### macOS and Linux

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

Skip optional search tools:

```bash
curl -fsSL https://raw.githubusercontent.com/vinhnx/vtcode/main/scripts/install.sh | bash -s -- --without-search-tools
```

### Windows PowerShell

```powershell
irm https://raw.githubusercontent.com/vinhnx/vtcode/main/scripts/install.ps1 | iex
```

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

### Package managers

```bash
cargo install vtcode
brew install vtcode

# Development tap
brew tap vinhnx/tap
brew install vinhnx/tap/vtcode
```

> [!TIP]
> Official macOS/Linux release archives include `ghostty-vt/` runtime libraries for richer PTY snapshots. Custom installs continue to work with the built-in `legacy_vt100` backend.

More details: [Installation Guide](./docs/installation/README.md), [Native Installer Guide](./docs/installation/NATIVE_INSTALLERS.md), [Ghostty VT Packaging](./docs/development/GHOSTTY_VT_PACKAGING.md).

## Quick start

Set a provider key and launch VT Code in a project:

```bash
export OPENAI_API_KEY="sk-..."
vtcode
```

Common commands:

```bash
vtcode ask "write a Rust factorial function" > factorial.rs
vtcode exec "summarize the current git diff"
vtcode --resume
vtcode --continue
```

VT Code keeps primary output on stdout and sends logs, metadata, reasoning traces, and prompts to stderr. This keeps `ask` and `exec` useful in shell pipelines.

## Model promotions

### Xiaomi MiMo V2.5 Series

Try Xiaomi's MiMo V2.5 Pro with invite code `K5BCAP`. Enter the code in the console sidebar after signup to unlock the promotion.

<p align="center">
  <a href="https://platform.xiaomimimo.com/docs/en-US/welcome">
    <img src="./resources/screenshots/xiaomi_mi_promo.png" alt="Xiaomi MiMo V2.5 Pro promotion invite code K5BCAP" width="386" />
  </a>
</p>

Read: [Xiaomi MiMo documentation](https://platform.xiaomimimo.com/docs/en-US/welcome).

## Configuration

Most settings live in `vtcode.toml`. Runtime overrides use `--config key=value`.

```toml
[agent]
provider = "openai"
default_model = "gpt-5.4"
```

### Atlas Cloud

[Atlas Cloud](https://atlascloud.ai) is a new LLM provider in VT Code. It works through VT Code's `[[custom_providers]]` support, so you can point VT Code at `https://api.atlascloud.ai/v1` without adding a dedicated runtime provider.

```toml
[agent]
provider = "atlascloud"
default_model = "deepseek-ai/DeepSeek-V3-0324"

[[custom_providers]]
name = "atlascloud"
display_name = "Atlas Cloud"
base_url = "https://api.atlascloud.ai/v1"
api_key_env = "ATLASCLOUD_API_KEY"
model = "deepseek-ai/DeepSeek-V3-0324"
```

<p align="center">
  <img src="./resources/screenshots/atlascloud-provider.png" alt="Atlas Cloud provider configuration" width="400" />
</p>

Other custom OpenAI-compatible providers use the same `[[custom_providers]]` pattern.

Recommended validated Atlas chat model pool examples for `default_model` or
`vtcode ask --model <model-id>` include:

- `deepseek-ai/DeepSeek-V3-0324`
- `deepseek-ai/deepseek-r1-0528`
- `moonshotai/Kimi-K2-Instruct`
- `Qwen/Qwen3-Coder`
- `google/gemini-2.5-flash`
- `openai/gpt-5.2-chat`
- `anthropic/claude-opus-4.5-20251101`
- `zai-org/glm-4.7`
- `minimaxai/minimax-m2.1`
- `xai/grok-4-0709`

Useful configuration docs:

- [Provider Guides]./docs/providers/PROVIDER_GUIDES.md
- [Configuration Precedence]./docs/config/CONFIGURATION_PRECEDENCE.md
- [Config Field Reference]./docs/config/CONFIG_FIELD_REFERENCE.md
- [Tool Configuration]./docs/config/TOOLS_CONFIG.md
- [Lifecycle Hooks]./docs/guides/lifecycle-hooks.md

## Extension points

### Skills

VT Code discovers repository, user, admin, and bundled system skills using the open Agent Skills `SKILL.md` format.

```bash
vtcode skills list
vtcode skills info my-skill
vtcode skills create my-skill
vtcode skills validate ./.agents/skills/my-skill
```

Read: [Agent Skills Guide](./docs/skills/SKILLS_GUIDE.md).

### MCP

VT Code can connect to external MCP servers over stdio or HTTP transports. It can also expose curated tools through its embedded MCP server. The MCP config covers providers, concurrency, timeouts, allowlists, UI rendering, auth, rate limits, and validation.

Read: [MCP Integration Guide](./docs/guides/mcp-integration.md).

### Agents and editors

- [Subagents]./docs/user-guide/subagents.md
- [Agent Client Protocol and Zed]./docs/guides/zed-acp.md
- [IDE Downloads]./docs/ide/downloads.md
- [IDE Troubleshooting]./docs/ide/troubleshooting.md

## Safety model

VT Code uses layered controls for shell and filesystem access:

- [x] Command allowlist
- [x] Per-command argument validation
- [x] Workspace path normalization and symlink checks
- [x] Dangerous command blocking
- [x] Optional sandbox integration
- [x] Human approval gates
- [x] Auditable execution logs

The model is designed to reduce prompt injection, argument injection, workspace escape, and privilege escalation risk while keeping developer workflows practical.

<details>
<summary>Security documentation</summary>

- [Security Model]./docs/security/SECURITY_MODEL.md
- [Command Security Model]./docs/development/COMMAND_SECURITY_MODEL.md
- [Execution Policy]./docs/development/EXECUTION_POLICY.md
- [Sandbox Deep Dive]./docs/sandbox/SANDBOX_DEEP_DIVE.md
- [Tool Policies]./docs/modules/vtcode_tools_policy.md

</details>

## Protocols and exports

| Protocol or format     | What it enables                                      | Docs                                                                                      |
| ---------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Open Responses         | Vendor-neutral response and item lifecycle model     | [Open Responses]./docs/protocols/OPEN_RESPONSES.md                                      |
| ATIF                   | Standardized session trajectory export               | [ATIF Trajectory Format]./docs/protocols/ATIF_TRAJECTORY_FORMAT.md                      |
| A2A                    | Agent discovery, task lifecycle, streaming, JSON-RPC | [A2A Protocol]./docs/a2a/a2a-protocol.md                                                |
| Anthropic Messages API | Compatibility server for Anthropic-style clients     | [Provider Guides]./docs/providers/PROVIDER_GUIDES.md#anthropic-api-compatibility-server |

## Benchmarks

VT Code has a pending submission to [vercel/next-evals-oss](https://github.com/vercel/next-evals-oss/pull/83), the benchmark behind the [Next.js AI Agent Evaluations leaderboard](https://nextjs.org/evals).

| Agent       | Model                         | Status      | Success Rate | Passed | Avg Duration |
| ----------- | ----------------------------- | ----------- | ------------ | ------ | ------------ |
| **VT Code** | `moonshotai/Kimi-K2.6:novita` | **Pending** | **33%**      | 8/24   | 90.5s        |

Read: [benchmark notes](./docs/benchmarks/README.md#nextjs-ai-agent-evaluations), [eval framework](./evals/README.md).

## Documentation

Start here:

- [Documentation Hub]./docs/README.md
- [Documentation Map]./docs/modules/vtcode_docs_map.md
- [Getting Started]./docs/user-guide/getting-started.md
- [Interactive Mode]./docs/user-guide/interactive-mode.md
- [Commands]./docs/user-guide/commands.md
- [Exec Mode]./docs/user-guide/exec-mode.md
- [Context Engineering]./docs/context/context_engineering.md
- [Architecture]./docs/ARCHITECTURE.md
- [Development]./docs/development/README.md
- [FAQ]./docs/FAQ.md

Ask docs assistants: [Google Gemini CodeWiki](https://codewiki.google/github.com/vinhnx/vtcode) or [Devin DeepWiki](https://deepwiki.com/vinhnx/vtcode).

## Contributing guide

Whether you are an AI agent or a human contributor, read this section before opening a PR.

### For AI agents

If you are an AI coding agent (Claude Code, Cursor, Copilot, Codex, or similar), read [AGENTS.md](./AGENTS.md) before making changes. It is the authoritative source for workspace conventions.

**Rules (non-negotiable):**

- **Conventions**: Conventional Commits (`type(scope): subject`), 4-space indentation, `snake_case` functions, `PascalCase` types, `anyhow::Result<T>` with `.with_context()`.
- **API contract**: `vtcode-exec-events::ThreadEvent` is the authoritative runtime event type. Do not invent parallel types. Harness config lives in `agent.harness`, `automation.full_auto`, `context.dynamic` -- do not add new top-level harness subsystems.
- **Keep changes surgical**. Preserve existing APIs unless the task requires a change. Do not reformat files you are not editing.

**Verification workflow:**

| Command | What it checks | Time |
| --- | --- | --- |
| `./scripts/check-dev.sh` | Fast gate: `cargo check --locked` + clippy | 10-30 s |
| `./scripts/check-dev.sh --test` | Fast gate + `cargo test` | 30-90 s |
| `./scripts/check-dev.sh --workspace` | Full workspace check + all tests | 1-3 min |

CI sets `RUSTFLAGS="-D warnings"` and uses `--locked`. Match locally.

**Workspace layout:**

~20 crates. Key crates: `vtcode` (binary/CLI), `vtcode-core` (agent loop, tools, LLM orchestration), `vtcode-tui` (TUI surface), `vtcode-llm` (provider abstraction), `vtcode-config` (config schema). Each crate has its own `AGENTS.md` with crate-specific guidance.

**Session memory:** `.vtcode/memory/` (gitignored) stores cross-session learnings. Read `gotchas.md` and `decisions.md` at session start when context is needed.

**Output discipline:** Cap large command output: `COMMAND 2>&1 | head -c 4000`.

### For human contributors

**Getting started:**

1. Fork the repo and clone your fork.
2. Install Rust (stable). The project uses `rust-toolchain.toml` to pin the channel.
3. Run `./scripts/check-dev.sh` to confirm your environment builds cleanly.
4. Pick an [open issue]https://github.com/vinhnx/vtcode/issues or a [good first issue]https://github.com/vinhnx/vtcode/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22.

**Before you commit:**

- Run `./scripts/check-dev.sh` (fast) or `./scripts/check-dev.sh --test` (thorough).
- Use Conventional Commits: `type(scope): subject`. Example: `fix(tools): handle empty glob result`.
- Keep PRs focused. One logical change per PR is easier to review.

**Where to put things:**

| Change type | Where |
| --- | --- |
| New tool or tool behavior | `vtcode-tools` or `vtcode-bash-runner` |
| Agent loop, prompt, or orchestration | `vtcode-core` |
| LLM provider support | `vtcode-llm` |
| Config schema or loading | `vtcode-config` |
| TUI rendering | `vtcode-tui` |
| Release packaging | `xtask` |

If you are unsure, open an issue first and describe what you want to change.

**Further reading:**

- [AGENTS.md]./AGENTS.md -- workspace conventions and rules
- [CONTRIBUTING.md]./docs/CONTRIBUTING.md -- detailed contribution process
- [Architecture]./docs/ARCHITECTURE.md -- system design overview

## Development

```bash
git clone https://github.com/vinhnx/vtcode.git
cd vtcode
./scripts/run-debug.sh
```

VT Code uses Rust stable, edition 2024, and MSRV 1.88. The dev profile disables incremental compilation (sccache). Set `CARGO_INCREMENTAL=1` to override.

**Local checks:**

```bash
./scripts/check-dev.sh             # fast gate (clippy, fmt, check)
./scripts/check-dev.sh --test      # + unit and integration tests
./scripts/check-dev.sh --workspace # + all workspace crates
./scripts/check-dev.sh --lints     # + additional lints
```

**Running tests:**

```bash
cargo nextest run                   # parallel runner (preferred)
cargo nextest run -p vtcode-core    # single crate
cargo nextest run test_name         # single test by name
```

**Launching VT Code:**

```bash
./scripts/run-debug.sh   # debug build + launch
./scripts/run.sh         # release build + launch
```

Both auto-bootstrap the Ghostty VT runtime. Without it, PTY snapshots fall back to `legacy_vt100`.

Read: [Development Setup](./docs/development/DEVELOPMENT_SETUP.md), [Testing](./docs/development/testing.md), [CI/CD](./docs/development/ci-cd.md).

## Contributing

VT Code is an open-source project, and I would love for more people to help shape it. Whether you are fixing a typo, improving docs, reporting a bug, testing a model provider, sharing an idea, or sending code, your contribution is welcome.

If you are new here, start with [open issues](https://github.com/vinhnx/vtcode/issues) or [good first issues](https://github.com/vinhnx/vtcode/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). For larger changes, please read [CONTRIBUTING.md](./docs/CONTRIBUTING.md) and [AGENTS.md](./AGENTS.md) first so we can keep the project easy to review and maintain together.

## Support

VT Code is built in my spare time and shared freely with the community. If it helps you ship code, learn, experiment with agents, or save a few hours, a small donation helps me keep improving it.

You can support ongoing development at [buymeacoffee.com/vinhnx](https://buymeacoffee.com/vinhnx). Stars, issues, feedback, and word of mouth also mean a lot.

<p align="center">
  <img src="./resources/screenshots/qr_donate.png" alt="Buy Me a Coffee QR code" />
</p>

## Star History

If you find VT Code useful, please consider starring the repository. It helps more developers discover the project and gives the community a visible signal that the work is valuable.

[![Star History Chart](https://api.star-history.com/svg?repos=vinhnx/vtcode&type=timeline&legend=top-left)](https://www.star-history.com/#vinhnx/vtcode&type=timeline&legend=top-left)

## License

This repository is licensed under the [MIT License](LICENSE).