🧭 HƯỚNG DẪN · HỆ THỐNG CAS

Cài Claude Code + Obsidian
trên nhiều máy tính

Để bạn làm việc đồng bộ ở mọi nơi — note, dự án và cả "bộ não AI" luôn theo bạn từ máy này sang máy khác, an toàn và không sợ mất. Dùng được cho MacBook, PC Windows và laptop — bao nhiêu máy cũng được.

⏱ Thời gian: ~45–60 phút/máy 💻 Dành cho: macOS + Windows 📊 Mức độ: Cơ bản → Nâng cao
Bức tranh lớn

Bạn sẽ đồng bộ những gì?

Khi làm việc trên nhiều máy, có 4 thứ cần "đi theo" bạn. Mỗi thứ đồng bộ bằng một con đường riêng — hiểu rõ chỗ này thì làm đâu trúng đó:

💻 Máy cũ (đang có sẵn việc)

Obsidian Vault — note, wiki, tài liệu
Dự án Claude Code — thư mục làm việc
Bộ nhớ Claude~/.claude/memory
Secrets — key, token (KHÔNG lên cloud chung)
Obsidian Syncnote chữ tự động
GitHubkét sắt + lịch sử
Google Drivefile nặng + bộ nhớ AI
USB / AirDropsecrets (tay)

🖥 Máy mới (Mac, PC Windows, laptop…)

Cài Obsidian → kéo Sync về
Cài Claude Code → đăng nhập
Clone dự án từ GitHub
Nối lại bộ nhớ + secrets
💡 Đọc theo nhu cầu của bạn
Hướng dẫn chia 2 mức. CƠ BẢN (Phần 1–3) đủ cho hầu hết học viên: chỉ cần Obsidian Sync + Claude Code là làm việc nhiều máy mượt mà. NÂNG CAO (Phần 4–8) dành cho ai muốn dựng hệ thống đầy đủ như CAS: két sắt lịch sử, bộ nhớ AI trên cloud, quản lý secrets an toàn và dùng chung Mac ↔ Windows.
🧭 Xương sống là Git — không phải Google Drive
Nếu bạn chỉ nhớ một điều từ trang này: đừng để Google Drive "ôm" cả thư mục vault. Drive rất hay làm hỏng kho Gitđánh nhau với Obsidian khi 2 máy cùng ghi. Chia đúng vai: Git lo phần chữ (note, code, cấu hình) — Drive chỉ lo file nặng để riêng — Obsidian Sync lo note tức thì.
Phần 0

Chuẩn bị trước khi bắt đầu

Trên mỗi máy mới, bạn cần sẵn sàng các tài khoản và công cụ sau. Đăng nhập cùng tài khoản với máy cũ thì mọi thứ mới gặp nhau.

🍎 Trên máy Mac — cài Homebrew & Node.js

# 1) Cài Homebrew (trình quản lý phần mềm cho Mac)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2) Cài Node.js (kèm npm) + Git
brew install node git

# 3) Kiểm tra — cần Node v18 trở lên
node -v
npm -v
git --version

🪟 Trên máy Windows — cài Node.js & Git

Mở PowerShell (bấm Start → gõ "PowerShell" → Enter) rồi chạy:

# Cài Node.js LTS + Git bằng winget (có sẵn trên Windows 10/11)
winget install OpenJS.NodeJS.LTS
winget install Git.Git

# ĐÓNG PowerShell rồi mở lại, sau đó kiểm tra:
node -v
git --version
💡 Không có winget?
Tải tay cũng được: nodejs.org (chọn bản LTS) và git-scm.com. Cài xong phải mở lại PowerShell thì lệnh mới nhận.
⚠️ Windows: chạy lệnh ở đâu?
Từ đây trở xuống, mỗi khối lệnh em ghi rõ 🍎 Mac (dùng Terminal) hay 🪟 Windows (dùng PowerShell). Đừng dán lệnh Mac vào PowerShell — sẽ báo lỗi ngay.
Phần 1  ·  CƠ BẢN

Đưa Obsidian Vault về máy 2

Đây là phần quan trọng nhất với người làm note. Obsidian Sync sẽ tự kéo toàn bộ vault (note, wiki, tài liệu) từ máy 1 về máy 2 — không cần copy tay.

1

Cài Obsidian

Tải tại obsidian.md → cài như app bình thường. Mở lên, chọn "Sign in" và đăng nhập cùng tài khoản Obsidian với máy 1.

