Quay lại hướng dẫn
So sánh·21 tháng 9, 2026·Cập nhật 24 tháng 9, 2026·Đọc 9 phút

VT Code so với OpenCode: workflow, mô hình và tổng chi phí

OpenCode cho phép opencode.json được commit trỏ cả đội đến một gateway. VT Code từ chối cùng khối đó khi nó đến từ kho lưu trữ — và sự bất đối xứng này, chứ không phải danh sách tính năng, mới là lựa chọn bạn thực sự đang đưa ra.

Được xem xét lần cuối vào .

VT Code và OpenCode đều là coding agent miễn phí chạy trên terminal, không tính phí client và đều chấp nhận endpoint tương thích OpenAI của bạn, vì vậy đây không phải là một so sánh giá. Khác biệt thực sự nằm ở nơi mỗi công cụ cho phép bạn khai báo endpoint đó, hướng mặc định của quyền hạn và việc bạn có muốn gói đăng ký $10 mỗi tháng trong cùng hệ thống hay không. VT Code là một binary Rust duy nhất từ một dự án độc lập do một maintainer dẫn dắt. OpenCode là một agent TypeScript của công ty Anomaly, có ứng dụng desktop, extension trình soạn thảo và hai ví first-party riêng.

Trước tiên phải làm rõ hai bẫy về tên gọi, vì nhầm một trong hai sẽ làm sai mọi điều phía sau. “VT Code” không phải là Visual Studio Code, và VT Code gây nhầm lẫn khi phát hành extension đồng hành VS Code của riêng mình trên một chuỗi phiên bản riêng. Ngoài ra, ba thứ khác nhau đều được gọi là OpenCode — chỉ một trong số đó nằm trong phép so sánh này.

Điều bạn thực sự đang so sánh

Dự ánNó là gì ngày nayNgôn ngữ và licensePhiên bản ngày 21 tháng 9 năm 2026
vinhnx/VTCodeĐang hoạt động. Một coding agent Rust chạy trên terminal do một maintainer dẫn dắt, với các contributor bên ngoài được ghi nhận trong README. Trong văn bản viết là “VT Code”, còn vtcode là binary và crateRust. “MIT OR Apache-2.0” theo README; GitHub phát hiện Apache-2.0CLI 0.165.0, phát hành trong ngày đó; crates.io khớp
anomalyco/opencodeĐang hoạt động. OpenCode được phát hành tại opencode.ai. github.com/sst/opencode hiện trả về 301 tại đây và footer của trang ghi “© 2026 Anomaly”TypeScript. MITHai dòng cùng lúc: release v1.18.31 (ngày 14 tháng 9) và npm @opencode/cli 2.0.12
opencode-ai/opencodeĐã lưu trữ. Go CLI tiếp tục dưới tên Crush của Charm. Không phải OpenCode trên trang này — đừng lấy cấu hình hoặc giá từ nóGo. MITLần push cuối ngày 18 tháng 9 năm 2025

Metadata repository, release và dist-tag được đọc từ GitHub API, npm và crates.io vào ngày 21 tháng 9 năm 2026. Một va chạm thứ tư: “OpenCode Go” cũng là tên gói đăng ký $10 mỗi tháng của Anomaly, không liên quan gì đến ngôn ngữ Go hay Go CLI đã lưu trữ — và VT Code làm tình hình rối hơn khi đặt tên một trong các provider key tích hợp sẵn của mình là opencode-go. Cũng cần lưu ý tốc độ thay đổi phiên bản của VT Code: 0.164.0, 0.164.2 và 0.165.0 đều được phát hành trong khoảng 27 giờ từ ngày 20–21 tháng 9, vì vậy hãy đọc tag thay vì tin vào phiên bản được in trên bất kỳ trang nào, kể cả trang này.

Ai nên chọn sản phẩm nào

