5 điểm bởi GN⁺ 2026-02-02 | 1 bình luận | Chia sẻ qua WhatsApp
  • NanoClawtrợ lý AI cá nhân dựa trên Claude chạy trong Apple Container, một hệ thống gọn nhẹ được xây dựng với kiến trúc đơn tiến trình và chỉ gồm một số ít tệp
  • Mỗi container cách ly theo từng nhóm tách riêng lịch sử hội thoại và hệ thống tệp, đồng thời hỗ trợ nhắn tin WhatsApp, tác vụ lập lịch, truy cập web và hơn thế nữa
  • Không cần tệp cấu hình; Claude Code sẽ hướng dẫn cài đặt và tùy biến, và người dùng có thể tự sửa mã để điều chỉnh theo nhu cầu
  • Tính năng mới được mở rộng bằng tệp ‘Skill’ thay vì thêm mã trực tiếp, với nhiều yêu cầu mở rộng như /add-telegram, /convert-to-docker
  • Thay vì dùng framework phức tạp, dự án ưu tiên cấu trúc bảo mật dễ hiểu và sự đơn giản, cung cấp nền tảng để cá nhân hoặc startup xây dựng trợ lý AI an toàn

Tổng quan dự án

  • NanoClaw là trợ lý Claude cá nhân hoạt động trong môi trường Apple Container, được thiết kế với trọng tâm là tính gọn nhẹ và bảo mật
    • Chạy trong một tiến trình Node.js duy nhất, và mỗi agent sử dụng hệ thống tệp được cách ly bên trong container Linux
    • Codebase gồm khoảng 500 dòng TypeScript, và dự án cho biết người dùng có thể hiểu toàn bộ cấu trúc trong vòng 8 phút
  • Dự án được phát hành theo giấy phép MIT và đã đạt hơn 500 Star trên GitHub

Triết lý thiết kế

  • Quy mô dễ hiểu: được xây dựng dưới dạng đơn tiến trình, không có microservice, message queue hay các lớp trừu tượng phức tạp
  • Bảo mật thông qua cách ly: chỉ có thể truy cập các thư mục được mount một cách tường minh, và lệnh Bash cũng chỉ chạy bên trong container
  • Tập trung cho một người dùng: không phải framework mà là phần mềm cá nhân hóa, có thể fork rồi tự chỉnh sửa trực tiếp
  • Sửa mã thay vì cấu hình: giảm tối đa tệp cấu hình, và hành vi mong muốn được triển khai bằng cách sửa mã
  • Cách tiếp cận AI-native: cài đặt, gỡ lỗi và giám sát đều được thực hiện qua giao diện hội thoại của Claude Code
  • Khả năng mở rộng dựa trên Skill: việc thêm tính năng được xử lý bằng các tệp skill trong thư mục .claude/skills thay vì thay đổi mã

Tính năng chính

  • WhatsApp I/O: nhắn tin trực tiếp với Claude từ điện thoại
  • Cách ly ngữ cảnh theo từng nhóm: mỗi nhóm có bộ nhớ CLAUDE.md riêng và hệ thống tệp container riêng
  • Kênh chính: kênh cá nhân dùng để quản trị, tách biệt hoàn toàn với các nhóm khác
  • Tác vụ lập lịch: chạy công việc định kỳ và gửi tin nhắn tự động
  • Truy cập web: hỗ trợ tìm kiếm và thu thập nội dung
  • Tích hợp tùy chọn: có thể kết nối Gmail và các dịch vụ bên ngoài khác thông qua skill như /add-gmail

Tùy biến

  • Có thể thay đổi trực tiếp qua hội thoại với Claude Code mà không cần tệp cấu hình
    • Ví dụ: “đổi từ kích hoạt thành @Bob”, “rút ngắn câu trả lời”, “lưu tóm tắt hội thoại hằng tuần”
  • Lệnh /customize hỗ trợ chỉnh sửa theo từng bước
  • Do codebase nhỏ, Claude có thể tự chỉnh sửa một cách an toàn

