Bỏ qua để đến nội dung

Slash Commands

Thời gian học: ~25 phút

Yêu cầu trước: Module 4.2 (CLAUDE.md — Bộ Nhớ Dự Án)

Kết quả: Sau module này, bạn sẽ biết mọi slash command trong Claude Code, khi nào dùng lệnh nào, và cách chúng kết hợp thành workflow hiệu quả — đặc biệt là các lệnh quản lý context rất quan trọng cho session dài.


Bạn code được 45 phút trong một session refactor phức tạp. Claude bắt đầu phản hồi chậm lại. Context window đầy. Bạn cần nén lại lịch sử hội thoại để tiếp tục làm việc, nhưng lệnh là gì nhỉ? /compact? /compress? /summarize? Bạn gõ /help và giật mình nhận ra mình dùng Claude Code mấy tháng nay mà chỉ biết 2-3 lệnh. Bạn đang lái máy bay bịt mắt. Đa số developer không bao giờ học hết bộ lệnh, rồi tốn hàng giờ restart session hoặc làm việc với chất lượng kém. Module này cho bạn bức tranh toàn cảnh — mọi slash command đã xác thực, khi nào dùng, và cách chúng kết hợp thành workflow mượt mà.


Slash commands là các lệnh built-in bắt đầu bằng /, dùng để điều khiển hành vi của Claude Code trong session. Khác với prompt thông thường (yêu cầu Claude làm việc gì đó), slash commands thay đổi trạng thái session, hiển thị thông tin, hoặc kích hoạt hành động system-level.

Hình dung chúng như bảng điều khiển cho AI session của bạn. Prompt thường là “cái bạn muốn xây”. Slash commands là “cách bạn duy trì môi trường xây dựng”.

Slash commands trong Claude Code chia thành ba nhóm chính:

NhómMục ĐíchCác Lệnh
Quản Lý ContextKiểm soát lịch sử hội thoại và bộ nhớ/compact, /clear
Thông TinKiểm tra trạng thái session và chi phí/help, /cost
Setup Dự ÁnKhởi tạo cấu hình riêng cho dự án/init

Khi nào thì dùng lệnh nào? Đây là mental model:

graph TD
A[Vấn đề?] --> B{Session thấy chậm?}
A --> C{Chuyển sang topic mới?}
A --> D{Muốn check tiền?}
A --> E{Setup dự án mới?}
A --> F{Quên mất có lệnh gì?}
B -->|Có| G[/compact]
C -->|Có, không liên quan task hiện tại| H[/clear]
D -->|Có| I[/cost]
E -->|Có| J[/init]
F -->|Có| K[/help]
G --> L[Tiếp tục làm với context được giải phóng]
H --> M[Khởi đầu mới, mọi context bị xóa]
I --> N[Xem usage, quyết định có cần /compact không]
J --> O[CLAUDE.md tạo xong, configure dự án]
K --> P[Xem tất cả lệnh có sẵn]

Lệnh /compact là công cụ quan trọng nhất cho session dài. Đây là cách nó hoạt động:

Nó làm gì:

  • Tóm tắt lịch sử hội thoại đến thời điểm hiện tại
  • Nén những đoạn trao đổi dài dòng thành summary ngắn gọn
  • Giải phóng không gian context window cho công việc mới
  • Bảo toàn các quyết định quan trọng, lựa chọn kiến trúc, và code snippets then chốt

Khi nào dùng:

  • Mỗi 30-40 phút trong session active
  • Trước khi bắt đầu sub-task mới trong cùng dự án
  • Khi bạn nhận thấy câu trả lời kém chính xác hơn hoặc chậm hơn
  • Khi /cost cho thấy bạn sắp chạm giới hạn token

Nó bảo toàn gì vs. tóm tắt gì:

  • ✅ Bảo toàn: Quyết định gần đây, nội dung file đang active, lựa chọn kiến trúc quan trọng
  • 📝 Tóm tắt: Chi tiết implementation từng bước, giải thích dài dòng, trao đổi lặp lại
  • ⚠️ Có thể mất: Wording chính xác của code snippets lúc đầu, reasoning chi tiết từ đầu session