Nếu mô tả đúng về bạnLựa chọnCụ thể là vì sao
Bạn muốn gateway được pin trong repo để mọi bản clone và mọi CI job đều sử dụng nóOpenCodeMột opencode.json được commit ở thư mục gốc dự án là dữ liệu dự án thông thường và đăng ký provider. VT Code từ chối cách làm tương tự
Bạn muốn điều ngược lại: một repository bạn clone không bao giờ được phép chuyển hướng lưu lượng model của bạnVT CodeMột [[custom_providers]] không rỗng đến từ lớp workspace hoặc project sẽ bị từ chối trước khi đăng ký provider — một lớp được đặt tên trong mô hình bảo mật riêng của nó
Bạn muốn agent dừng lại và hỏi trước khi chạm vào bất cứ thứ gì, ngay từ đầuVT CodeCác giá trị mặc định được tài liệu hóa: tools.default_policy "prompt", security.human_in_the_loop true, sandbox.default_policy "read_only", automation.full_auto.enabled false
Bạn muốn nó hành động rồi thu hẹp phạm vi sau bằng các pattern theo từng toolOpenCodeHầu hết quyền hạn mặc định là "allow", với doom_loop và external_directory được đặt thành "ask"; các quy tắc là glob pattern theo từng tool, kết quả khớp cuối cùng được áp dụng
Bạn cần nhiều hơn terminal — ứng dụng desktop, extension trình soạn thảo, GitHub hoặc GitLabOpenCodeCung cấp ứng dụng desktop qua brew install --cask opencode-desktop, cùng extension cho VS Code và các fork Cursor, Windsurf và VSCodium; extension tự cài khi bạn chạy opencode trong terminal tích hợp
Bạn muốn điều khiển agent từ dịch vụ riêng của mình qua HTTPOpenCodeopencode serve cung cấp đặc tả OpenAPI 3.1 tại 127.0.0.1:4096 và SDK được tạo từ đó; TUI chỉ là một client
Bạn muốn một binary tĩnh duy nhất với allowlist lệnh cứng thay vì toolchain NodeVT CodeMột binary Rust duy nhất. Lớp 1 trong mô hình bảo mật của nó cho phép chín lệnh — ls, cat, cp, head, printenv, pwd, rg, sed, which — và mặc định chặn mọi thứ khác
Bạn muốn mức cố định $10 mỗi tháng trên một danh sách model được tuyển chọn thay vì token tính theo mức sử dụngOpenCodeOpenCode Go là sản phẩm đó, với hạn mức theo từng model và một subscriber cho mỗi workspace. VT Code cung cấp provider key nhưng không có tên trong cả hai danh sách client của Go
Bạn muốn một số dư trả trước duy nhất dùng chung cho các dòng Claude và GPT tiên tiếnBên nào cũng đượcCả hai đều chấp nhận endpoint bên thứ ba tương thích OpenAI mà không bị giới hạn bởi gói. Không bên nào thu phí riêng cho provider tùy chỉnh

Về chi phí di chuyển. Nửa rẻ là AGENTS.md: cả hai công cụ đều đọc file này từ thư mục gốc dự án, nên file mô tả các quy ước của bạn vẫn nguyên vẹn khi chuyển theo cả hai hướng. Nửa đắt là mọi thứ khác. Hai định dạng cấu hình không giao nhau — TOML với array-of-tables đối lập với JSON chỉ định một package npm cho mỗi provider — và không có converter, vì vậy thiết lập cục bộ của dự án phải được viết lại thủ công. Trang này không thể xác lập liệu định nghĩa MCP, skill, plugin, custom agent hay lịch sử session có được chuyển hay không, nên không ước tính thời gian di chuyển ngoài việc viết lại đó.

Điểm bất đối xứng duy nhất đáng để quyết định: endpoint có thể nằm ở đâu

Đây là khác biệt mà không template chung chung nào đề cập, và nó đảo ngược trực giác thông thường về monorepo. OpenCode coi provider tùy chỉnh là dữ liệu dự án thông thường: một opencode.json được commit sẽ hoạt động, nhờ đó nhóm có thể tiêu chuẩn hóa mọi người dùng cùng một gateway trong một file duy nhất đã được review. VT Code cố ý từ chối điều đó.

