5 คะแนน โดย GN⁺ 2026-02-02 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • NanoClaw คือ ผู้ช่วย AI ส่วนตัวที่ขับเคลื่อนด้วย Claude ซึ่งทำงานบน Apple Container โดยเป็นระบบน้ำหนักเบาที่มีโครงสร้างแบบโปรเซสเดียวและประกอบด้วยไฟล์เพียงไม่กี่ไฟล์
  • รองรับการ แยกคอนเทนเนอร์ตามแต่ละกลุ่ม เพื่อแยกประวัติการสนทนาและระบบไฟล์ พร้อมรองรับ การส่งข้อความผ่าน WhatsApp, งานตามกำหนดเวลา, การเข้าถึงเว็บ และอื่น ๆ
  • โดยไม่ต้องมีไฟล์ตั้งค่า Claude Code จะช่วยแนะนำการติดตั้งและการปรับแต่ง และผู้ใช้สามารถแก้โค้ดได้โดยตรงเพื่อปรับให้เหมาะกับตนเอง
  • ฟีเจอร์ใหม่ ๆ ขยายผ่านไฟล์ ‘สกิล (Skill)’ แทนการเพิ่มโค้ดโดยตรง และมีตัวอย่างคำขอขยายอย่าง /add-telegram, /convert-to-docker เป็นต้น
  • ให้ความสำคัญกับ โครงสร้างความปลอดภัยที่เข้าใจได้และความเรียบง่าย แทนเฟรมเวิร์กที่ซับซ้อน จึงเป็นฐานสำหรับนักพัฒนาเดี่ยวหรือสตาร์ตอัปในการสร้างผู้ช่วย AI อย่างปลอดภัย

ภาพรวมโปรเจ็กต์

  • NanoClaw คือ ผู้ช่วย Claude ส่วนตัว ที่ทำงานในสภาพแวดล้อม Apple Container โดยออกแบบมาให้เน้นความเบาและความปลอดภัย
    • ทำงานบนโปรเซส Node.js เดียว และแต่ละเอเจนต์ใช้ระบบไฟล์ที่ถูกแยกภายใน ลินุกซ์คอนเทนเนอร์
    • โค้ดเบสมี TypeScript ราว 500 บรรทัด และอธิบายว่าผู้ใช้สามารถ เข้าใจโครงสร้างทั้งหมดได้ภายใน 8 นาที
  • เปิดเผยภายใต้สัญญาอนุญาต MIT และมี Star บน GitHub มากกว่า 500 รายการ

ปรัชญาการออกแบบ

  • ขนาดที่เข้าใจได้: ใช้โครงสร้างแบบโปรเซสเดียวโดยไม่มีไมโครเซอร์วิส คิวข้อความ หรือ abstraction ที่ซับซ้อน
  • ความปลอดภัยผ่านการแยกสภาพแวดล้อม: เข้าถึงได้เฉพาะไดเรกทอรีที่เมานต์ไว้อย่างชัดเจน และคำสั่ง Bash ก็รันได้เฉพาะภายในคอนเทนเนอร์เท่านั้น
  • เน้นผู้ใช้คนเดียว: ไม่ใช่เฟรมเวิร์ก แต่เป็นซอฟต์แวร์ที่ปรับให้เหมาะกับผู้ใช้รายบุคคล ซึ่งสามารถ fork แล้วแก้ไขได้โดยตรง
  • แก้โค้ดแทนการตั้งค่า: ลดการใช้ไฟล์ตั้งค่าให้เหลือน้อยที่สุด และทำพฤติกรรมที่ต้องการผ่านการเปลี่ยนโค้ด
  • แนวทางแบบ AI-native: การติดตั้ง ดีบัก และมอนิเตอร์ ทำผ่านอินเทอร์เฟซสนทนา Claude Code ทั้งหมด
  • การขยายแบบอิงสกิล: การเพิ่มฟังก์ชันจัดการผ่านไฟล์สกิลในไดเรกทอรี .claude/skills แทนการแก้โค้ด