2

Bật Sync & kết nối vault từ xa

  1. Mở Settings (⚙️) → Sync.
  2. Bấm "Connect to a remote vault" (hoặc "Choose a vault to connect").
  3. Chọn đúng vault bạn đã sync ở máy 1 (ví dụ Brain to Letandao).
  4. Bật công tắc "Sync is on".
3

Chờ tải về xong

Góc dưới phải có biểu tượng sync quay. Vault lớn có thể mất vài phút. Khi báo "Fully synced" là xong — toàn bộ note đã nằm trên máy 2.

⚠️ Một quy tắc vàng để không mất note
Đợi máy 1 sync xong → mới mở chỉnh trên máy 2, và ngược lại. Đừng sửa cùng một note trên 2 máy khi đang offline cùng lúc — đó là nguyên nhân số 1 gây xung đột. Obsidian có Version History (Settings → Sync) để cứu file nếu lỡ.
💡 Nên loại trừ khỏi Sync
Trong Settings → Sync → Selective sync, tắt đồng bộ các thư mục nặng / nhạy cảm: .git, node_modules, .secrets, .claude, và file > 5MB. Giữ Sync nhẹ, nhanh và an toàn.
Phần 2  ·  CƠ BẢN

Cài & đăng nhập Claude Code

Claude Code là "trợ lý lập trình + trợ lý vận hành" chạy ngay trong Terminal. Cài một lệnh, đăng nhập một lần là dùng được.

1

Cài Claude Code

# Cách 1 — cài qua npm (khuyên dùng)
npm install -g @anthropic-ai/claude-code

# Kiểm tra cài thành công
claude --version

Lệnh trên chạy giống nhau trên Mac (Terminal) và Windows (PowerShell).

Cách 2 — cài bản native, không cần Node:

# 🍎 Mac
curl -fsSL https://claude.ai/install.sh | bash

# 🪟 Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex
2

Đăng nhập

Vào thư mục làm việc bất kỳ rồi gõ claude. Lần đầu nó sẽ hỏi đăng nhập:

# 🍎 Mac
cd ~/Documents

# 🪟 Windows
cd $env:USERPROFILE\Documents

# Rồi mở Claude và đăng nhập
claude
# Trong Claude, gõ:
/login

Trình duyệt mở ra → đăng nhập cùng tài khoản Claude với máy cũ → quay lại là xong. Đăng nhập lưu theo máy, làm một lần duy nhất cho mỗi máy.

💡 Cấu hình & bộ nhớ nằm ở đâu?
Mọi thứ của Claude Code nằm trong thư mục ~/.claude/: memory (bộ nhớ dài hạn), projects (lịch sử phiên), settings (cấu hình). Phần NÂNG CAO bên dưới sẽ hướng dẫn đồng bộ memory để "bộ não AI" theo bạn sang máy 2.
Phần 3  ·  CƠ BẢN

Kiểm tra: đã đồng bộ chưa?

Đến đây, với mức cơ bản bạn đã làm việc được 2 máy. Thử nhanh:

🌱 Học viên dừng ở đây là đủ
Nếu bạn chỉ cần note + Claude theo mình giữa 2 máy thì xong rồi. Các phần dưới là để dựng hệ thống "chuyên nghiệp" — có két sắt lịch sử, bộ nhớ AI trên cloud và quản lý key an toàn. Đọc khi bạn sẵn sàng nâng cấp.
Phần 4  ·  NÂNG CAO

Két sắt Git — lịch sử & tua ngược

Obsidian Sync giữ bản mới nhất, nhưng nếu lỡ xoá nhầm hay muốn xem "tháng trước file này thế nào" thì cần Git — một két sắt ghi lại mọi thay đổi, tự sao lưu lên GitHub mỗi tối.

1

Tạo SSH key trên máy 2 & gắn vào GitHub

SSH key giúp máy mới đẩy/kéo dữ liệu lên GitHub mà không cần gõ mật khẩu. Mỗi máy một key riêng — đừng copy key từ máy này sang máy khác.

🍎 Mac — mở Terminal:

# Tạo key mới (đặt tên gợi nhớ theo máy)
ssh-keygen -t ed25519 -C "macbook-cas" -f ~/.ssh/github-cas

# In khoá công khai ra để copy
cat ~/.ssh/github-cas.pub

🪟 Windows — mở PowerShell:

# Tạo key mới (Enter 3 lần để bỏ qua passphrase)
ssh-keygen -t ed25519 -C "pc-windows-cas" -f "$env:USERPROFILE\.ssh\github-cas"

# In khoá công khai ra để copy
Get-Content "$env:USERPROFILE\.ssh\github-cas.pub"

Copy dòng vừa in → vào GitHub → Settings → SSH and GPG keys → New SSH key → dán vào → Save.

2

Khai báo key cho GitHub

🍎 Mac:

# Tạo/sửa file ~/.ssh/config
cat >> ~/.ssh/config <<'EOF'

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-cas
EOF

# Kiểm tra kết nối
ssh -T git@github.com

🪟 Windows — bật dịch vụ SSH rồi khai báo key:

# Bật ssh-agent (chạy PowerShell với quyền Administrator)
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent

# Khai báo key trong file config
@"

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-cas
"@ | Add-Content "$env:USERPROFILE\.ssh\config"

# Kiểm tra kết nối
ssh -T git@github.com

Thấy dòng "Hi <tên>! You've successfully authenticated..." là thành công.

3

Clone két sắt về máy 2

Két sắt chính là thư mục vault của bạn (đã được git init ở máy 1). Clone nó về:

cd ~/Documents
git clone git@github.com:<tài-khoản>/<tên-repo>.git "Brain to Letandao"
🟢 Ví dụ hệ thống CAS
Repo két sắt là git@github.com:ceoletandao/cas-brain.git, clone vào đúng tên Brain to Letandao để mọi đường dẫn khớp với máy 1.
⚠️ Vault = Git repo = thư mục Obsidian (cùng một chỗ)
Để tránh trùng lặp: chọn 1 trong 2 cách khởi tạo trên máy 2 — (a) clone Git trước rồi mở thư mục đó làm vault Obsidian và bật Sync; hoặc (b) để Obsidian Sync kéo về trước rồi git init + git remote add origin … trong chính thư mục đó. Đừng tạo 2 thư mục khác nhau.
4

Thói quen lưu két sắt — cách chắc ăn nhất

Khi làm nhiều máy, kỷ luật quan trọng hơn tự động hoá. Chỉ cần 2 lệnh, thành phản xạ là không bao giờ mất việc:

# 🌅 ĐẦU buổi làm — kéo bản mới nhất về (chạy giống nhau trên Mac & Windows)
git pull

# 🌙 CUỐI buổi làm — đẩy việc của mình lên
git add -A
git commit -m "cập nhật ngày ..."
git push

Lười gõ? Cứ nói với Claude Code: "lưu két sắt giúp anh" — nó chạy cả 3 lệnh cuối giúp bạn.

⚠️ Đừng tin tuyệt đối vào "tự động sao lưu lúc 22:00"
Nhiều người (kể cả hệ thống CAS) từng đặt máy tự commit lúc 22:00 bằng launchd. Nhưng macOS chặn tác vụ nền đọc thư mục ~/Documents nếu chưa cấp Full Disk Access — job chạy mỗi tối nhưng âm thầm lỗi, không ai biết. Chúng tôi từng mất 23 ngày không có bản lưu vì đúng lỗi này.
👉 Nếu vẫn muốn dùng, phải: System Settings → Privacy & Security → Full Disk Access → thêm /bin/zsh. Và mỗi tháng kiểm tra 1 lần xem commit gần nhất là ngày nào:
git log -1 --format="Lần lưu gần nhất: %cd"
Phần 5  ·  NÂNG CAO

Đừng đưa gì vào két sắt Git

Đây là phần ít ai nói nhưng dễ vỡ trận nhất. Git sinh ra để quản chữ (note, code, cấu hình) — không phải để chứa file nặng. Nhồi media vào là repo phình, push mãi không xong, và mỗi máy mới phải kéo về hàng GB.

🩸 Bài học xương máu (thật, từ hệ thống CAS)
Một lần dọn kho, chúng tôi push nhầm cả model AI .bin 1.4GB, file ghi âm họp ~1GB và một thư mục copy thừa 710MB. Kết quả: đẩy 15 phút rồi GitHub từ chối thẳng — vì nó chặn cứng mọi file > 100MB. Sau khi loại đúng 4 nhóm này ra, dung lượng đẩy tụt từ 2GB → 294MB và xong trong vài phút.

Bảng phân loại: cái gì đi đường nào