Tham chiếu trường cấu hình của VT Code nêu rõ ngay trên trường: “Các giá trị không rỗng từ các lớp workspace/project do repository kiểm soát sẽ bị từ chối; hãy định nghĩa endpoint provider trong cấu hình system/user đáng tin cậy hoặc cấu hình được chọn rõ ràng.” Việc từ chối tương tự cũng được lặp lại trên custom_providers[].base_url, trên custom_providers[].auth.command, và trên provider_overrides.*.base_url cùng .api_key_env. Mô hình bảo mật của nó nêu lý do như một lớp riêng — loader ghi lại nguồn thắng của từng trường đã hợp nhất, coi các file ở thư mục gốc workspace, các file .vtcode/ của workspace và project profile là do repository kiểm soát, rồi đóng mặc định trước khi xác thực provider; theo tài liệu, điều này ngăn repository đưa vào auth.command có thể thực thi của provider tùy chỉnh hoặc chuyển hướng request qua base URL bị ghi đè.

Hệ quả thực tế là: với OpenCode, một pull request đã được hợp nhất sẽ trỏ cả nhóm tới một gateway. Với VT Code, thay đổi tương tự là một lần cài đặt trên từng máy vào cấu hình user hoặc system, hoặc một đường dẫn --config được truyền khi khởi chạy. Đó là một đánh đổi thực sự — một bên là sự thuận tiện khi triển khai, bên kia là kiểm soát chuỗi cung ứng — và lựa chọn của bạn là lý do mạnh hơn để chọn client ở đây so với bất kỳ danh sách tính năng nào. Cả hai thông tin đều được đọc từ main vào ngày 21 tháng 9 năm 2026.

Quyền hạn, mức độ tự chủ và các bề mặt mà mỗi công cụ cung cấp

Hành viVT CodeOpenCode
Tư thế mặc định của toolHỏi trước: tools.default_policy là "prompt" và security.human_in_the_loop là truePhần lớn được cho phép; read là allow nhưng các file .env bị từ chối theo mặc định
Chế độ tự độngTắt theo mặc định và có kiểm soát: require_profile_ack true, max_turns 100, cùng một danh sách allowed-tools rõ ràng--auto phê duyệt mọi thứ không bị từ chối rõ ràng; các lệnh từ chối rõ ràng vẫn được thực thi
Môi trường cách lyĐược tài liệu hóa như một lớp tùy chọn với khả năng cô lập filesystem và allowlist networkKhông có tài liệu — /docs/sandbox/ trả về 404, còn sandbox xuất hiện là plugin Daytona của bên thứ ba trong danh sách hệ sinh thái plugin. Việc thiếu tài liệu không phải bằng chứng runtime không có khả năng cô lập
Quản trị providerproviders_whitelist hạn chế những provider nào có thể được truy cập, được hướng dẫn mô tả như một biện pháp kiểm soát cho các thiết lập corporate-gateway hoặc air-gappedwhitelist và blacklist hoạt động trên các model bên trong một provider, ẩn chúng khỏi bộ chọn /models
Khả năng tích hợp trình soạn thảoACP qua vtcode acp, một extension Zed trong repo và một companion VS Code trên chuỗi phiên bản riêngACP qua opencode acp, một ứng dụng desktop và các extension tự cài từ terminal tích hợp
Bề mặt không cần giám sátCác subcommand trên một binary duy nhất — vtcode exec với sự kiện JSON, review, eval, schedule — cùng một compatibility server Anthropic-MessagesMô hình tách client/server: opencode serve với đặc tả OpenAPI 3.1 và một SDK được tạo từ đặc tả đó

Nguồn: tài liệu tham chiếu trường cấu hình, mô hình bảo mật và hướng dẫn nhà cung cấp của VT Code; tài liệu về quyền, nhà cung cấp, máy chủ và ACP của OpenCode. Tất cả được đọc vào ngày 21 tháng 9 năm 2026 và đều mô tả các giá trị mặc định — cả hai ứng dụng đều có thể được cấu hình lại theo hướng ngược lại. Cả hai đều sử dụng ACP và hỗ trợ MCP, vì vậy khả năng tiếp cận trình chỉnh sửa gần như tương đương thay vì là yếu tố khác biệt.

Tiền nằm ở ví, không nằm ở client

OpenCode tự cung cấp hai sản phẩm có tính phí. VT Code không bán gì, và bản thân điều đó là một yếu tố cần cân nhắc: mọi token mà nó gửi đi đều được tính phí bởi nhà cung cấp bạn đã cấu hình, và không có gói chính chủ nào để dự phòng.