ฟีเจอร์หลัก

  • WhatsApp I/O: ส่งข้อความคุยกับ Claude ได้โดยตรงจากโทรศัพท์
  • การแยกคอนเท็กซ์ตามกลุ่ม: แต่ละกลุ่มมีหน่วยความจำ CLAUDE.md และระบบไฟล์คอนเทนเนอร์ของตัวเอง
  • ช่องทางหลัก: ช่องทางส่วนตัวสำหรับการจัดการ ซึ่งแยกจากกลุ่มอื่นอย่างสมบูรณ์
  • งานตามกำหนดเวลา: รันงานเป็นระยะและส่งข้อความอัตโนมัติ
  • การเข้าถึงเว็บ: รองรับการค้นหาและการดึงเนื้อหา
  • การเชื่อมต่อแบบเลือกใช้: สามารถเชื่อมต่อบริการภายนอกอย่าง Gmail ผ่านสกิล เช่น /add-gmail

การปรับแต่ง

  • สามารถแก้ไขได้โดยตรงผ่านการสนทนากับ Claude Code โดยไม่ต้องมีไฟล์ตั้งค่า
    • ตัวอย่าง: “เปลี่ยนคำทริกเกอร์เป็น @Bob”, “ทำให้คำตอบสั้นลง”, “บันทึกสรุปการสนทนาทุกสัปดาห์” เป็นต้น
  • คำสั่ง /customize รองรับการปรับแก้แบบเป็นขั้นตอน
  • เนื่องจากโค้ดเบสมีขนาดเล็ก Claude จึงสามารถแก้ไขได้โดยตรงอย่างปลอดภัย

แนวทางการขยายและการมีส่วนร่วม

  • ฟีเจอร์ใหม่จะ ไม่เพิ่มเข้ามาโดยตรงผ่าน PR แต่ให้มาในรูปแบบสกิล
    • ตัวอย่าง: ขยายช่องทางการสื่อสารด้วย /add-telegram, /add-slack, /add-discord เป็นต้น
    • เปลี่ยนจาก Apple Container เป็น Docker ด้วย /convert-to-docker
    • รองรับ Windows บนพื้นฐาน WSL2 ด้วย /setup-windows
    • เพิ่มฟังก์ชันสรุปและบีบอัดเซสชันด้วย /add-clear
  • ผู้มีส่วนร่วมสามารถใช้สกิลเพื่อแปลง fork ของตนเอง แล้วแชร์กลับเข้าสู่โปรเจ็กต์ได้