✅ ĐƯA vào Git (nhẹ, cần lịch sử)

Note, wiki, tài liệu .md
Code, script, cấu hình
Trang web, HTML/CSS
Ảnh nhỏ minh hoạ (< 5MB)

🚫 KHÔNG đưa vào Git → để Drive

Video, ghi âm (.mp4 .mov .wav .m4a)
Model AI (.bin) — tải lại được
node_modules, cache, build
Ảnh gốc / file thiết kế nặng
🔐 Secrets (xem Phần 7)

Dựng "hàng rào" .gitignore

Tạo file tên .gitignore ngay trong thư mục vault, nội dung:

# --- Bí mật: TUYỆT ĐỐI không lên git ---
.secrets/
.env
**/.env
.claude/settings.local.json

# --- Media nặng: để trên Google Drive ---
*.mp4
*.mov
*.wav
*.m4a
*.bin

# --- Rác máy tính ---
node_modules/
.DS_Store
Thumbs.db
*.log
💡 Kiểm tra trước khi đẩy — 10 giây, tránh mất 15 phút
Chạy lệnh này để soi có file nào quá khổ đang chờ đẩy không:
# Liệt kê file > 50MB trong thư mục (GitHub cảnh báo >50MB, CHẶN >100MB)
find . -type f -not -path './.git/*' -size +50M -exec ls -lh {} \; | awk '{print $5, $9}'
Có file nào hiện ra → thêm vào .gitignore ngay, đừng để nó lọt vào két sắt.
⚠️ Lỡ commit file nặng rồi thì sao?
Gỡ nó khỏi commit nhưng vẫn giữ file trên máy:
git rm --cached "đường/dẫn/file-nang.bin"
# thêm vào .gitignore rồi sửa lại commit vừa nãy
git commit --amend --no-edit
Phần 6  ·  NÂNG CAO

Đồng bộ "bộ não AI" qua Google Drive

Bộ nhớ dài hạn của Claude nằm ở ~/.claude/memory. Để nó theo bạn sang máy 2, ta đặt thư mục thật trên Google Drive rồi tạo symlink (liên kết tắt) trỏ tới — cả 2 máy cùng dùng một bộ nhớ.

1

Cài Google Drive cho máy 2

Tải Google Drive for Desktop → đăng nhập cùng email với máy 1. Với thư mục bộ nhớ, đặt chế độ "Available offline" (không stream) để Claude đọc/ghi tức thì.

2

Trỏ thư mục memory về Drive

Giả sử bộ nhớ thật để ở My Drive/claude-cas/memory.

🍎 Mac — Terminal:

# Sao lưu thư mục memory cũ (nếu có) cho chắc
mv ~/.claude/memory ~/.claude/memory.bak 2>/dev/null

# Tạo symlink trỏ tới bộ nhớ trên Drive
ln -s "$HOME/Library/CloudStorage/GoogleDrive-<email>/My Drive/claude-cas/memory" ~/.claude/memory

# Kiểm tra
ls -la ~/.claude/memory

🪟 Windows — PowerShell quyền Administrator (bấm chuột phải PowerShell → "Run as administrator"):

# Sao lưu memory cũ (nếu có)
Rename-Item "$env:USERPROFILE\.claude\memory" "memory.bak" -EA SilentlyContinue

# Tạo symlink trỏ tới bộ nhớ trên Drive (G: là ổ Drive, sửa cho đúng máy bạn)
New-Item -ItemType SymbolicLink `
  -Path "$env:USERPROFILE\.claude\memory" `
  -Target "G:\My Drive\claude-cas\memory"

# Kiểm tra
Get-Item "$env:USERPROFILE\.claude\memory" | Select-Object LinkType, Target
💡 Vì sao Windows cần quyền Admin?
Windows mặc định không cho tạo symlink với tài khoản thường. Hoặc bật Developer Mode (Settings → Privacy & security → For developers) thì tạo được mà không cần Admin.
⚠️ Chỉ đồng bộ memory — đừng đồng bộ sessions/settings.local.json
File settings.local.json và lịch sử projects/ mang tính từng-máy. Đồng bộ chúng dễ gây xung đột. Chỉ đưa memory (và phần agents/skills dùng chung) lên Drive.
Phần 7  ·  BẢO MẬT

Mang Secrets sang máy 2 — đúng cách