VíGiá niêm yếtĐiều cần theo dõi
VT CodeKhông có. Không tài khoản, không hạng gói, không dịch vụ lưu trữNguồn tài trợ là khoản hỗ trợ tự nguyện. Toàn bộ hóa đơn của bạn là chi phí tại endpoint mà bạn trỏ tới
OpenCode Go“gói đăng ký chi phí thấp $10/tháng” cho một danh sách được công bố gồm các mô hình lập trình mã nguồn mở, mà chính trang đó nói là “có thể thay đổi khi chúng tôi thử nghiệm và bổ sung mô hình mới”Không phải không giới hạn. Mỗi mô hình có một hạn mức hàng tháng được tính bằng đô la sử dụng, được công bố từ $15 đến $60; hạn mức 5 giờ bằng 20% hạn mức đó và hạn mức hàng tuần bằng 50%. Mỗi workspace có thể đăng ký một thành viên
OpenCode ZenTín dụng trả trước theo mức sử dụng, tính trên mỗi triệu tokenTự động nạp thêm $20 khi số dư giảm xuống dưới $5, trừ khi bạn thay đổi hoặc tắt tính năng này; phí thẻ được chuyển qua ở mức 4,4% cộng $0,30 cho mỗi giao dịch. Tài liệu của dịch vụ cũng lưu ý rằng các mô hình giá rẻ xuất hiện trong lịch sử sử dụng của bạn vì Zen dùng chúng để tạo tiêu đề phiên
Bất kỳ endpoint bên thứ ba nàoMức giá của nhà cung cấp đóCả hai ứng dụng đều hỗ trợ mà không bị giới hạn bởi gói. Tài liệu riêng của OpenCode mô tả Zen và Go là hoàn toàn tùy chọn

Giá và hạn ngạch được đọc từ tài liệu riêng của OpenCode vào ngày 21 tháng 9 năm 2026. Có hai điều đáng biết trước khi bạn so sánh với chúng. Go công bố các điều khoản dữ liệu theo từng mô hình và chúng không đồng nhất — hầu hết các dòng ghi rằng dữ liệu không được dùng để huấn luyện mô hình và được lưu giữ trong 0 ngày, trong khi một vài dòng nêu thời gian lưu giữ 30 ngày; hai mô hình của cộng tác viên được đánh dấu là có dùng để huấn luyện và không có thời gian lưu giữ bằng 0 — vì vậy hãy kiểm tra dòng của mô hình bạn định sử dụng lâu dài. Zen cũng công bố các đợt ngừng hỗ trợ có ngày cụ thể, nên một phép so sánh dựa trên một model id duy nhất có thể lỗi thời nhanh hơn chính trang đó. OpenCode Enterprise là một biểu mẫu liên hệ không công bố giá, và trang này không trích dẫn giá nào.

Một phiên trên endpoint riêng của bạn tốn bao nhiêu

Các con số dưới đây là phép tính token minh họa, không phải chi phí tác vụ được đo lường và không phải mức trần hóa đơn. Giả sử một phiên tác nhân gửi 200.000 token đầu vào chưa được lưu vào bộ nhớ đệm và nhận 15.000 token đầu ra — đây là giả định để so sánh, không phải phép đo đối với kho mã của bạn. Mức giá là giá trong danh mục Kunavo hiện hành trên mỗi triệu token; cột cuối chỉ đơn giản là phép chia, nên kế thừa mọi giả định ở trên.

Mô hìnhĐầu vào / đầu ra trên mỗi 1MƯớc tính cho một phiênSố phiên cho mỗi $10 tín dụng
Claude Haiku 4.5$0,70 / $3,50$0,19251
GPT-5.6 Terra$0,70 / $4,20$0,20349
Claude Sonnet 4.6$2,10 / $10,50$0,57817
Claude Sonnet 5$1,40 / $7,00$0,38525