ความต้องการของระบบและโครงสร้าง

  • ต้องใช้ macOS Tahoe(26) ขึ้นไป, Node.js 20+, Claude Code, และ Apple Container
  • ลำดับการทำงานของสถาปัตยกรรม:
    WhatsApp (baileys) → SQLite → Polling loop → Container (Claude Agent SDK) → Response
  • โครงสร้างไฟล์หลัก:
    • src/index.ts: แอปหลักและการเชื่อมต่อ WhatsApp
    • src/container-runner.ts: จัดการการรันคอนเทนเนอร์
    • src/task-scheduler.ts: ฟังก์ชันงานตามกำหนดเวลา
    • src/db.ts: การเชื่อมต่อ SQLite
    • groups/*/CLAUDE.md: เก็บหน่วยความจำแยกตามกลุ่ม

สรุป FAQ

  • เหตุผลที่ใช้ WhatsApp: เพราะผู้พัฒนาใช้ WhatsApp เป็นการส่วนตัว และสามารถเปลี่ยนเป็นช่องทางอื่นผ่านสกิลได้
  • เหตุผลที่เลือก Apple Container: มีมากับ macOS น้ำหนักเบา และรวดเร็ว
  • รันบน Linux ได้หรือไม่: สามารถพอร์ตได้ภายในราว 30 นาทีผ่าน Claude Code
  • ความปลอดภัย: อิงการแยกคอนเทนเนอร์ จึงไม่สามารถเข้าถึงนอกเหนือจากส่วนที่เมานต์ไว้อย่างชัดเจนได้
  • เหตุผลที่ไม่มีไฟล์ตั้งค่า: เพื่อหลีกเลี่ยงการกระจายตัวของการตั้งค่า และคงการปรับแต่งที่ยึดโค้ดเป็นศูนย์กลาง
  • วิธีดีบัก: ถาม Claude Code โดยตรงเพื่อแก้ปัญหา
  • การเปลี่ยนแปลงที่อนุญาต: อนุญาตเฉพาะการแก้ความปลอดภัย บั๊ก และการปรับปรุงค่าพื้นฐานเท่านั้น

สัญญาอนุญาต

  • เผยแพร่ภายใต้ MIT License
  • ทุกคนสามารถแก้ไขและเผยแพร่ต่อได้อย่างอิสระ

1 ความคิดเห็น

 
GN⁺ 2026-02-02
ความคิดเห็นจาก Hacker News
  • การเอาสิ่งนี้ไปรันจริง ๆ ให้ความรู้สึกว่าอันตรายมาก
    ตอนนี้อาจดูโอเค แต่ถ้าเกิดปัญหาขึ้นมาครั้งเดียวก็จบเลย
    การเอาอะไรแบบ Claw ไปเชื่อมกับพื้นที่สนทนาที่ใช้ร่วมกัน ฟังดูเหมือนการทดลองเสี่ยงอันตรายแบบตรงตัว
    พวก black hat ก็กำลังจับตาดูอยู่แล้ว และสุดท้ายคงมีคนเจ็บหนักกันอีกเยอะ

    • ก็เป็นไปได้ เหมือนเมื่อก่อนที่ทุกคนรัน phpBB หรือปลั๊กอิน Wordpress ที่ความปลอดภัยหละหลวม ครั้งนี้ก็อาจเป็นการซ้ำรอยประวัติศาสตร์อีกครั้ง
    • นอกจากปัญหาความปลอดภัยแล้ว ยังมีอีกสองอย่างที่น่ากังวล
      1. ถ้าเกิดอย่างที่ OpenAI พูดไว้ คือมีโฆษณาปะปนอยู่ในคำตอบจะเป็นยังไง
      2. ถ้าราคาที่ถูกมากในตอนนี้ไม่ยั่งยืนแล้วขึ้นไป 10 เท่าจะเป็นยังไง
        ตอนนี้เราอาจกำลังอยู่ในยุคทองที่ได้ใช้ LLM ราคาถูกโดยไม่มีโฆษณาก็ได้
        ช่วงนี้ผมก็ใช้มันถามเปรียบเทียบหรือขอใบเสนอราคาโดยตรงจาก AI เพราะผลการค้นหาทุกวันนี้มันกลายเป็นสแปมไปมากแล้ว
        แต่ก็กลัวว่าอีกไม่นานเราจะได้คำตอบที่ปนทั้งโฆษณาและคำแนะนำแบบเสียเงิน
  • ทุกวันนี้เวลาเผยแพร่โค้ดที่ผมทำ ผมพยายามเขียนเอกสารหรือ README ด้วยมือตัวเอง
    เอกสารที่มีกลิ่นว่า LLM เขียน ต่อให้โปรเจ็กต์ดีแค่ไหนก็น่าสนใจน้อยลง
    มันไม่รู้สึกถึงความจริงใจที่อยากสื่อสารกับคนอ่าน
    ต่อให้มีพิมพ์ผิดบ้าง ผมก็คิดว่าคำอธิบายแบบมนุษย์ยังดีกว่า
    อนึ่ง หลังจากคอมเมนต์ของผม ผู้เขียนก็แก้ README แล้ว
    ลิงก์คอมมิตที่แก้ไข

    • ผู้เขียนเอง ผมไม่เคยปิดบังเลยว่าใช้ AI เขียนโค้ด แทบทุกคอมมิตมีคำว่า “Co-Authored-By: Claude Opus 4.5” อยู่แล้ว
      ผมแก้ส่วนที่มีกลิ่น AI ตามที่คุณทัก และตอนนี้มันดีขึ้นมาก
      โค้ดนี้ไม่ใช่งานชิ้นเอก แต่เป็นโค้ดเชิงปฏิบัติที่มีประโยชน์กับผม
      หวังว่ามันจะช่วยคนอื่นเป็นข้อมูลอ้างอิงได้ด้วย
      ผมทำมันช่วงสุดสัปดาห์โดยใส่ใจกับโครงสร้างความปลอดภัยพอสมควร แต่ตอนนี้ต้องปิดงานก่อนเลยปล่อยในสภาพที่ยังหยาบ ๆ
      ถ้าอ่าน README จะเข้าใจบริบทของโปรเจ็กต์ได้ดีขึ้น
    • เห็นด้วยสุด ๆ เหมือนกัน README หรือข้อความแนะนำผลิตภัณฑ์ที่ AI เขียน มันไม่ให้ความรู้สึกจริงใจจนความสนใจหายไปเยอะ
      ใช้ AI กับโค้ดน่ะได้ แต่ข้อความแนะนำควรให้คนเขียนเอง
    • ทุกวันนี้โปรเจ็กต์สาย LLM ดูจะโฟกัสกับการแพ็กเกจให้ดึงดูดความสนใจคนมากกว่าฟังก์ชันจริง
      เมื่อก่อนตัวโค้ดเองเป็น ‘หลักฐานของความพยายาม’ แต่ตอนนี้มันสร้างได้ง่ายเกินไปจนความหนักแน่นนั้นหายไป
    • มีแม้กระทั่งกรณีที่เนื้อหาใน README หลอน (hallucination) ด้วย
      ลิงก์เธรดที่เกี่ยวข้อง
  • ข้อดีอย่างหนึ่งของ Clawdbot คือมันอนุญาตทุกสิทธิ์
    แต่ก็ยังสงสัยว่าการกระทำภายนอกแบบนี้ถูก sandbox ไว้อย่างไร
    Apple Container ค่อนข้างมั่นคง เพราะแต่ละคอนเทนเนอร์จับคู่แบบ 1:1 กับ lightweight VM
    ตัวอย่าง sandbox สำหรับรันโค้ดทั่วไปที่ใช้แนวคิดนี้คือ instavm/coderunner
    และยังเชื่อมกับ AI อย่าง Claude Code ได้ด้วย

    • ถ้า “อนุญาตทุกสิทธิ์” แล้ว มันต่างอะไรกับการให้permission 777กับไฟล์ระบบ?
    • ทำให้นึกถึงตอนอยู่แล็บ CS แล้วพวกเราขอรหัสผ่าน superuser แต่ศาสตราจารย์ไม่ยอมให้
      Clawdbot ให้ความรู้สึกเหมือนมีนักศึกษาปีสอง 100 คนมาเคาะประตูขอสิทธิ์ root
  • โปรเจ็กต์นี้ดูเท่มาก
    ช่วงนี้ผมสงสัยอยู่พอดีว่าใช้ Agent SDK ได้กับการสมัคร Claude Pro/Max ไหม
    ตาม เอกสาร Quickstart อย่างเป็นทางการ ดูเหมือนว่าจะได้
    เขียนไว้ว่าหลังติดตั้งแล้วล็อกอินในเทอร์มินัล ตัว SDK จะใช้การยืนยันตัวตนอัตโนมัติ

    • แต่ในเอกสารก็เขียนด้วยว่า “อนุญาตเฉพาะการยืนยันตัวตนด้วย API key
      หมายความว่าน่าจะใช้ SDK โดยตรงกับบัญชีสมัครสมาชิกไม่ได้
      อยากให้ Anthropic ชี้แจงส่วนนี้ให้ชัด
    • ผู้เขียนเอง ผมก็งงตรงนี้เหมือนกัน เลยลองทำขึ้นมาเอง
      เพราะใช้ Agents SDK อยู่ ผมจึงคิดว่าคงไม่ผิด TOS
      แต่ผมไม่รู้วิธีคง session การยืนยันตัวตนไว้ในคอนเทนเนอร์ ก็เลยใช้วิธีแอบง่าย ๆ ด้วยการinject OAuth token ผ่าน environment variable
      นี่คือช่องโหว่ด้านความปลอดภัยเพียงจุดเดียว ผู้ใช้ไม่หวังดีอาจขโมยโทเค็นได้ผ่าน prompt injection
      ถ้าใครรู้วิธีเชื่อม session auth ให้ถูกต้องในคอนเทนเนอร์ รบกวนช่วยแนะนำด้วย
    • ได้ความรู้ใหม่เลย งั้นประเด็นถกเถียงเรื่อง OpenClaw น่าจะเกิดจากการเรียกใช้โดยไม่ผ่าน SDK
      ถ้าตามเอกสารนี้ก็ดูเหมือนว่าสามารถสร้างแอปแบบเอเจนต์ด้วยบัญชีสมัครสมาชิกได้อย่างอิสระ
  • คนที่ไม่ใช่สายเทคนิคมีแนวโน้มจะมั่นใจในโมเดลมากเกินไปเพราะเห็นแค่ว่าอัตราการหลอนลดลง
    แต่ความเสี่ยงที่แท้จริงคือการโจมตีด้วยพรอมป์ต์อันตราย
    เหมือนยุคแรกของบัตรเครดิต ตอนนี้แค่ยังไม่เห็นความเสียหายเท่านั้น
    กว่าจะเกิดคดีหลาย ๆ กรณีขึ้น คนถึงจะเริ่มตระหนัก

  • ผมหวังว่าจะมีคนทำเวอร์ชันที่ปลอดภัยกว่านี้ออกมา
    OpenClaw มีประโยชน์ แต่ก็ชวนกลัวในเวลาเดียวกัน
    เพราะงั้น Mac mini ของผมตอนนี้เลยยังปิดอยู่

  • น่าสนใจที่เลือกใช้Apple Containerแทน Docker
    น่าจะเพื่อประหยัดทรัพยากรบน Mac Mini
    แต่ก็สงสัยเหมือนกันว่ามันจะจำกัด Linux tooling มาตรฐานหรือเปล่า

    • Apple Container เป็นmicroVMแทบจะเต็มตัว จึงให้การแยกกักที่แข็งแรงกว่าคอนเทนเนอร์ทั่วไปมาก
    • (ละคอมเมนต์อื่น)
    • ลองค้นตรง ๆ ด้วย search engine น่าจะได้คำตอบ
  • ชอบไอเดียของ OpenClaw เวอร์ชันย่อส่วน
    โค้ดดูมีราว ๆ 2500 บรรทัด และโครงสร้าง Apple Container ก็น่าสนใจ

  • ใน Quick Start เขียนว่า git clone https://github.com/anthropics/nanoclaw.git
    แต่รีโพนั้นไม่มีอยู่จริง เลยสงสัยว่าเป็นโปรเจ็กต์ทางการของ Anthropic หรือเปล่า
    หรือว่า README ถูกสร้างขึ้นแบบหลอน ๆ

    • จริง ๆ แล้ว Claude หลอนสร้างรีโพนั้นขึ้นมาเอง
      ลิงก์คอมมิตที่เกี่ยวข้อง
    • แก้เรียบร้อยแล้ว นี่เป็นโปรเจ็กต์ทดลองที่ผมทำคนเดียวช่วงสุดสัปดาห์
      ผมเอา Claude Code ไปต่อกับ Obsidian vault และทำให้ตั้งงาน cron ผ่าน WhatsApp ได้
      มันเรียบง่ายกว่า OpenClaw ขนาดใหญ่เยอะ และอยู่ในขอบเขตที่ผมเข้าใจได้ เลยสบายใจกว่า
      หวังว่าคนอื่นจะใช้เป็นแค่งานอ้างอิงเท่านั้น
    • ตอนนี้ดูเหมือนจะแก้ถูกต้องแล้ว
  • ช่วงนี้พอเห็นแอปที่ vibe-coded ผมก็มักจะไปสร้างอะไรคล้าย ๆ กันเองด้วย Claude Code
    ทำเองให้ตรงกับความต้องการยังมีประสิทธิภาพกว่าการใช้ของคนอื่น

    • ใช่เลย ตอนนี้ต้นทุนการเขียนและดูแลโค้ดแทบจะเข้าใกล้ศูนย์
      มูลค่าของไลบรารีภายนอกจึงลดลง
      ความเสี่ยงจาก supply chain attack หรือการเปลี่ยนไลเซนส์ก็หายไปด้วย
      นี่คือยุคที่โค้ดเป็นทั้งเอกสารและคอนฟิกในตัวเอง
      เพราะงั้นผมเลยชอบเวอร์ชันเบาและปรับเองได้แบบนี้มากกว่า OpenClaw
      จะแยก fork ไปใช้เป็นจุดตั้งต้น หรือให้ Claude ใช้เป็นข้อมูลอ้างอิง ก็ทำเวอร์ชันของตัวเองได้ทันที