Secrets là API key, token, mật khẩu (thường trong .secrets/, .env). Đây là phần dễ sai nhất và nguy hiểm nhất.

🔐 3 nguyên tắc bất di bất dịch
  1. KHÔNG paste key/token vào khung chat với bất kỳ AI nào (kể cả Claude).
  2. KHÔNG để secrets lên cloud dùng chung (Obsidian Sync, Drive chung, Notes). Phải .gitignore + loại khỏi Sync.
  3. Chuyển secrets giữa 2 máy bằng tay: AirDrop, USB, hoặc password manager (1Password/Bitwarden).

Cách chuyển an toàn

read -s -p "Dán credential rồi Enter: " S \
  && sed -i '' "s|^FIELD=.*|FIELD=$S|" .secrets/file.env \
  && unset S && echo "✅ Đã lưu"
🔄 Lỡ lộ key thì sao?
Bình tĩnh: vào console nhà cung cấp (Anthropic / Google / Meta…) tạo lại (regenerate) key đó — key cũ tự vô hiệu. Cập nhật key mới vào .secrets/ và khởi động lại dịch vụ đang dùng.
Phần 8  ·  NÂNG CAO

Dùng chung Mac ↔ Windows: 3 cái bẫy

Nếu bạn chỉ dùng toàn Mac (hoặc toàn Windows) thì bỏ qua phần này. Nhưng nếu trộn Mac và PC Windows trên cùng một két sắt, có 3 thứ chắc chắn sẽ cắn bạn nếu không xử trước.

🪤 Bẫy 1 — "Tự nhiên cả nghìn file bị đổi mà tôi không đụng gì"
Mac và Windows xuống dòng khác nhau (LF vs CRLF). Không khai báo thì mỗi lần đổi máy, Git tưởng bạn sửa toàn bộ file → commit rác, xung đột lung tung.
🪤 Bẫy 2 — File tiếng Việt có dấu bị nhân đôi thành "file ma"
Tên như Hồ Sơ Khách Hàng.md được Mac và Windows mã hoá Unicode khác nhau (NFD vs NFC). Hậu quả: máy kia thấy file "trùng tên nhưng không mở được", hoặc Git báo file vừa bị xoá vừa được thêm.
🪤 Bẫy 3 — Windows báo "Filename too long"
Windows giới hạn đường dẫn 260 ký tự. Vault có thư mục lồng sâu + tên tiếng Việt dài là dính ngay khi git clone.

💊 Thuốc: chạy 1 lần trên MỖI máy

🍎 Trên Mac — Terminal:

git config --global core.autocrlf input
git config --global core.precomposeunicode true
git config --global core.quotepath false

🪟 Trên Windows — PowerShell (dòng cuối cần quyền Administrator):

git config --global core.autocrlf true
git config --global core.quotepath false
git config --global core.longpaths true

Và thêm 1 file .gitattributes vào vault

File này ép mọi máy hiểu giống nhau — tạo trong thư mục vault, đặt cạnh .gitignore:

# Chuẩn hoá xuống dòng cho mọi file chữ
* text=auto eol=lf

# File nhị phân: cấm Git đụng vào nội dung
*.png binary
*.jpg binary
*.pdf binary
*.wav binary
*.mp4 binary
💡 Lời khuyên thật lòng
Nếu được, hãy đặt tên thư mục/file không dấu cho những thứ dùng chung nhiều máy (ho-so-khach-hang thay vì Hồ Sơ Khách Hàng). Tên có dấu vẫn chạy, nhưng khi trộn Mac–Windows thì đây là nguồn rắc rối số 1. Note bên trong Obsidian thì cứ tiếng Việt thoải mái — chỉ tên thư mục cấp cao nên để không dấu.
Phần 9

Quy trình làm việc nhiều máy hằng ngày

Dù bạn có 2 máy hay 5 máy, giữ một thói quen nhỏ này là không bao giờ xung đột hay mất việc:

🌅 Khi bắt đầu (máy nào cũng vậy)

  • Mở Obsidian → chờ báo "Fully synced".
  • PRO Vào thư mục dự án chạy git pull để lấy bản mới nhất.
  • Mở Drive → chờ icon bộ nhớ sync xong rồi mới mở Claude.

🌙 Khi kết thúc

  • Lưu hết note → để Obsidian sync xong mới đóng máy.
  • PRO git add -A && git commit -m "..." && git push
  • Để Drive sync nốt bộ nhớ AI.