Hãy đặt cột cuối đó cạnh mức $10 mỗi tháng của OpenCode Go, rồi đừng vội coi đó là kết luận. Hai bên không dùng cùng một đơn vị: hạn mức của Go được tính bằng đô la sử dụng trên danh sách mô hình của nó, không phải số đô la bạn chi, và hai danh mục chỉ giao nhau một phần — GPT 5.6 Luna có trong danh sách được Go công bố, còn các dòng Claude và Gemini trong bảng trên thì không. Gói đăng ký cũng mua sự ổn định về chi phí thay vì một mức giá. Điều bảng này xác định được là dạng câu hỏi — nếu công việc của bạn chỉ gồm một vài phiên dài mỗi tuần trên một mô hình rẻ, token tính theo mức sử dụng sẽ đạt mục tiêu trước; nếu là sử dụng nặng cả ngày trên những mô hình mà Go thực sự cung cấp, gói cố định không còn rõ ràng là tệ hơn. Hãy đo các phiên của chính bạn trước khi chọn, vì một mô hình cần thử lần thứ hai sẽ lập tức xóa sạch lợi thế về mức giá.

Mức giá trong danh mục của Kunavo là mức sàn tính phí, không phải mức trần: khi nhà cung cấp thượng nguồn báo cáo khoản phí của họ, số tiền phải thanh toán là giá trị lớn hơn giữa chi phí theo danh mục và chi phí của nhà cung cấp thượng nguồn nhân với hệ số tăng giá áp dụng. Phí bộ nhớ đệm và phí công cụ bên ngoài không nằm trong ví dụ này. Mức nạp tiền tối thiểu là $10 vào số dư trả trước — đây là mức tiền nạp tối thiểu, không phải phí tác vụ hay gói đăng ký. Xem chi tiết tính phí.

Trỏ một trong hai ứng dụng tới endpoint riêng của bạn

Phần của VT Code là một khối [[custom_providers]], và quy tắc đặt vị trí từ phần trên là điều mọi người thường làm sai:

~/.config/vtcode/vtcode.toml
# This block is rejected if it arrives from a repository-controlled
# layer. Put it in your user config, in the Unix system layer
# (/etc/vtcode/vtcode.toml), or pass it with --config / VTCODE_CONFIG_PATH.
[[custom_providers]]
name = "kunavo"
display_name = "Kunavo"
base_url = "https://api.kunavo.com/v1"
api_key_env = "KUNAVO_API_KEY"
api_format = "openai-chat"
model = "claude-sonnet-5"
models = ["claude-sonnet-5", "claude-haiku-4-5"]
context_window = 1000000   # omit this and VT Code assumes 128000

Bốn ghi chú về khối đó, tất cả đều lấy từ hướng dẫn nhà cung cấp và tài liệu tham chiếu trường. Khóa được đọc từ biến môi trường có tên trong api_key_env, và tài liệu cấu hình cảnh báo rõ ràng rằng không bao giờ đặt khóa API trong vtcode.toml. api_format chấp nhận auto, openai-chat, openai-responses hoặc anthropic-messages — giá trị được chỉ định sẽ được tôn trọng thay vì âm thầm quay về giá trị dự phòng — và tuyến Anthropic đáng được xem xét riêng vì hai quy ước base URL khác nhau, được đề cập trong tài liệu tham chiếu base URL. Việc đặt context_window rất quan trọng: nếu bỏ qua, nhà cung cấp được giả định có 128.000 token, âm thầm giới hạn việc nén ngữ cảnh và các bước kiểm tra trước khi chạy trên một ngữ cảnh lớn hơn nhiều. VT Code cũng áp dụng các giới hạn lấy mẫu OpenAI dựa trên tên cho cả endpoint tùy chỉnh — chẳng hạn, model id khớp với gpt-6-astra sẽ không bao giờ nhận temperature hoặc top_p — và hướng dẫn khuyên “ưu tiên các model ID trung tính trên gateway nếu bạn cần các giá trị được ghim cho những tên như vậy”.

Tương đương của OpenCode là một tệp dữ liệu, và trường npm là trường chọn định dạng truyền — @ai-sdk/openai-compatible cho endpoint cung cấp /v1/chat/completions, @ai-sdk/openai cho /v1/responses:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "kunavo": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Kunavo",
      "options": {
        "baseURL": "https://api.kunavo.com/v1",
        "apiKey": "{env:KUNAVO_API_KEY}"
      },
      "models": {
        "claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "limit": { "context": 1000000, "output": 128000 }
        }
      }
    }
  }
}