Pro tip: /compact không phá hủy gì cả — nó giống “save and compress” hơn là “delete”. Dùng thoải mái. Nhược điểm duy nhất là mất một số chi tiết nguyên văn từ lúc đầu.

⚠️ Cần xác thực — Claude Code có thể hỗ trợ custom slash commands được định nghĩa trong CLAUDE.md hoặc qua file cấu hình. Test trong môi trường của bạn trước khi dựa vào tính năng này.


Cùng đi qua một session code dài thực tế, dùng mọi slash command đã được xác thực.

Kịch bản: Bạn đang xây một REST API service mới. Đây là lần đầu làm việc với project này, và bạn dự kiến session sẽ chạy 60+ phút.


Bước 1: Khởi động session và check các lệnh có sẵn

Terminal window
$ claude

Bạn đã vào session. Đầu tiên, xem có gì:

/help

Kết quả mong đợi:

Available commands:
/help - Show this help message
/compact - Compress conversation history to free context space
/clear - Clear all conversation history and start fresh
/cost - Show token usage and estimated cost for this session
/init - Initialize CLAUDE.md for current project
Type a command or describe what you want to build.

Tại sao quan trọng: Bạn giờ có tài liệu tham khảo. Bookmark trong đầu — /help là phao cứu sinh khi quên cú pháp.


Bước 2: Khởi tạo cấu hình dự án

Bạn đang bắt đầu với một dự án mới. Setup bộ nhớ cho dự án:

/init

Kết quả mong đợi:

Creating CLAUDE.md in current directory...
I've created a starter CLAUDE.md file. Let me open it so we can configure
it for your project.
[CLAUDE.md mở ra với nội dung template]
What kind of project is this? I'll help you customize the configuration.

Tại sao quan trọng: Bạn đang setup context riêng cho dự án ngay từ đầu. Claude giờ sẽ nhớ stack, conventions, và constraints của bạn qua các session.


Bước 3: Làm việc 20 phút, sau đó check token usage

Bạn đã implement xong hai API endpoints đầu tiên. Giờ check chi phí:

/cost

Kết quả mong đợi:

Session Token Usage:
Input tokens: 12,847
Output tokens: 8,392
Total tokens: 21,239
Estimated cost: $0.18
Context window: ~21% full
💡 Tip: Context is healthy. Continue working normally.

Tại sao quan trọng: Bạn giờ biết tốc độ tiêu token. Vẫn OK để tiếp tục mà chưa cần compact.


Bước 4: Làm thêm 20 phút nữa, chất lượng thấy giảm — nén context

Bạn đã vào phút thứ 40. Câu trả lời thấy kém chính xác hơn chút. Check cost lại, rồi compact:

/cost

Kết quả mong đợi:

Session Token Usage:
Input tokens: 38,291
Output tokens: 24,103
Total tokens: 62,394
Estimated cost: $0.52
Context window: ~62% full
⚠️ Consider using /compact to free context space.

Giờ compact:

/compact

Kết quả mong đợi:

Compacting conversation history...
✓ Compressed 62,394 tokens → 18,203 tokens (71% reduction)
✓ Preserved:
- Current CLAUDE.md configuration
- API endpoint implementations (users, products)
- Database schema decisions
- Error handling patterns
You can continue working. Context window freed.

Tại sao quan trọng: Bạn vừa lấy lại ~44k tokens. Bạn có thể làm thêm 30-40 phút nữa trước khi cần compact lần sau.


Bước 5: Hoàn thành API, chuyển sang task hoàn toàn khác — clear context

API xong rồi. Giờ bạn cần làm React dashboard (codebase hoàn toàn khác). Clear tất cả:

/clear

Kết quả mong đợi:

Are you sure you want to clear all conversation history? This cannot be undone.
Type 'yes' to confirm, or anything else to cancel.
yes

Kết quả mong đợi:

✓ Conversation history cleared.
✓ Context window reset.
Starting fresh. What would you like to work on?

Tại sao quan trọng: Bạn đã reset hoàn toàn. Không có context của API nào chảy sang công việc dashboard. Bảng trắng tinh cho cả bạn lẫn Claude.


Mục tiêu: Trải nghiệm toàn bộ vòng đời quản lý context trong session dài.

