Self-host Claude Code + Codex CLI + Gemini CLI song song trên 1 VPS

Chia sẻ bài viết

Mục lục
TL;DR
  • Cài 3 AI CLI cùng VPS: Claude Code (Anthropic), Codex CLI (OpenAI), Gemini CLI (Google).
  • Tmux chia 3 pane, mỗi pane chạy 1 CLI để so sánh kết quả side-by-side.
  • Tách credential bằng env file riêng, không conflict API key.
  • VPS 4GB đủ chạy cả 3, mỗi CLI chiếm ~200MB Node.js process.
  • Dùng song song để chọn output tốt nhất, hoặc chia task theo strength của từng model.

Năm 2026, dev có quá nhiều lựa chọn AI coding assistant: Claude Code (Anthropic), Codex CLI (OpenAI), Gemini CLI (Google). Mỗi cái có strength riêng: Claude thiên về long context và refactor, Codex thiên về algorithm, Gemini thiên về vision + multimodal. Cài cả 3 trên cùng VPS, dùng song song qua tmux là cách pro vibe coder VN tăng năng suất.

VPS làm headless dev environment có lợi thế lớn: code khi không có laptop, share session với team, không lo máy local hết pin lúc giữa task. Self-host trên Cloud VPS 4GB là vừa đủ chạy 3 CLI cùng lúc + tmux session 24/7.

Bài này hướng dẫn cài đủ 3 CLI, setup tmux layout, tách credentials, dùng song song để so sánh output. Test trên Cloud VPS TND 4GB Ubuntu 24.04.

1. Yêu cầu VPS và OS

  • VPS RAM 4GB+ (mỗi CLI ăn 150-300MB Node).
  • Ubuntu 22.04/24.04 hoặc Debian 12 (nhiều npm package nhất).
  • Node.js 20+ và Python 3.11+.
  • Tmux 3.x.
  • API key 3 nhà: ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY.

2. Cài Node.js và npm globally

# NodeSource Ubuntu
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs

node -v   # v20.x
npm -v

3. Cài Claude Code CLI

npm install -g @anthropic-ai/claude-code

# Verify
claude --version

# Cấu hình API key
mkdir -p ~/.claude
echo 'export ANTHROPIC_API_KEY=sk-ant-xxx' >> ~/.bashrc
source ~/.bashrc

# Test
cd ~/test-project
claude

4. Cài OpenAI Codex CLI

npm install -g @openai/codex

# Verify
codex --version

# Cấu hình API key
echo 'export OPENAI_API_KEY=sk-xxx' >> ~/.bashrc
source ~/.bashrc

# Test
codex "Write a fibonacci function in Python"

5. Cài Gemini CLI

npm install -g @google/gemini-cli

# Verify
gemini --version

# Cấu hình
mkdir -p ~/.gemini
echo 'export GEMINI_API_KEY=AIza-xxx' >> ~/.bashrc
source ~/.bashrc

# Test
gemini chat "Explain async/await in JavaScript"

6. Cài tmux và setup layout 3 pane

sudo apt install -y tmux

# Tạo script start session
cat > ~/ai-cli.sh <<'SH'
#!/bin/bash
SESSION="ai-cli"

tmux new-session -d -s $SESSION -n main

# Pane 1: Claude (left, top)
tmux send-keys -t $SESSION:main "cd ~/projects/myapp && claude" C-m

# Split horizontal -> pane 2: Codex
tmux split-window -t $SESSION:main -h
tmux send-keys -t $SESSION:main "cd ~/projects/myapp && codex" C-m

# Split vertical pane 2 -> pane 3: Gemini
tmux split-window -t $SESSION:main -v
tmux send-keys -t $SESSION:main "cd ~/projects/myapp && gemini chat" C-m

# Select layout tiled
tmux select-layout -t $SESSION:main tiled

tmux attach -t $SESSION
SH

chmod +x ~/ai-cli.sh
~/ai-cli.sh

Sau khi chạy, tmux mở session với 3 pane song song. Mỗi pane là 1 AI CLI sẵn sàng nhận prompt.

7. Tách credential per project

Nếu chạy nhiều project khác account, đừng dump key vào ~/.bashrc. Dùng direnv per folder:

sudo apt install -y direnv
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc

# /var/projects/client-a/.envrc
export ANTHROPIC_API_KEY=sk-ant-client-a
export OPENAI_API_KEY=sk-client-a
export GEMINI_API_KEY=AIza-client-a

# /var/projects/personal/.envrc
export ANTHROPIC_API_KEY=sk-ant-personal
export OPENAI_API_KEY=sk-personal
export GEMINI_API_KEY=AIza-personal

# Authorize
cd /var/projects/client-a
direnv allow

Khi cd vào folder, direnv tự load env riêng. CLI tự pick key đúng theo project.

8. So sánh strength từng CLI