OpenCode cũng có thể ghi đè baseURL của một nhà cung cấp tích hợp sẵn thay vì khai báo một nhà cung cấp tùy chỉnh; tài liệu của họ mô tả siêu dữ liệu mô hình cho các nhà cung cấp đã biết là lấy từ Models.dev — vì vậy nhà cung cấp được khai báo thủ công phải tự cung cấp limit — và các khóa được thêm qua lệnh /connect sẽ nằm trong ~/.local/share/opencode/auth.json. Kunavo có một trang thiết lập cho ứng dụng này: hướng dẫn tích hợp OpenCode. Ở đây không có trang tích hợp VT Code, và khối TOML ở trên là tài liệu tham chiếu cấu hình được tổng hợp từ các định nghĩa trường do VT Code công bố — cả hai ứng dụng đều chưa được kiểm thử thời gian chạy với Kunavo, và không có tuyên bố tương thích nào dành cho hai ứng dụng. Hãy duy trì một tuyến đang hoạt động, chạy một tác vụ có phạm vi giới hạn và đọc khoản phí được ghi nhận trong tài khoản của bạn trước khi chuyển công việc hằng ngày sang đó. Tạo tài khoản Kunavo khi bạn sẵn sàng nạp tiền cho một khóa.

Một cảnh báo cài đặt có thể khiến bạn mất nhiều thời gian thực tế. Gói npm công khai có tên vtcode không phải VT Code hiện tại: dist-tag latest của nó là 0.52.8, được phát hành ngày 24 tháng 12 năm 2025, trong khi crates.io ở phiên bản 0.165.0 vào ngày 21 tháng 9 năm 2026. Tài liệu cài đặt của VT Code nêu một đường dẫn npm khác — npm install -g @vinhnx/vtcode --registry=https://npm.pkg.github.com — cùng với cargo install vtcode và một tap Homebrew cần brew trust vinhnx/tap trước brew install vinhnx/tap/vtcode. Tài liệu đó cũng cảnh báo rằng các artifact Windows chỉ được hỗ trợ ở mức nỗ lực tốt nhất và có thể không xuất hiện trong mọi bản phát hành, trong khi trang cài đặt riêng của OpenCode khuyến nghị WSL trên Windows — vì vậy theo chính tài liệu của chúng, không ứng dụng nào là công cụ Windows hạng nhất.

Đang so sánh với các lựa chọn khác? Crush và OpenCode so sánh OpenCode tương tự với tác nhân của Charm, giá OpenCode đi sâu hơn về Zen và Go, còn tài liệu tham chiếu API tương thích OpenAI đề cập quy ước endpoint mà cả hai ứng dụng đều dựa vào.

Câu hỏi thường gặp

VT Code có phải là VS Code không?

Không, và kết quả tìm kiếm liên tục trộn lẫn hai sản phẩm này. VT Code là một coding agent chạy trên terminal, được viết bằng Rust, phân phối dưới dạng binary vtcode từ github.com/vinhnx/VTCode và crate vtcode trên crates.io. Visual Studio Code là trình soạn thảo của Microsoft. Sự nhầm lẫn còn tăng thêm vì VT Code phát hành extension đồng hành VS Code của riêng mình, có display name trong extension manifest đúng nghĩa là “VT Code” — và extension đó sử dụng chuỗi phiên bản riêng, 0.50.14 trong repository vào ngày 21 tháng 9 năm 2026, trong khi CLI ở phiên bản 0.165.0 cùng ngày. Vì vậy, “VT Code 0.50” có nghĩa là extension trình soạn thảo, không bao giờ là agent. Hãy kiểm tra số hiệu phiên bản thuộc về artefact nào trước khi pin phiên bản đó.

Tôi đang cài OpenCode nào, v1 hay v2?

