- สภาพแวดล้อมเครื่องเสมือน Linux แบบน้ำหนักเบาสำหรับรัน AI เอเจนต์ ทำงานบนพื้นฐานของ Virtualization.framework ของ macOS ไม่ต้องใช้ Docker
- การรันทุกครั้งเริ่มต้นแบบ ชั่วคราว (Ephemeral) โดยค่าเริ่มต้น ทำให้การติดตั้งหรือการเปลี่ยนแปลงถูกรีเซ็ตอัตโนมัติเมื่อจบการทำงาน
- ผ่านฟีเจอร์ Checkpoint สามารถบันทึกสถานะดิสก์เป็นสแนปช็อต และกู้คืน แตกแขนง หรือใช้งานซ้ำได้
- ควบคุม เครือข่าย, CPU, หน่วยความจำ, ขนาดดิสก์ ได้อย่างละเอียดผ่านตัวเลือกบรรทัดคำสั่งหรือไฟล์ตั้งค่า
- มอบ สภาพแวดล้อมแซนด์บ็อกซ์แบบโลคัลที่ปลอดภัยและทำซ้ำได้ สำหรับการรันโค้ด AI การติดตั้งแพ็กเกจ การประเมินผล และการทดสอบ
ภาพรวมของ shuru แซนด์บ็อกซ์แบบ local-first
- โครงสร้างสำหรับรัน Linux VM แบบน้ำหนักเบาสำหรับ AI เอเจนต์ บน macOS
- ใช้ Apple Virtualization.framework เพื่อมอบ ความเร็ว native ของ ARM64 โดยไม่ต้อง emulation
- ไม่พึ่งพา Docker และโดยพื้นฐานแล้วเป็นรูปแบบการรัน ชั่วคราว (Ephemeral)
- การรันแต่ละครั้งเริ่มจาก rootfs ที่สะอาด และการเปลี่ยนแปลงจะไม่ถูกเก็บไว้หากไม่ได้บันทึก
การจัดการสถานะและสแนปช็อต
- ด้วยฟีเจอร์ Checkpoint สามารถบันทึกสถานะดิสก์เป็นสแนปช็อตที่ตั้งชื่อได้
- สแนปช็อตที่บันทึกไว้สามารถกู้คืน แตกแขนง และรันซ้ำได้
- จัดการเวอร์ชันของสภาพแวดล้อมได้เหมือน Git commit
- ตัวอย่างคำสั่ง:
$ shuru checkpoint create myenv --allow-net -- sh -c 'apk add nodejs npm' → บันทึกสแนปช็อต ‘myenv’
$ shuru run --from myenv -- node -e 'console.log("ready")' → รันทันทีจากสภาพแวดล้อมที่บันทึกไว้
ความสามารถของ CLI
- มี CLI ที่เรียบง่าย สำหรับบูตและปิด VM ด้วยคำสั่งเดียว
$ shuru run -- echo "hello from the sandbox" → รันคำสั่งภายในแซนด์บ็อกซ์
$ shuru run -- cat /etc/os-release | head -1 → ตรวจสอบสภาพแวดล้อม Alpine Linux
- การเข้าถึงเครือข่ายถูกปิดไว้โดยค่าเริ่มต้น และสามารถเปิด NAT ได้ด้วยแฟล็ก
--allow-net
- การตั้งค่าทรัพยากร: ปรับสภาพแวดล้อมการรันด้วยตัวเลือก
--cpus, --memory, --disk-size
- รองรับ port forwarding: เชื่อมต่อระหว่างโฮสต์และเกสต์ได้ในรูปแบบ
-p 8080:8000
การรันและการใช้งานสำหรับ AI เอเจนต์
- มอบสภาพแวดล้อม VM แบบแยกสำหรับ รันโค้ดที่สร้างโดย AI
- สามารถตรวจสอบผลลัพธ์แบบเรียลไทม์ได้
- ดำเนินการ ติดตั้งแพ็กเกจ คอมไพล์โค้ด และใช้เครื่องมือระบบ ได้อย่างปลอดภัย
- สามารถทำการประเมินที่สม่ำเสมอระหว่างสภาพแวดล้อมด้วย การรันแซนด์บ็อกซ์แบบขนาน
- ใช้งานเป็นสภาพแวดล้อม Linux แบบใช้แล้วทิ้งสำหรับ การทดสอบ ดีบัก และทำต้นแบบ ได้
การติดตั้งและเริ่มต้น
- ทั้งการติดตั้งและการรันทำได้ด้วยคำสั่งเดียว
- ด้วย การเริ่มต้นที่รวดเร็วและสภาพแวดล้อมที่ทิ้งได้ จึงมอบพื้นที่รันที่ปลอดภัยให้ทั้งนักพัฒนาและระบบ AI
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ประเด็นสำคัญตรงนี้ไม่ใช่แค่ ‘VM แบบโลคัล’ เอง แต่คือ ทิศทางของค่าปริยายที่กลับกัน
ระบบส่วนใหญ่ตั้งต้นมาให้คงอยู่ถาวรและเชื่อมต่อเครือข่าย แต่ตัวนี้กลับตั้งต้นเป็น สภาพแวดล้อมชั่วคราวและแยกขาด
ความต่างแบบนี้สำคัญมากพอสมควรเวลารันโค้ดที่ไม่น่าเชื่อถือ
กำลังคิดจะทำ เวอร์ชัน local-first ของ microterm.dev สำหรับ macOS
เป้าหมายคือทำให้ทุกเป้าหมายมีสภาพแวดล้อมเหมือนกัน ต่างกันแค่ความเร็วและปริมาณ RAM
ตอนนี้กำลังใช้ alpine terminal บนมือถืออยู่ จนอดสงสัยไม่ได้จริง ๆ ว่ามันรันในเบราว์เซอร์หรือเปล่า
สงสัยว่า ‘local first’ ในที่นี้หมายถึงอะไร แค่หมายถึงรันบนเครื่องโลคัลเฉย ๆ หรือเปล่า?
บริการอย่าง E2B และ sprites.dev ให้ sandbox บนคลาวด์ แต่ shuru ใช้ Virtualization.framework ของ Apple เพื่อรัน VM แบบโลคัล
กล่าวคือข้อมูลไม่ออกไปนอก Mac
agent stack กำลังแยกออกเป็น โครงสร้างหลายชั้นที่เฉพาะทางมากขึ้น และ sandboxing ก็กำลังพัฒนาเป็นโดเมนอิสระ
มีตัวอย่างอย่าง Shuru, E2B, Modal และ wrapper สำหรับ Firecracker
ในบทความเก่าที่เคยเขียน “Don’t go monolithic — the agent stack is stratifying” ก็พูดถึงการเปลี่ยนแปลงเชิงโครงสร้างนี้และ ข้อจำกัดของแนวทางแบบ monolithic ไว้เหมือนกัน
ถ้าไม่เก็บ บริบทของการตัดสินใจด้านการออกแบบ ที่นักพัฒนาและ AI ร่วมกันตัดสินไว้ ข้อมูลสำคัญจะหายไป
แต่ก็ยังไม่แน่ใจว่าบทความนี้เชื่อมโยงกับประเด็น micro VM โดยตรงมากน้อยแค่ไหน
อยากรู้ว่าถ้าเทียบกับ โปรเจกต์ container ของ Apple แล้วต่างกันอย่างไร
กระแส นวัตกรรม ในพื้นที่นี้น่าสนใจมาก
ส่วน shuru โฟกัสที่ micro VM พร้อมความสามารถด้าน checkpoint จึงมีขอบเขตที่เรียบง่ายกว่ามาก
อยากรู้ว่ามีใครทำของแบบนี้สำหรับ Windows บ้างไหม
WSL ต้องตั้งค่าก่อนเวลาจะปล่อยแอปให้ผู้ใช้ทั่วไป จึง ไม่ค่อยเหมาะกับงานฝั่งผู้บริโภค
โปรเจกต์นี้เจ๋งจริง ๆ รอมาหลายเดือนแล้วสำหรับ micro VM บน Virtualization.framework
Docker ก็โอเค แต่ปัญหาคือ overhead มันเยอะ
ชอบที่ค่าปริยายเป็นแบบชั่วคราวและปิดเครือข่ายไว้
อยากรู้เหมือนกันว่ามีแผนเพิ่มความสามารถแมปไดเรกทอรีของโฮสต์หรือไม่
ผมกำลังรัน MCP server สำหรับ ephemeral sandbox ที่รองรับหลายแบ็กเอนด์ (Docker, E2B, Modal, WASM ฯลฯ) เลยคิดว่าจะลองเอาตัวนี้มาเชื่อมรวมดู
ลิงก์โปรเจกต์ Kilntainers
อยากรู้ว่าถ้าเทียบกับ Lima แล้วมีข้อดีอะไร
ความต่างอยู่ที่ค่าปริยายและระดับความเรียบง่ายของการตั้งค่าเริ่มต้น
shuru ให้ VM แบบชั่วคราว, ปิดเครือข่าย, และ rootfs ที่สะอาดทุกครั้งที่รัน เป็นค่าปริยาย
พิมพ์
shuru runได้เลยโดยไม่ต้องมีไฟล์ตั้งค่าcheckpoint และ branching ก็มีมาใน CLI อยู่แล้ว
Lima เป็นโปรเจกต์ที่ใหญ่และโตเต็มที่กว่ามาก แต่ shuru กำลังถูกพัฒนาให้เป็น เครื่องมือที่เรียบง่ายและเหมาะสำหรับการเรียนรู้
กำลังมองหาของแบบนี้อยู่พอดีสำหรับโปรเจกต์ใหม่
สิ่งที่ผมทำคือ เครื่องมือแบบผสมระหว่าง retool + OpenClaw เพื่อช่วยให้ธุรกิจขนาดเล็กและกลางสร้างแอปภายในได้เร็วขึ้น
Shuru เจ๋งมาก
ผมเองก็กำลังพัฒนา เครื่องมือบน Linux ที่ใช้ MicroVM ด้วยคอนเซปต์คล้ายกัน
ค่าปริยายเป็นแบบออฟไลน์ และแม้ยังไม่พร้อมเปิดเผยสู่สาธารณะ แต่ตอนนี้ก็ dogfooding ใช้งานกันภายในอยู่