Tiêu chíClaude CodeCodex CLIGemini CLI
Long context1M token (Opus 4.7)200K token1M token (Pro)
Code qualityRất caoCaoTốt
Refactor lớnMạnh nhấtOKTrung bình
AlgorithmTốtMạnh nhấtTốt
Vision/multimodalCó (screenshot)Hạn chếMạnh nhất
Tool use / MCPFull MCP supportCó function calling
Pricing $/M token~3-15 USD~2-10 USD~0.5-7 USD
Speed (tokens/s)50-8060-10080-150

9. Workflow: phân task theo model strength

  • Claude: refactor module lớn, viết spec dài, đọc 50+ file để hiểu codebase, code review.
  • Codex: giải thuật toán, optimize SQL query, viết function thuần.
  • Gemini: phân tích screenshot UI bug, generate code từ design mockup, OCR từ ảnh.

Workflow thực tế: dùng Gemini phân tích screenshot Figma -> Claude viết code component -> Codex optimize function logic.

10. Persistent session 24/7 với tmux

# Tạo systemd service tmux always-on
cat > /etc/systemd/system/tmux-ai.service <<'UNIT'
[Unit]
Description=Tmux AI CLI session
After=network.target

[Service]
Type=forking
User=dev
WorkingDirectory=/home/dev
ExecStart=/usr/bin/tmux new-session -d -s ai-cli /home/dev/ai-cli.sh
ExecStop=/usr/bin/tmux kill-session -t ai-cli
Restart=on-failure

[Install]
WantedBy=multi-user.target
UNIT

sudo systemctl daemon-reload
sudo systemctl enable --now tmux-ai

# Attach khi ssh vào
ssh dev@vps
tmux attach -t ai-cli

11. Tối ưu RAM khi chạy 3 CLI

  • Đóng CLI không dùng - mỗi cái ăn 200-300MB Node memory.
  • Set NODE_OPTIONS=--max-old-space-size=256 để giới hạn.
  • Bật swap 2GB cứu cánh khi peak (dù chậm hơn RAM).
  • Disable telemetry: ANONYMIZED_TELEMETRY=false giảm 20MB.

12. Backup config và history

# Daily backup
tar -czf /tmp/ai-cli-backup-$(date +%F).tar.gz 
  ~/.claude ~/.codex ~/.gemini ~/.bashrc ~/.envrc

# Upload S3
rclone copy /tmp/ai-cli-backup-*.tar.gz r2:my-bucket/ai-cli/

# Sync code project song song
rsync -avz ~/projects/ remote-backup:/backup/ai-projects/
Cloud VPS cho vibe coder

VPS 4GB chạy 3 AI CLI song song - dev anywhere không cần laptop

Cloud VPS TND sẵn AlmaLinux 9, Ubuntu 22/24, Debian 12/13. SSD CEPH, snapshot 1-click, backup hằng ngày, network 200Mbps trong nước. Tmux 24/7 không lo mất session khi mất mạng.

Xem 8 cấu hình Cloud VPS →

FAQ

3 CLI có conflict với nhau không?

Không. Mỗi CLI là Node process độc lập, lưu config trong thư mục riêng (~/.claude, ~/.codex, ~/.gemini). Chỉ cần tách API key bằng env var khác tên.

VPS 2GB chạy được 3 CLI không?

Khó. Mỗi CLI Node ăn 200-300MB. 3 CLI cùng lúc = 600-900MB + OS + tmux. Còn dưới 1GB cho code + build. Nên upgrade lên 4GB.

Dùng tmux session từ điện thoại được không?

Được. SSH vào VPS bằng Termius (iOS/Android), attach tmux session. Bàn phím nhỏ thì gửi prompt ngắn, đọc output trên screen.

Có cách nào không phải đăng nhập lại API key sau khi VPS restart không?

Đặt API key trong /etc/environment hoặc systemd service Environment. Khi VPS boot, env var có sẵn cho mọi user, không cần source ~/.bashrc.

CLI nào tốt nhất cho dev VN 2026?

Phụ thuộc task: Claude cho refactor lớn, Codex cho algorithm, Gemini cho phân tích design/screenshot. Dùng song song mới tận dụng được hết. Đừng chọn 1 cái cố định.

Có thể chạy CLI trong Docker container không?

Được. Tạo Dockerfile FROM node:20, cài 3 CLI, mount workdir. Lợi: isolated environment. Hại: thêm overhead 50-100MB per container.

2009
15+ năm vận hành liên tục
10+
tập đoàn lớn tin dùng
100+
doanh nghiệp SMB Việt
30 ngày
đổi key lỗi miễn phí
Phần mềm bản quyền chính hãng chúng tôi cung cấp
Bản quyền chính hãng Hóa đơn VAT đầy đủ Đổi key lỗi 30 ngày Vận hành từ 2009 MST 0200994870 Hotline 0225.999.6666