blog.dopana

Back

Nếu bạn đã từng dùng Claude Code hay Cursor, bạn biết một AI coding agent mạnh mẽ như thế nào. Nhưng nếu bạn muốn thứ gì đó mã nguồn mở, không phụ thuộc nhà cung cấp, và chạy native trên terminal — thứ hoạt động với bất kỳ LLM nào, trong mọi môi trường, mà không bị khóa vào hệ sinh thái độc quyền?

Đó chính xác là những gì OpenCode mang lại.

OpenCode là gì?#

OpenCode là một trợ lý coding AI mã nguồn mở và framework agent chạy trực tiếp trên terminal của bạn. Ban đầu là một CLI viết bằng Go, nó đã phát triển thành kiến trúc hai lớp:

  • Backend: Máy chủ HTTP hiệu suất cao (Bun + Hono + TypeScript)
  • Frontend: Giao diện Terminal giàu tính năng (Go + Bubble Tea)

OpenCode cấp cho AI agent quyền truy cập chi tiết vào file, shell terminal, chẩn đoán Language Server Protocol (LSP), và các dịch vụ bên ngoài qua Model Context Protocol (MCP). Nó được thiết kế như một giải pháp thay thế mã nguồn mở hoàn toàn cho các công cụ độc quyền như Claude Code — với tự do sử dụng bất kỳ nhà cung cấp mô hình nào bạn chọn.

Tại sao chọn OpenCode?#

1. Đa dạng nhà cung cấp — Hơn 75+ LLM Providers#

Không giống Claude Code (gắn với Anthropic) hay GitHub Copilot (gắn với OpenAI/Microsoft), OpenCode hoạt động với 75+ nhà cung cấp LLM thông qua AI SDK và Models.dev của Vercel. Sử dụng bất kỳ mô hình nào bạn muốn:

  • Anthropic: Claude 3.5 Sonnet, Claude 4 Opus
  • OpenAI: GPT-4o, o3, GPT-5
  • Google: Gemini 2.5 Pro, Gemini 2.0 Flash
  • Mã nguồn mở: Llama 3, DeepSeek-V3, Qwen 3
  • Local: Ollama, LM Studio, vLLM
  • Đám mây: AWS Bedrock, Azure, Groq

Bạn thậm chí có thể cấu hình các mô hình khác nhau cho các agent khác nhau — dùng mô hình rẻ và nhanh cho việc lập kế hoạch, và mô hình suy luận mạnh mẽ cho việc xây dựng.

2. Terminal-Native với TUI giàu tính năng#

OpenCode chạy trong terminal với giao diện TUI toàn màn hình xây dựng trên Bubble Tea. Được thiết kế cho quy trình làm việc bằng bàn phím:

Phím tắtHành động
TabChuyển đổi giữa các agent (Build ↔ Plan)
@Tìm kiếm mờ file và agent
Ctrl+KBảng lệnh
Ctrl+OTrình chọn mô hình
/undo / /redoHoàn tác hoặc áp dụng lại thay đổi AI
/shareTạo liên kết chia sẻ phiên làm việc

3. Kiến trúc Agent tiên tiến#

OpenCode sử dụng hệ thống phân cấp agent chính + agent phụ:

Agent chính:

  • Build: Toàn quyền truy cập công cụ — có thể đọc, ghi, sửa file, chạy lệnh shell, truy cập LSP diagnostics. Đây là agent thực thi của bạn.
  • Plan: Chỉ đọc với quyền ask-only. Phân tích code và xây dựng chiến lược mà không thay đổi gì.

Agent phụ (gọi qua @):

  • General: Thực thi tác vụ đa bước
  • Explore: Duyệt codebase nhanh
  • Scout: Nghiên cứu dependency bên ngoài và tài liệu

4. Tích hợp Model Context Protocol (MCP)#

OpenCode hoạt động như một MCP client, tải động các công cụ từ máy chủ MCP bên ngoài — cả Stdio và SSE. Mọi công cụ MCP đều kế thừa cùng hệ thống phân quyền như công cụ native, vì vậy bạn kiểm soát chính xác những gì AI có thể truy cập.

5. Hỗ trợ Language Server Protocol (LSP)#

OpenCode kết nối đến các máy chủ LSP (như gopls, typescript-language-server, rust-analyzer) để cung cấp chẩn đoán thời gian thực cho LLM. AI nhìn thấy lỗi, cảnh báo và gợi ý khi nó sửa code — giống như một IDE.

6. Kiểm soát quyền chi tiết#

Bảo mật được tích hợp ở mọi cấp độ. OpenCode hỗ trợ ba chế độ phân quyền:

  • Allow: Tự động phê duyệt (an toàn cho lệnh chỉ đọc như git status)
  • Ask: Yêu cầu phê duyệt (mặc định cho lệnh ghi)
  • Deny: Luôn chặn (các thao tác nguy hiểm)

