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

Tùy biến Claude Code theo cách của bạn với mods

Anthropic vừa giới thiệu mods: những hàm TypeScript nhỏ giúp thay đổi cách Claude Code hoạt động. Một mod có thể viết lại prompt trước khi gửi đi, thêm giao diện mới, thay thế một tính năng có sẵn, hoặc bổ sung một tính năng hoàn toàn mới. Bạn có thể tự viết mod, hoặc đơn giản là nhờ chính Claude Code viết giúp. Mods được đóng gói bên trong plugin, nên bạn cài đặt và chia sẻ chúng y như mọi plugin khác. Mods chạy được trong Claude Code CLI (bản dòng lệnh trên terminal) và ứng dụng desktop.

Một điều cần lưu ý ngay từ đầu: mods có quyền truy cập máy tính của bạn ngang với chính Claude Code. Chúng không chạy trong “sandbox” (một vùng cách ly để giới hạn những gì chương trình được đụng tới), nên bạn chỉ nên cài mod từ những nguồn mình tin tưởng, giống như khi cài bất kỳ phần mềm nào khác lên máy.

Để xem mods làm được những gì, bạn có thể đọc hướng dẫn xây dựng mod đầu tiên của Anthropic.

Từ lâu, các lập trình viên đã muốn tự kiểm soát nhiều hơn cách Claude Code hoạt động, thay vì phải chờ Anthropic phát hành tính năng mình cần. Hooks đã đáp ứng được một phần mong muốn này, nhưng hooks có giới hạn: chúng không thể viết lại sự kiện, không vẽ được giao diện mới, và không thay thế được tính năng có sẵn. Mods thì làm được tất cả những việc đó.

Anthropic muốn Claude Code mang lại cảm giác “của riêng bạn”, để bạn có thể uốn nắn nó theo đúng cách mình làm việc. Trước khi ra mắt, họ đã công khai bản thiết kế của mods trên GitHub để lắng nghe góp ý từ cộng đồng lập trình viên, và gửi lời cảm ơn tới tất cả những ai đã tham gia đóng góp ý kiến.

Mỗi lần Claude Code làm một việc gì đó, nó phát ra một sự kiện (event). Ví dụ: khi gọi một công cụ (tool), khi xin quyền thực hiện một thao tác, hay khi vẽ một phần của màn hình. Mod là một hàm “móc” (hook) vào một trong các sự kiện này. Mod có thể chạy trước sự kiện, sau sự kiện, hoặc chạy thay cho sự kiện. Nó cũng có thể “bọc” lấy sự kiện, tức là chạy code cả trước lẫn sau. Bạn có thể hình dung mỗi sự kiện như một gói hàng đi qua băng chuyền, và mod là người đứng ở một trạm trên băng chuyền: có thể chỉ nhìn qua, có thể sửa lại gói hàng, hoặc giữ gói hàng lại và tự xử lý.

Chỉ với một hàm, một mod có thể:

  • Viết lại prompt trước khi nó đến được model.
  • Chặn, viết lại hoặc thử lại một lần gọi công cụ.
  • Chấp thuận hoặc từ chối một yêu cầu xin quyền.
  • Xóa các thông tin bí mật (như mật khẩu, khóa API) khỏi kết quả của công cụ trước khi Claude đọc thấy.

Mod cũng có thể thay đổi những gì bạn nhìn thấy. Nó có thể chỉnh sửa hoặc thay thế một phần giao diện mà Claude Code vẽ ra, chẳng hạn kết quả của một công cụ hay một câu hỏi Claude đặt cho bạn. Nó có thể thêm nút bấm và ô nhập liệu, và các mod khác có thể phản ứng khi bạn bấm vào đó. Hiện tại, một mod có thể nhắm tới giao diện terminal, ứng dụng desktop, hoặc cả hai.

Khi nhiều mod cùng móc vào một sự kiện, chúng chạy theo thứ tự được nạp. Mod được nạp đầu tiên sẽ thấy sự kiện đầu tiên và thấy kết quả cuối cùng, giống như lớp vỏ ngoài cùng của một củ hành. Nhờ vậy bạn có thể xếp chồng nhiều mod của các tác giả khác nhau lên nhau.

Bạn còn có thể dùng chính Claude Code để “mod” Claude Code. Chỉ cần nhờ Claude tạo một mod, nó có thể viết code TypeScript, cài đặt mod, và nạp lại ngay (hot reload) trong session bạn đang làm việc, không cần khởi động lại.

Thay tính năng có sẵn bằng phiên bản của riêng bạn

Phần tiêu đề “Thay tính năng có sẵn bằng phiên bản của riêng bạn”

Một số tính năng có sẵn của Claude Code giờ đây được phát hành dưới dạng mod. Ví dụ, tính năng /diff (xem những thay đổi trong code) giờ là một mod, nên bạn có thể tắt nó đi (trong /plugin) hoặc thay bằng phiên bản do mình tự viết. Anthropic dự định dần dần chuyển thêm nhiều tính năng có sẵn sang dạng mod, để bạn có thể rút gọn Claude Code xuống một phần lõi nhỏ gọn rồi chỉ thêm lại những gì mình thực sự cần.

Vì mods nằm bên trong plugin, nên các quy định quản lý plugin hiện có của tổ chức vẫn áp dụng như cũ. Quản trị viên có thể cho phép hoặc chặn các plugin marketplace (kho plugin). Với gói Team và Enterprise, chủ sở hữu tài khoản đặt các quy định này trong admin console. Với gói Claude API và API của bên thứ ba, quản trị viên đẩy “managed settings” (cấu hình do tổ chức quản lý tập trung) xuống máy của từng người dùng.

Với gói Team và Enterprise, cũng như trên bất kỳ máy nào có managed settings, một mod tích hợp sẵn tên là sec-default (“security default”, tức mặc định bảo mật) sẽ được nạp đầu tiên. Nó ngăn các mod do người dùng tự cài làm những việc rủi ro, ví dụ như vượt qua các quy tắc cấm (deny rule) mà tổ chức đã đặt. Bạn có thể xem mã nguồn để biết chính xác nó giới hạn những gì. Quản trị viên cũng có thể cho mod của tổ chức mình nạp trước. Nếu làm vậy, hãy thêm sec-default vào danh sách để giữ lại các giới hạn bảo mật của nó.

Các team cũng có thể dùng mods để tự xây dựng công cụ kiểm soát và tính năng riêng. Ví dụ:

  • Trạng thái CI/CD: một mod có thể hiển thị trạng thái của quy trình build và triển khai trong một khung bên cạnh cuộc hội thoại, và tự cập nhật khi các bản build thành công hay thất bại.
  • Bảo vệ môi trường production: một mod có thể yêu cầu xác nhận trước khi bất kỳ lệnh nào đụng tới cấu hình của hệ thống đang chạy thật.
  • Ghi nhật ký kiểm toán (audit log): một mod được nạp đầu tiên có thể ghi lại mọi lời gọi mà tất cả các mod khác thực hiện.

Mods đã có mặt trong Claude Code CLI và ứng dụng desktop. Bạn có thể cài các plugin có chứa mod từ Claude directory hoặc bằng cách chạy /plugin trong CLI. Để chia sẻ một mod, hãy đóng gói nó thành plugin rồi gửi lên directory.

Để tự xây dựng mod, hãy đọc hướng dẫn bắt đầu của Anthropic hoặc xem tài liệu về mods.