Điều đó hoàn toàn phụ thuộc vào trang bạn đã làm theo, và vào ngày 21 tháng 9 năm 2026 cả hai đều đang hiện hành. README của repo và phần giới thiệu tài liệu vẫn cung cấp dòng v1: curl -fsSL https://opencode.ai/install | bash, hoặc npm install -g opencode-ai, với dist-tag latest là 1.18.31 được phát hành ngày 14 tháng 9 năm 2026 — mục mới nhất trong GitHub Releases. Trang chủ marketing và opencode.ai/download chỉ quảng bá v2: curl -fsSL https://opencode.ai/v2/install | bash, npm install -g @opencode/cli, hoặc brew install anomalyco/tap/opencode-v2. Package npm @opencode/cli có dist-tag latest là 2.0.12, khớp với repo tag v2.0.12, và không có tag v2 nào có mục GitHub Release. Không dòng nào là beta theo nghĩa thông thường, và không tìm thấy thông báo chính thức có ngày tháng nào tuyên bố v2 đã được cung cấp rộng rãi, vì vậy hãy kiểm tra tên package bạn thực sự đang cài thay vì tin vào một số phiên bản được trích dẫn ở bất kỳ đâu.

VT Code hay OpenCode rẻ hơn?

Không client nào tính phí, nên giá client hòa ở mức zero. OpenCode được cấp phép MIT. README của VT Code nêu rằng code chính thức là MIT OR Apache-2.0, trong khi cơ chế phát hiện license của GitHub báo cáo Apache-2.0, và bề mặt tài chính duy nhất của nó là tài trợ tự nguyện. Trong cả hai trường hợp, khoản bạn trả là token model tại bất kỳ endpoint nào bạn cấu hình. Khác biệt chi phí được tạo ra ở phía sau: OpenCode cung cấp hai ví first-party của riêng mình — credit OpenCode Zen trả theo mức sử dụng và gói đăng ký OpenCode Go $10 mỗi tháng với hạn mức sử dụng được công bố theo từng model — trong khi VT Code không có tài khoản, tier hay dịch vụ được lưu trữ nào, nên mọi token nó gửi đều do một bên khác tính phí. Cũng cần lưu ý rằng mức giá được niêm yết rẻ nhất và chi phí thấp nhất để hoàn thành một tác vụ là hai câu hỏi khác nhau: một model cần ba lần thử có thể tốn nhiều hơn model đắt hơn nhưng hoàn thành ngay lần đầu.

Tôi có thể trỏ VT Code tới gateway tùy chỉnh tương thích OpenAI không?

Có, thông qua một mục [[custom_providers]] trong vtcode.toml, và có một quy tắc khiến nhiều người bất ngờ. Tài liệu tham chiếu trường cấu hình của VT Code nêu rằng các giá trị custom_providers không rỗng từ các lớp workspace hoặc project do repository kiểm soát sẽ bị từ chối, đồng thời endpoint của provider phải được định nghĩa trong cấu hình system hoặc user đáng tin cậy, hoặc trong một file cấu hình được chọn rõ ràng. Vì vậy, vtcode.toml được commit ở thư mục gốc repository sẽ không đăng ký gateway. Hãy sử dụng cấu hình user của nền tảng, lớp system Unix tại /etc/vtcode/vtcode.toml hoặc truyền --config. Mục này cần có name, display_name và base_url; key được đọc từ biến môi trường mà bạn đặt tên trong api_key_env; còn api_format chấp nhận auto, openai-chat, openai-responses hoặc anthropic-messages, trong đó tài liệu nêu rằng giá trị rõ ràng sẽ được tôn trọng và không âm thầm fallback. Cũng hãy đặt context_window, vì nếu bỏ qua thì giá trị mặc định là 128000 token và con số đó điều khiển hiển thị context, tính năng tự động nén context và các kiểm tra preflight.

Tôi có thể sử dụng gói đăng ký OpenCode Go bên trong VT Code không?

VT Code cung cấp sẵn wiring; OpenCode chưa xác thực VT Code là một client, và đó là hai phát biểu khác nhau. Hướng dẫn provider của VT Code ghi lại opencode-go là một provider key tích hợp sẵn với OPENCODE_GO_API_KEY và base URL https://opencode.ai/zen/go/v1, cùng với opencode-zen. Ở phía bên kia, tài liệu OpenCode Go cho biết lưu lượng được giám sát để phát hiện lạm dụng, yêu cầu client tự nhận diện bằng user agent riêng và gửi session ID ổn định trong header x-opencode-session, đồng thời công bố bảng Validated Clients liệt kê Hermes, Claude Code, Codex, ZCode, Pi, jcode và Kilo Code CLI, cùng bảng Known Problematic Clients liệt kê DeepSeek Harness, GitHub Copilot Chat, Kimi Code và MiMo Code. VT Code không xuất hiện trong bảng nào, và lưu ý riêng của OpenCode là họ không đảm bảo các client được liệt kê sẽ tiếp tục hoạt động. Việc không có tên trong danh sách không phải bằng chứng về sự cố, và trang này không có bằng chứng theo hướng nào. Cũng hãy lập ngân sách cho quy tắc seat: mỗi workspace chỉ có một thành viên được đăng ký OpenCode Go.