Quyền có thể được đặt toàn cục, theo công cụ, theo file, hoặc theo lệnh. Điều này có nghĩa bạn có thể tự động cho phép git status trong khi yêu cầu phê duyệt cho git push — tất cả được cấu hình trong opencode.json.

7. Quản lý Context tự động#

OpenCode tự động giám sát việc sử dụng token. Khi bạn đạt gần 95% giới hạn context window của mô hình, nó sẽ tóm tắt lịch sử hội thoại để tránh lỗi “hết ngữ cảnh”. Điều này cho phép bạn có những phiên làm việc dài và hiệu quả mà không chạm giới hạn mô hình.

8. Hệ thống Plugin & Tùy biến#

Custom Commands: Tạo file Markdown trong ~/.config/opencode/commands/ hoặc .opencode/commands/ để định nghĩa quy trình đa bước tái sử dụng với tham số có tên.

Custom Agents: Cấu hình agent chuyên biệt với system prompt, nhiệt độ, giới hạn bước và ranh giới quyền tùy chỉnh — tất cả qua opencode.json hoặc file Markdown.

Middleware Hooks: Plugin có thể can thiệp vào vòng đời thực thi công cụ để kiểm tra log, quản lý telemetry, hoặc thêm xác minh tùy chỉnh.

Hệ sinh thái Plugin: Các công cụ như opencode-scheduler mở rộng OpenCode với lập lịch, chạy nền và hơn thế nữa.

Cài đặt#

OpenCode cài đặt trên mọi nền tảng chính:

# Script cài đặt chính thức
curl -fsSL https://opencode.ai/install | bash

# Hoặc qua npm
npm install -g opencode-ai

# Hoặc qua Homebrew (macOS/Linux)
brew install anomalyco/tap/opencode

# Hoặc qua Bun
bun install -g opencode-ai
bash

Bắt đầu#

# Điều hướng đến dự án của bạn
cd /path/to/project

# Khởi chạy OpenCode
opencode

# Trong TUI:
# 1. Chạy /connect để thêm nhà cung cấp API
# 2. Chạy /init để tạo AGENTS.md với ngữ cảnh dự án
# 3. Bắt đầu coding!
bash

OpenCode cũng hỗ trợ chế độ script không tương tác cho CI/CD:

# Chạy một prompt duy nhất và lấy đầu ra JSON
opencode -p "Tìm tất cả TODO comments trong dự án này" --json
bash

Cách hoạt động#

OpenCode chạy kiến trúc client/server:

  1. Go TUI (client) kết nối đến máy chủ HTTP Bun/Hono (backend)
  2. Máy chủ điều phối các cuộc gọi LLM qua AI SDK, quản lý tool calls, context windows và hệ thống phân cấp agent
  3. Mã SDK client được sinh ra qua Stainless từ OpenAPI spec — bất kỳ ứng dụng nào (mobile, web, script) đều có thể giao tiếp với OpenCode theo chương trình
  4. Mô hình là bộ não — các công cụ native (đọc/ghi file, bash, grep, glob, LSP diagnostics, webfetch) là đôi tay của nó

OpenCode vs. Các giải pháp thay thế#

Tính năngOpenCodeClaude CodeCursor
Mã nguồn mở✅ MIT❌ Độc quyền❌ Độc quyền
Đa dạng nhà cung cấp✅ 75+ providers❌ Chỉ Anthropic❌ Hạn chế
Terminal-Native✅ TUI + headless✅ CLI❌ Fork VS Code
Hỗ trợ MCP✅ Đầy đủ✅ Đầy đủ⚠️ Hạn chế
LSP Diagnostics✅ Native❌ Không✅ Có
Hệ thống Plugin✅ Commands + agents❌ Không⚠️ Extensions
Chế độ CI/CD✅ Đầu ra JSON✅ Đầu ra text❌ Không
Mô hình Local✅ Ollama, LM Studio❌ Không⚠️ Hạn chế

Hệ sinh thái đang phát triển#

Kiến trúc plugin của OpenCode đã tạo ra một hệ sinh thái đang phát triển. Plugin opencode-scheduler, ví dụ, cho phép bạn chạy AI agent theo lịch trình bằng bộ lập lịch native của OS — hoàn hảo cho săn deal tự động, kiểm toán code hàng tuần, hoặc giám sát uptime.

Với giấy phép mã nguồn mở MIT, tính linh hoạt về nhà cung cấp, và hệ thống plugin mạnh mẽ, OpenCode đang trở thành lựa chọn hàng đầu cho các nhà phát triển muốn một AI coding agent hoạt động theo cách của họ.

Tài liệu tham khảo#