Hướng dẫn:

  1. Khởi động Claude session mới
  2. Chọn một task phức tạp (multi-file refactoring, feature mới, bug investigation)
  3. Làm việc 10 phút, chạy /cost — ghi lại số token
  4. Làm thêm 10 phút, chạy /cost lại — quan sát tốc độ tăng
  5. Tiếp tục làm cho đến khi /cost cảnh báo hoặc response thấy chậm
  6. Chạy /compact và ghi lại mức giảm token
  7. Tiếp tục làm thêm 20 phút nữa
  8. Chạy /cost lần cuối — so sánh với số liệu trước khi compact

Kết quả mong đợi:

  • Bạn sẽ thấy token giảm 60-80% sau /compact
  • Response sẽ cảm thấy nhanh hơn sau khi compact
  • Bạn sẽ phát triển trực giác về khi nào cần compaction (cảm giác “sluggish”)
💡 Gợi Ý

Đa số developer đợi quá lâu mới compact. Nếu đang làm công việc phức tạp, hãy compact mỗi 30 phút dù response vẫn OK — đó là bảo trì phòng ngừa.

✅ Giải Pháp

Không có câu trả lời “đúng” duy nhất — mục tiêu là nội hóa nhịp điệu. Nhưng đây là pattern điển hình:

  • 0-10 phút: ~8k tokens
  • 10-20 phút: ~18k tokens (tốc độ tăng cao, nhiều code generation)
  • 20-30 phút: ~32k tokens (ngưỡng cảnh báo context trên một số model)
  • Sau /compact: ~12k tokens (bảo toàn công việc gần đây, tóm tắt phần khám phá đầu)
  • 30-50 phút sau compact: ~28k tokens
  • Insight then chốt: Không compact thì bạn sẽ chạm giới hạn quanh phút 35. Với compact, bạn có thể làm liên tục 60+ phút.

Mục tiêu: Hiểu sự khác biệt giữa /compact (tóm tắt) và /clear (reset).

Hướng dẫn:

  1. Khởi động session, implement một feature nhỏ (ví dụ: validation function)
  2. Chạy /compact
  3. Hỏi Claude “Chúng ta vừa build cái gì?” — ghi lại câu trả lời
  4. Giờ chạy /clear và confirm
  5. Hỏi Claude “Chúng ta vừa build cái gì?” lần nữa

Kết quả mong đợi:

  • Sau /compact: Claude nhớ validation function (đã tóm tắt)
  • Sau /clear: Claude không biết gì, context reset hoàn toàn
💡 Gợi Ý

Dùng /compact khi chuyển sub-task trong cùng dự án. Dùng /clear chỉ khi chuyển sang dự án hoàn toàn không liên quan hoặc khi muốn xóa bỏ toàn bộ context trước đó (hiếm).

✅ Giải Pháp

Sau /compact:

Bạn: Chúng ta vừa build cái gì?
Claude: Chúng ta đã implement email validation function với regex pattern matching,
custom error messages, và xử lý edge cases cho plus-addressing và
internationalized domains.

Sau /clear:

Bạn: Chúng ta vừa build cái gì?
Claude: Tôi không có context về những gì chúng ta build trước đó. Lịch sử hội thoại
đã bị xóa. Bạn muốn làm việc gì?

Điều này chứng minh /compact là lossy summarization, trong khi /clear là total amnesia.


LệnhChức NăngKhi Nào DùngVí Dụ
/helpLiệt kê tất cả slash commandsKhi quên cú pháp hoặc muốn xem có gìĐầu session, khi bí
/compactNén lịch sử hội thoại, giải phóng contextMỗi 30-40 phút, trước sub-task mới, khi response giảm chất lượng/compact → tiếp tục làm
/clearXóa TOÀN BỘ lịch sử hội thoại, bắt đầu mớiChuyển sang dự án không liên quan, loại bỏ context bleeding/clearyes → task mới
/costHiển thị token usage và chi phí ước tínhMỗi 20-30 phút để track chi tiêu, trước khi compactCheck → quyết định có cần /compact
/initKhởi tạo CLAUDE.md cho dự ánLần đầu làm việc với dự án mới/init → configure stack/rules