💡 Mẹo vàng
Mỗi lần đổi máy, tự nhủ: "Máy cũ đẩy xong, máy mới mới kéo." Cứ giữ thứ tự đó là yên tâm.
⚠️ Quên git pull đầu buổi → chuyện gì xảy ra?
Bạn sẽ sửa trên bản cũ. Lúc git push, Git báo "rejected — behind". Đừng hoảng, cũng đừng dùng --force (sẽ xoá việc của máy kia). Cứ chạy:
git pull --rebase
# Git tự ghép việc của bạn lên trên bản mới. Xong thì:
git push
Nếu báo CONFLICT, mở file có dấu <<<<<<< rồi giữ phần đúng — hoặc nhờ thẳng Claude Code: "gỡ conflict giúp anh".
🖥 Nhiều hơn 2 máy thì sao?
Y hệt. Git không quan tâm bạn có bao nhiêu máy — mỗi máy chỉ cần: SSH key riêng → clone 1 lần → pull đầu buổi, push cuối buổi. Quy tắc duy nhất: đừng để 2 máy cùng sửa một file khi cả hai đang offline.
Phần 10

Checklist cho mỗi máy mới (bấm để tick)

Phần 11

Lỗi thường gặp

🪟 Windows: PowerShell báo "cannot be loaded because running scripts is disabled"
Windows chặn chạy script mặc định. Mở PowerShell quyền Administrator và chạy: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser → gõ Y → Enter.
🪟 Windows: git clone báo "Filename too long"
Đường dẫn vượt 260 ký tự. Chạy git config --global core.longpaths true (PowerShell quyền Admin), rồi clone lại. Nếu vẫn lỗi, clone vào thư mục gần gốc ổ đĩa như C:\cas\ thay vì lồng sâu trong Documents.
Đổi máy xong, Git báo cả nghìn file bị sửa mà mình không đụng gì
Kinh điển của trộn Mac–Windows: khác kiểu xuống dòng (LF vs CRLF). Xem Phần 8 — chạy git config --global core.autocrlf trên mỗi máy và thêm file .gitattributes vào vault. Sau đó chạy git add --renormalize . một lần để dọn.
Push bị GitHub từ chối: "file is XXX MB; exceeds 100 MB limit"
Bạn lỡ đưa file nặng vào két sắt. GitHub chặn cứng file >100MB. Xem Phần 5: chạy git rm --cached "đường/dẫn/file", thêm nó vào .gitignore, rồi git commit --amend --no-edit và push lại. File vẫn còn nguyên trên máy bạn.
Đặt auto-commit ban đêm mà cả tháng không thấy bản lưu nào
Trên Mac, tác vụ nền (launchd) bị chặn đọc ~/Documents nếu chưa cấp Full Disk Access → job chạy nhưng lỗi âm thầm. Kiểm tra bằng git log -1 --format="%cd". Cách chắc ăn: bỏ auto, dùng thói quen pull/push ở Phần 4.
Obsidian báo xung đột (conflict) một file
Do sửa cùng file trên 2 máy khi chưa sync. Vào Settings → Sync → Version history, xem 2 phiên bản, giữ bản đúng. Phòng tránh: luôn để máy cũ sync xong trước khi mở máy mới.
claude báo "command not found"
npm global chưa nằm trong PATH. Chạy npm config get prefix để biết đường dẫn, rồi thêm .../bin vào PATH trong ~/.zshrc. Hoặc cài lại bằng bản native: curl -fsSL https://claude.ai/install.sh | bash.
npm báo lỗi quyền (EACCES) khi cài global
Đừng dùng sudo. Đặt lại thư mục global về home: npm config set prefix ~/.npm-global rồi thêm ~/.npm-global/bin vào PATH. Với wrangler/cache, có thể set npm_config_cache="$PWD/.npmcache" ngay trước lệnh.
GitHub báo "Permission denied (publickey)"
SSH key máy 2 chưa được gắn vào GitHub, hoặc ~/.ssh/config chưa trỏ đúng IdentityFile. Chạy lại ssh -T git@github.com để xem báo lỗi, kiểm tra đã dán đúng file .pub vào GitHub chưa.
Claude không nhớ gì như ở máy 1
Bộ nhớ ~/.claude/memory chưa được nối. Kiểm tra symlink (ls -la ~/.claude/memory phải trỏ tới Drive) và Drive đã sync xong thư mục đó chưa.