Cách mở rộng và đóng góp

  • Tính năng mới không được thêm trực tiếp bằng PR mà được cung cấp dưới dạng skill
    • Ví dụ: mở rộng kênh liên lạc với /add-telegram, /add-slack, /add-discord
    • Chuyển từ Apple Container sang Docker bằng /convert-to-docker
    • Hỗ trợ Windows dựa trên WSL2 với /setup-windows
    • Thêm chức năng tóm tắt và nén phiên làm việc bằng /add-clear
  • Người đóng góp có thể dùng skill để biến đổi fork của mình rồi chia sẻ lại với dự án

Yêu cầu hệ thống và cấu trúc

  • Cần macOS Tahoe(26) trở lên, Node.js 20+, Claude Code, Apple Container
  • Luồng kiến trúc:
    WhatsApp (baileys) → SQLite → Polling loop → Container (Claude Agent SDK) → Response
  • Cấu trúc tệp chính:
    • src/index.ts: ứng dụng chính và kết nối WhatsApp
    • src/container-runner.ts: quản lý chạy container
    • src/task-scheduler.ts: chức năng lập lịch
    • src/db.ts: tích hợp SQLite
    • groups/*/CLAUDE.md: lưu bộ nhớ theo từng nhóm

Tóm tắt FAQ

  • Lý do dùng WhatsApp: vì tác giả dùng WhatsApp cho cá nhân, và các kênh khác có thể thay thế bằng skill
  • Lý do chọn Apple Container: tích hợp sẵn trong macOS, nhẹ và nhanh
  • Có chạy được trên Linux không: có thể port trong khoảng 30 phút thông qua Claude Code
  • Bảo mật: dựa trên cơ chế cách ly container, không thể truy cập ngoài các mount được chỉ định tường minh
  • Lý do không có tệp cấu hình: để tránh cấu hình bị phân tán và giữ mô hình tùy biến lấy mã làm trung tâm
  • Cách gỡ lỗi: hỏi trực tiếp Claude Code để xử lý vấn đề
  • Những thay đổi được chấp nhận: chỉ cho phép sửa bảo mật, lỗi và cải thiện cấu hình mặc định

Giấy phép

  • Phát hành theo MIT License
  • Bất kỳ ai cũng có thể tự do sửa đổi và phân phối lại

1 bình luận

 
GN⁺ 2026-02-02
Ý kiến trên Hacker News
  • Cảm giác việc chạy thứ này thực sự quá nguy hiểm
    Trông có vẻ ổn lúc này, nhưng chỉ cần xảy ra một lần là xong
    Việc nối thứ như Claw này vào một không gian hội thoại dùng chung đúng là một thí nghiệm nguy hiểm theo đúng nghĩa đen
    Giới black hat chắc đã để mắt tới rồi, và cuối cùng có lẽ nhiều người sẽ bị dính đòn nặng

    • Cũng có thể lắm. Giống như hồi trước ai cũng chạy phpBB hay plugin Wordpress bảo mật lỏng lẻo, lần này có khi lại là lịch sử lặp lại
    • Ngoài vấn đề bảo mật, còn hai điều nữa khiến tôi lo
      1. Nếu như OpenAI từng nói, quảng cáo bị trộn vào câu trả lời thì sẽ ra sao
      2. Nếu mức giá rẻ hiện tại là không bền vững và sau này tăng gấp 10 lần thì sao
        Có khi bây giờ chúng ta đang tận hưởng thời kỳ hoàng kim: dùng LLM giá rẻ mà chưa có quảng cáo
        Dạo này kết quả tìm kiếm bị spam hóa quá nhiều nên tôi hay dùng AI để hỏi so sánh hoặc xin báo giá trực tiếp
        Nhưng tôi lo rằng chẳng bao lâu nữa mình sẽ nhận được câu trả lời trộn lẫn quảng cáo và gợi ý trả phí
  • Dạo này khi công khai code mình làm ra, tôi cố tự tay viết tài liệu hay README
    Tài liệu có mùi do LLM viết khiến tôi mất hứng, dù dự án có hay đến đâu
    Nó không tạo được cảm giác chân thành muốn truyền đạt cho con người
    Dù có lỗi chính tả, tôi vẫn thấy lời giải thích mang tính con người tốt hơn nhiều
    Nhân tiện, sau bình luận của tôi thì tác giả đã sửa lại README
    Liên kết commit đã sửa

    • Tôi là tác giả đây. Tôi chưa từng che giấu việc đã code bằng AI. Gần như mọi commit đều ghi “Co-Authored-By: Claude Opus 4.5”
      Đúng như bạn chỉ ra, tôi đã sửa những phần có mùi AI, và giờ nó tốt hơn nhiều rồi
      Đây không phải kiệt tác gì, mà là đoạn mã thực dụng hữu ích với tôi
      Tôi hy vọng nó cũng có ích cho người khác như một tài liệu tham khảo
      Tôi đã chú ý đến cấu trúc bảo mật trong lúc làm vào cuối tuần, nhưng hiện tại cần chốt lại trước nên đăng lên ở trạng thái còn rough
      Nếu xem README, bạn sẽ hiểu rõ hơn bối cảnh của dự án
    • Tôi cũng hoàn toàn đồng ý. README hay phần giới thiệu sản phẩm do AI viết không tạo được cảm giác chân thành nên làm tôi tụt hứng rất nhanh
      Dùng AI để viết code thì không sao, nhưng phần giới thiệu nên do con người tự viết
    • Các dự án dùng LLM dạo này có xu hướng tập trung vào lớp vỏ thu hút sự chú ý hơn là chức năng
      Trước đây bản thân code là “bằng chứng của nỗ lực”, còn bây giờ vì tạo ra quá dễ nên cảm giác trọng lượng cũng biến mất
    • Thậm chí có trường hợp nội dung README bị hallucination
      Liên kết chủ đề liên quan
  • Một trong những điểm mạnh của Clawdbot là nó cho phép mọi quyền hạn
    Tuy vậy, tôi vẫn thắc mắc các action bên ngoài như vậy được sandbox thế nào
    Apple Container ánh xạ 1:1 với lightweight VM cho từng container, nên có vẻ khá vững
    Có ví dụ về sandbox chạy code nói chung tận dụng cách này là instavm/coderunner
    Nó cũng có thể tích hợp với AI như Claude Code

    • Nếu là “cho phép mọi quyền hạn”, tôi tự hỏi nó khác gì việc cấp permission 777 cho file hệ thống
    • Nó làm tôi nhớ đến hồi ở phòng lab CS, khi bọn tôi xin mật khẩu superuser mà giáo sư không cho
      Clawdbot giống như 100 sinh viên năm hai đứng gõ cửa xin quyền root vậy
  • Dự án này trông khá ngầu
    Tôi vẫn thắc mắc liệu với gói Claude Pro/Max có dùng được Agent SDK không,
    và theo tài liệu Quickstart chính thức thì có vẻ là được
    Tài liệu ghi rằng sau khi cài xong và đăng nhập trong terminal, SDK sẽ dùng xác thực tự động

    • Nhưng trong tài liệu cũng có chỗ ghi “chỉ cho phép xác thực bằng API key
      Tức là có vẻ không thể dùng trực tiếp SDK bằng tài khoản thuê bao
      Mong Anthropic làm rõ phần này
    • Tôi là tác giả. Tôi cũng thấy chỗ đó khó hiểu nên đã tự làm thử
      Vì đang dùng Agents SDK nên tôi nghĩ chắc không vi phạm TOS
      Nhưng vì tôi không biết cách duy trì phiên xác thực bên trong container nên đã dùng mẹo tiêm OAuth token qua biến môi trường
      Đây là lỗ hổng bảo mật duy nhất. Người dùng ác ý có thể lấy token bằng prompt injection
      Nếu ai biết cách nối xác thực phiên vào container cho đúng thì rất mong được chỉ giúp
    • Nhờ vậy tôi mới biết thêm. Vậy có lẽ tranh cãi quanh OpenClaw là do nó gọi trực tiếp mà không qua SDK
      Nếu theo tài liệu này thì có vẻ vẫn có thể tự do làm ứng dụng kiểu agent bằng tài khoản thuê bao
  • Người không chuyên kỹ thuật có xu hướng quá tin vào mô hình chỉ vì thấy tỷ lệ hallucination giảm
    Nhưng rủi ro thật sự là các cuộc tấn công bằng prompt độc hại
    Giống như thời kỳ đầu của thẻ tín dụng, hiện giờ chỉ là thiệt hại chưa lộ ra thôi
    Phải đến khi hàng loạt vụ việc nổ ra thì mọi người mới cảnh giác

  • Tôi đã mong có ai đó làm ra một phiên bản an toàn hơn như thế này
    OpenClaw hữu ích, nhưng đồng thời cũng đáng sợ
    Vì vậy chiếc Mac mini của tôi hiện vẫn đang tắt

  • Khá thú vị khi họ dùng Apple Container thay vì Docker
    Có lẽ là để tiết kiệm tài nguyên trên Mac Mini
    Nhưng tôi tò mò liệu điều này có hạn chế bộ công cụ Linux tiêu chuẩn hay không

    • Apple Container về cơ bản là microVM, nên cung cấp mức cô lập mạnh hơn nhiều so với container thông thường
    • (Các bình luận khác được lược bỏ)
    • Chắc tự tìm bằng công cụ tìm kiếm sẽ ra câu trả lời
  • Tôi thích ý tưởng về một phiên bản thu nhỏ của OpenClaw
    Có vẻ code chỉ khoảng 2500 dòng, và cấu trúc Apple Container cũng khá thú vị

  • Trong Quick Start có ghi git clone https://github.com/anthropics/nanoclaw.git
    nhưng kho đó không tồn tại. Tôi thắc mắc liệu đây có phải dự án chính thức của Anthropic không
    Cũng nghi README có khi được tạo ra do hallucination

    • Thực tế là Claude đã bịa ra repo đó do hallucination
      Liên kết commit liên quan
    • Đã sửa xong rồi. Đây là dự án thử nghiệm tôi tự làm một mình vào cuối tuần
      Tôi gắn Claude Code vào Obsidian vault, đồng thời cho phép lên lịch các tác vụ cron qua WhatsApp
      Nó đơn giản hơn nhiều so với OpenClaw khổng lồ và nằm trong phạm vi tôi có thể hiểu được nên tôi thấy yên tâm hơn
      Tôi cũng mong người khác chỉ dùng nó như tài liệu tham khảo
    • Giờ có vẻ đã được sửa lại bình thường rồi
  • Dạo này cứ thấy ứng dụng vibe-coded là tôi lại tự làm một bản tương tự bằng Claude Code
    Làm theo nhu cầu của mình còn hiệu quả hơn dùng đồ của người khác

    • Đúng vậy. Giờ chi phí viết và bảo trì code gần như tiệm cận về 0
      Giá trị của thư viện bên ngoài đang giảm đi
      Rủi ro bị tấn công chuỗi cung ứng hay bị đổi giấy phép cũng biến mất
      Đây là thời đại mà bản thân code vừa là tài liệu vừa là cấu hình
      Vì vậy tôi thích những phiên bản nhẹ, tùy biến như thế này hơn OpenClaw
      Chỉ cần fork làm điểm khởi đầu hoặc đưa cho Claude làm tài liệu tham khảo là có thể tạo ngay phiên bản của riêng mình