Có thể tồn tại nhưng chưa confirm. Hãy test trong môi trường của bạn:

LệnhChức Năng Có ThểCần Xác Thực
/modelChuyển giữa các Claude models (Haiku/Sonnet/Opus)⚠️ Xác thực cú pháp và availability
/statusHiển thị trạng thái session hiện tại, active files⚠️ Có thể không tồn tại
/configSửa cấu hình session⚠️ Có thể chỉ qua CLAUDE.md
/undoHoàn tác hành động cuối⚠️ Xác thực có support không
/diffHiển thị thay đổi trong session⚠️ Có thể git-specific
/reviewYêu cầu code review⚠️ Có thể dùng prompt, không phải command

Kết hợp lệnh cho workflow mạnh mẽ:

ComboWorkflowUse Case
/cost/compactCheck token usage, sau đó nén nếu cầnBảo trì phòng ngừa mỗi 30 phút
/clear/init → làm việcReset hoàn toàn, config dự án mới, bắt đầu freshChuyển dự án giữa ngày
/compact → tiếp tục → /costCompact, làm tiếp, verify token giảmSession dài (60+ phút)
/help → thử lệnh → /costHọc lệnh mới, test nó, check impactChế độ thử nghiệm

❌ Sai Lầm✅ Cách Đúng
Dùng /clear khi định dùng /compact — mất toàn bộ context khi chỉ cần nénDùng /clear CHỈ cho dự án mới không liên quan. Dùng /compact cho sub-tasks cùng dự án.
Không bao giờ compact cho đến khi context 100% đầy và response chậmCompact chủ động mỗi 30-40 phút. Nó miễn phí, nhanh, và ngăn chặn suy giảm.
Không bao giờ check /cost cho đến cuối sessionChạy /cost mỗi 20-30 phút. Phát triển trực giác về tốc độ tiêu token. Bắt pattern tốn kém sớm.
Cho rằng /compact giữ nguyên văn code từ 30 phút trước/compact tóm tắt. Nếu cần code chính xác, lưu vào file hoặc CLAUDE.md trước khi compact.
Dùng /clear cho mọi sub-task (ví dụ: sau mỗi function implement)/clear phá hủy context. Chỉ dùng khi chuyển sang dự án HOÀN TOÀN khác. Cho sub-tasks, cứ tiếp tục hoặc dùng /compact.
Bỏ qua /init cho dự án mới, rồi thắc mắc sao Claude quên stack qua các sessionLuôn /init với dự án mới. CLAUDE.md là bộ nhớ persistent. Slash commands là bộ nhớ session.

Kịch bản: Một senior backend engineer ở một fintech startup Việt Nam đang refactor payment microservice — 8 giờ làm việc chạm vào 30+ files từ authentication, transaction processing, đến reconciliation logic.

Vấn đề: Trước khi học slash commands, workflow của anh ấy rất khốc liệt: làm 45 phút, nhận thấy response giảm chất lượng, restart Claude hoàn toàn, giải thích lại context mất 10 phút, làm thêm 45 phút, lặp lại. Bốn lần restart cưỡng bức mỗi ngày. Anh ước tính mất 90 phút mỗi ngày chỉ để reset context.

Giải pháp: Sau module này, anh implement kỷ luật slash command:

  • /init lúc bắt đầu dự án (CLAUDE.md capture kiến trúc service)
  • /cost mỗi 20 phút (đặt timer)
  • /compact mỗi 40 phút hoặc khi /cost hiển thị >50% context usage
  • /clear chỉ khi chuyển sang service khác

Kết quả:

  • Zero lần restart cưỡng bức trong session 8 giờ
  • Token usage giảm 30% (compact giải phóng không gian, không có giải thích lại thừa)
  • Cải thiện chất lượng chủ quan: “Responses giữ được sắc sảo cả ngày. Sự khác biệt giữa chạy nước rút có nghỉ ngơi vs. chạy đến khi ngã.”

Team của anh giờ đưa kỷ luật slash command vào tài liệu onboarding: “Nếu không dùng /compact mỗi 30 phút, là bạn đang làm sai.”


Tiếp theo: Module 4.4: Memory System