Việc chuyển đổi giữa VT Code và OpenCode khó đến mức nào?

Hướng dẫn dự án là nửa rẻ, còn cấu hình là nửa đắt. Cả hai công cụ đều đọc AGENTS.md ở thư mục gốc dự án — VT Code nạp file này vào mỗi lượt và tạo khung bằng vtcode init, còn OpenCode tạo file bằng /init và yêu cầu bạn commit file đó — vì vậy file mô tả các quy ước của bạn được chuyển nguyên vẹn. Không có gì khác được chuyển như vậy. VT Code đọc TOML với các provider block dạng array-of-tables và hợp nhất chín lớp cấu hình, từ các giá trị mặc định tích hợp lên đến system, user, project profile, workspace và đường dẫn --config rõ ràng, hợp nhất sâu các table trong khi scalar và array bị lớp cao hơn thay thế. OpenCode đọc file dữ liệu opencode.json, trong đó các mục provider chỉ định một package npm AI SDK cho từng wire format. Không có converter, vì vậy thiết lập cục bộ của dự án phải được viết lại thủ công. Trang này không thể xác lập liệu định nghĩa MCP server, skill, plugin, custom agent hay lịch sử session có được chuyển dưới bất kỳ dạng nào hay không, nên không đưa ra tuyên bố về thời gian di chuyển ngoài việc viết lại cấu hình.

VT Code đã đủ ổn định để tiêu chuẩn hóa cho một nhóm chưa?

Trước tiên hãy đọc ghi chú trạng thái của chính dự án: README nói dự án đang được phát triển tích cực, trong đó một số luồng tự động hóa còn thử nghiệm và có thể thay đổi giữa các bản phát hành. Nhịp phát hành củng cố chứ không mâu thuẫn với điều đó — vào ngày 20 và 21 tháng 9 năm 2026, dự án phát hành 0.164.0, 0.164.2 và 0.165.0, ba bản phát hành trong khoảng 27 giờ, và bản ghi trên crates.io cũng cập nhật theo. README cho biết dự án được xây dựng và duy trì trong thời gian rảnh, với GitHub Sponsors và Buy Me a Coffee là các kênh tài trợ duy nhất — dù cùng README đó cảm ơn một danh sách contributor bên ngoài, một người trong số đó được ghi nhận 52 commit, nên đây là dự án của một maintainer chứ không phải code của một người. Quy mô là điểm bất đối xứng khác: 852 star so với 209.102 của OpenCode trong cùng ngày. Star đo lường mức độ chú ý chứ không đo chất lượng, nhưng một dự án thời gian rảnh do một maintainer dẫn dắt và một dự án do công ty duy trì có rủi ro bus factor khác nhau, và đó là câu hỏi mua sắm chứ không phải câu hỏi kỹ thuật. Cả hai repository đều hoạt động trong ngày đó.

Đã kiểm tra ngày 21 tháng 9 năm 2026: GitHub API của cả ba kho mã cùng danh sách phát hành của VT Code; npm dist-tags cho opencode-ai, @opencode/cli và vtcode; bản ghi crates.io cho vtcode; README, mô hình bảo mật, hướng dẫn nhà cung cấp, tài liệu tham chiếu trường cấu hình, tài liệu cài đặt và manifest tiện ích mở rộng VS Code của VT Code trên main; cùng các trang về quyền, nhà cung cấp, máy chủ, Zen, Go và tải xuống của OpenCode. Mức giá token của Kunavo đến từ danh mục trực tiếp. Không ứng dụng nào được cài đặt, chạy hoặc trỏ tới endpoint Kunavo cho trang này, không thực hiện và cũng không tuyên bố có phép so sánh benchmark hay hiệu năng nào; mọi con số đô la ở đây đều là phép tính token minh họa chứ không phải chi phí tác vụ được đo lường.