- อธิบายการตั้งค่าที่สามารถ รันเอเจนต์ Claude Code 6 ตัวแบบขนาน และทำงานพัฒนาด้วย สมาร์ตโฟนเพียงเครื่องเดียว
- ผสาน Termius และ mosh, Tailscale VPN, Vultr VM เพื่อคงสภาพแวดล้อมรีโมตสำหรับพัฒนาให้เสถียรได้แม้ไม่มีแล็ปท็อป
- ทำงานพัฒนาแบบอะซิงก์ได้ด้วย การคงอยู่ของเซสชัน tmux และ การแจ้งเตือนผ่านเว็บฮุก Poke โดยตอบกลับผ่านพุชโนติฟิเคชันเฉพาะตอนที่ Claude ขออินพุต
- ความปลอดภัยเสริมด้วยการเข้าถึงผ่าน Tailscale เท่านั้น, nftables, fail2ban และโครงสร้างป้องกันหลายชั้น
- สร้างเวิร์กโฟลว์การพัฒนาบนมือถือแบบสมบูรณ์ที่สามารถ รีวิว PR, รีแฟกเตอร์, แก้บั๊ก ได้ระหว่างเดินทางหรือแม้แต่ตอนรอกาแฟ
ภาพรวมของสถาปัตยกรรมทั้งหมด
- จากสมาร์ตโฟน ใช้แอป Termius เชื่อมต่อผ่าน mosh และ Tailscale VPN ไปยัง Vultr VM
- ภายใน VM จะรัน Claude Code และ PreToolUse hook จะเรียก เว็บฮุก Poke เพื่อส่งพุชโนติฟิเคชัน
- ผู้ใช้จะได้รับการแจ้งเตือนและตอบคำถามของ Claude กลับไป เป็นลูปการทำงานแบบวนซ้ำ
- วิธีนี้ช่วยสร้าง ลูปการพัฒนาแบบอะซิงก์ ที่ทำงานได้ทุกที่ทุกเวลา
รายละเอียดของโครงสร้างพื้นฐาน
- Vultr VM อยู่ในรีเจียนซิลิคอนวัลเลย์ และใช้สเปก
vhf-8c-32gb
- ค่าใช้จ่ายอยู่ที่ $0.29 ต่อชั่วโมง หรือประมาณ $7 ต่อวัน
- ใช้ การเข้าถึงผ่าน Tailscale เท่านั้น ทำให้ SSH ไม่เปิดสาธารณะ และบล็อกพอร์ตสาธารณะทั้งหมด
- ใช้สคริปต์ vm-start และ vm-stop เพื่อทำให้การเริ่มและหยุด VM เป็นอัตโนมัติ
- สามารถใช้คำสั่งลัดบน iOS เรียก Vultr API เพื่อสตาร์ต VM ได้โดยตรง
- ชั้นความปลอดภัย ประกอบด้วย cloud firewall, nftables, และ fail2ban
สภาพแวดล้อมเทอร์มินัลบนมือถือ
- Termius รองรับ SSH และ mosh บน iOS/Android
- mosh จะคงการเชื่อมต่อไว้ได้แม้เครือข่ายสลับไปมา จึงรักษาเซสชันได้แม้สลับระหว่าง Wi‑Fi ↔ เซลลูลาร์ หรือเข้าโหมดประหยัดพลังงาน
- ตัวอย่างคำสั่ง:
mosh --ssh="ssh -p 47892" [email protected]
- ข้อเสียคือ ไม่รองรับ SSH agent forwarding ดังนั้นงานที่ต้องยืนยันตัวตนกับ GitHub จะใช้ SSH ปกติภายใน tmux
ความต่อเนื่องของเซสชัน
- ตั้งค่า
.zshrc ให้เชื่อมต่อเข้า เซสชัน tmux โดยอัตโนมัติเมื่อเข้าสู่ระบบ
- แม้ปิดแล้วเปิด Termius ใหม่ เซสชันก็ยังคงอยู่เหมือนเดิม
- รันเอเจนต์ Claude หลายตัวแบบขนานใน หน้าต่าง tmux
- สร้างหน้าต่างใหม่ด้วย
C-a c และสลับด้วย C-a n
ระบบพุชโนติฟิเคชัน
- เมื่อเกิด เหตุการณ์ AskUserQuestion ของ Claude Code จะมีการรัน PreToolUse hook
- สคริปต์
poke-notify.sh จะดึงคำถามออกมาแล้วส่งคำขอ POST ไปยัง เว็บฮุก Poke
- ผู้ใช้รับการแจ้งเตือนบนมือถือ ตรวจดูคำถาม แล้วตอบกลับได้ทันที
- ฟังก์ชันนี้ทำให้ผู้ใช้ไม่ต้องคอยมองเทอร์มินัลตลอดเวลา และสามารถทำ งานพัฒนาแบบอะซิงก์เต็มรูปแบบ ได้
โมเดลความเชื่อถือและความปลอดภัย
- Claude Code รันในโหมด permissive และ VM ถูกแยกออกจากกัน จึงไม่สามารถเข้าถึงระบบโปรดักชันได้
- มีเพียงข้อมูลลับขั้นต่ำที่จำเป็นต่อการพัฒนาเท่านั้น
- แม้เกิดพฤติกรรมไม่คาดคิดขึ้น ก็สามารถ ทิ้ง VM นี้ได้
- ใช้ การควบคุมค่าใช้จ่าย เพื่อลดความเสี่ยง โดยจำกัดค่าใช้จ่ายสูงสุดต่อวันไว้
โครงสร้างการพัฒนาแบบขนาน
- ใช้ Git worktree เพื่อดูแลหลายฟีเจอร์แบรนช์พร้อมกัน
- เช่น
myproject-sidebar, myproject-dark-mode เป็นต้น
- แต่ละ worktree มีหน้าต่าง tmux และเอเจนต์ Claude ของตัวเอง
- พอร์ตจะถูกกำหนดจากแฮชของชื่อแบรนช์ จึงไม่ชนกัน
- ตัวอย่างสูตรคำนวณ:
django_port = 8001 + (hash_val % 99)
- สามารถรันเอเจนต์ได้สูงสุด 6 ตัว พร้อมกัน
สถานการณ์การใช้งาน
- สามารถ รีวิว PR, รีแฟกเตอร์, แก้บั๊ก ได้ระหว่างเดินทางหรือตอนรอกาแฟ
- ระหว่างที่ Claude ใช้เวลา 10–20 นาทีทำงาน ผู้ใช้ก็ไปทำอย่างอื่นก่อนได้ แล้วค่อยกลับมาตอบเมื่อมีการแจ้งเตือน
- ทำให้เกิด วงจรการพัฒนาเต็มรูปแบบโดยไม่ต้องใช้เดสก์ท็อป บนสมาร์ตโฟน
สรุปองค์ประกอบ
- Vultr: คลาวด์ VM ราคา $0.29 ต่อชั่วโมง
- Tailscale: เครือข่ายส่วนตัวที่ปลอดภัย
- Termius: ไคลเอนต์ SSH บนมือถือ
- mosh: เชลล์ที่ทนทานต่อความเปลี่ยนแปลงของเครือข่าย
- tmux: คงความต่อเนื่องของเซสชัน
- Poke: พุชโนติฟิเคชันผ่านเว็บฮุก
- Claude Code: ทำงานพัฒนาจริง
บทสรุป
- สภาพแวดล้อมทั้งหมดนี้สามารถสร้างได้ด้วย Claude Code เพียงเซสชันเดียว
- แค่ให้ Vultr API key และสิทธิ์เข้าถึง GitHub แล้ว Claude ก็สามารถตั้งค่า VM สำหรับพัฒนาอย่างปลอดภัยได้อัตโนมัติ
- ผลลัพธ์คือการสร้าง สภาพแวดล้อมพัฒนาแบบสมบูรณ์ด้วยสมาร์ตโฟนเพียงเครื่องเดียว ซึ่งเป็นตัวอย่างของการยกระดับทั้งความคล่องตัวและประสิทธิภาพ
4 ความคิดเห็น
อืม... ก็แอบคิดเหมือนกันนะว่า... จำเป็นต้องถึงขั้นนี้เลยเหรอ...
ตอนใช้ Claude Code เวอร์ชันเว็บ ก็คิดเหมือนกันว่าคงดีถ้าสามารถสั่งงานด้วยเสียงได้โดยไม่ต้องพิมพ์ ไม่ค่อยรู้วิธีทำให้มันรู้จำเสียงภาษาเกาหลีเป็นข้อความได้ด้วย..
บน Android ให้กดปุ่มไมโครโฟนบนคีย์บอร์ด จากนั้นพูดสิ่งที่ต้องการ แล้วกดปุ่มไมโครโฟนอีกครั้ง ระบบจะป้อนข้อความเป็นภาษาเกาหลีได้ในครั้งเดียว
ความคิดเห็นจาก Hacker News
เหมือนกล่องแพนโดราถูกเปิดแล้ว ตอนนี้โลกกำลังมุ่งไปสู่สภาพที่แรงงานคอขาวต้องทำงานตลอด 24 ชั่วโมง
ระหว่างล้างจาน พาหมาเดินเล่น หรือซื้อของก็ยังคุยกับ LLM เพื่อสร้างฟีเจอร์ไร้ความหมาย และสุดท้ายก็รู้สึกถึงความย้อนแย้งที่กำลังทำลายสภาพแวดล้อมที่ลูกหลานจะต้องอยู่
ฉันใช้ LLM ทุกวันอย่างมีประโยชน์ แต่ถ้ามองระยะยาวแล้ว ความไม่ลงรอยทางความคิดมันรุนแรงเกินไป
สุดท้ายเราก็ได้แต่เชื่อว่าเปลี่ยนระบบนี้ไม่ได้ หรือไม่ก็ทำข้อตกลงแบบฟาสต์เพื่อหาประโยชน์ส่วนตัวภายในมัน
สุดท้ายก็ยังต้องมีสมดุลที่มนุษย์เข้ามาแทรกแซง การทำงานอัตโนมัติที่อิง LLM ก็น่าจะเดินไปในทางคล้ายกัน
อย่ามองโลกในแง่ร้ายเกินไป เรายังพอมีเวลาหายใจหายคอ
โลกที่เครื่องมือมาทำแทนไม่มีทั้งความน่าสนใจและความสนุก โลกคงเปลี่ยนไปอยู่ดี แต่นั่นเป็นเรื่องของคนรุ่นหนุ่มสาว
สำหรับโปรเจกต์ส่วนตัว ฉันใช้ Claude Code ที่ร้านกาแฟหรือในช่วงเวลาสั้นๆ
สุดท้ายถ้าเราออกแบบเส้นแบ่งให้ตัวเอง ก็ไม่จำเป็นต้องตกเป็นเหยื่อของกระแสด้านลบ
ฉันวาง MacBook Pro สเปกแรงไว้บนโต๊ะทำงานและจัดสภาพแวดล้อมด้วย tmux, tailscale, git worktree
ด้วย tailscale และ ssh จึงทำงาน vibecode ผ่านมือถือได้เหมือนกัน แต่งานที่ต้องการคุณภาพสูงก็ยังทำได้ดีเฉพาะตอนนั่งอยู่หน้าโต๊ะ
เวลาสร้างผลิตภัณฑ์ SaaS ก็ต้องดูทั้ง code review, log, metric และการวิเคราะห์พฤติกรรมผู้ใช้อย่างละเอียด
สุดท้ายก็ยังต้องใช้จอใหญ่กับคีย์บอร์ด ถึงโลกจะเปลี่ยนไปแต่พื้นฐานไม่เปลี่ยน
เป็นการตั้งค่าที่ละเอียดพอสมควร โดยเฉพาะส่วนที่ใช้ Tailscale ซึ่งฉันชอบมาก
ฉันใช้วิธีที่ง่ายกว่านั้น คือใช้ Claude Code for Web ผ่านแอป iPhone
Anthropic เปิด VM ขนาด 21GB หลายตัวให้ต่อหนึ่งเซสชันโดยไม่คิดค่าบริการเพิ่ม
บางครั้งระหว่างพาหมาเดินเล่นก็ยังรันหลายเซสชันพร้อมกันได้ มันใช้งานได้ดีทีเดียว
ตอนนี้เลยใช้ชุด Tailscale + Terminus(iPad) + เครื่องที่บ้าน และกำลังหาวิธีจัดการหลายฟีเจอร์พร้อมกันอยู่
เหมือนจะมีความมั่นใจมากพอที่จะเชื่อใจ LLM ได้เต็มที่แล้วหรือเปล่า
มีทั้งพรีวิวแอปแบบสด, docker-in-docker และความสามารถแบบหลายเอเจนต์ในแอปมือถือเดียว
ฉันก็กำลังทำอะไรคล้ายๆ กันอยู่ — โปรเจกต์ clauderon
บนเซิร์ฟเวอร์จะรันเซสชันด้วย Docker, K8s, Zellij และแยกสภาพแวดล้อมด้วย Git worktree + proxy
สามารถจัดการเซสชัน Claude Code ผ่านเว็บ UI หรือแอปได้ และในคอนเทนเนอร์ไม่มีข้อมูลรับรองใดๆ
มันเสถียรกว่า Claude Code Web เพราะควบคุมสภาพแวดล้อมได้อิสระกว่า
ตอนนี้ยังเป็น WIP แต่ตั้งเป้าไปที่ UX ที่เป็นมิตรกว่าเดิม
ฉันไม่ชอบพิมพ์ประโยคยาวๆ บนมือถือ เวิร์กโฟลว์แบบนี้เลยไม่เหมาะกับฉัน
ฉันใช้วิธีให้ Claude Code ส่งคำขอเมื่อมันต้องการอินพุต แล้ว Home Assistant ค่อยส่ง push notification มา จากนั้นฉันค่อยกลับไปทำต่อที่คอม
สำหรับข้อความสั้นๆ หรือคอมเมนต์รีวิวเล็กๆ ยังพอมีขีดจำกัดอยู่
คงจะดีถ้าแอปมือถือ Claude สามารถมิเรอร์ Claude Codeได้
มันทำการถอดเสียงคุณภาพสูงได้ผ่านผู้ให้บริการ AI ที่ต้องการ
ที่อย่าง gpdstore.net ก็มีรุ่นจอคู่พับได้ออกมาแล้ว
ttyd แชร์เทอร์มินัลผ่าน http ทำให้ควบคุมผ่านเบราว์เซอร์บนมือถือด้วยการป้อนข้อมูลด้วยเสียงได้
ฉันสงสัยว่าเวลาที่ Claude พลาดหรือเพิ่มโค้ดมาเป็นพันบรรทัดจะจัดการกันอย่างไร
ถ้าเป็นโปรเจกต์ข้างเคียงที่ไม่มีทั้งการทดสอบและการควบคุมคุณภาพก็ว่าไปอย่าง แต่ไม่อย่างนั้นมันอาจกลายเป็นฝันร้ายด้านการบำรุงรักษาได้
แค่ Jules กับ GitHub Copilot Agent ก็ทำเวิร์กโฟลว์คล้ายๆ กันได้แล้ว
เอกสาร Claude Code for Web ก็น่าอ่านประกอบ
ถ้าจัดสภาพแวดล้อมคลาวด์เองก็สามารถทำการทดสอบแบบ end-to-endได้ แม้แต่กับฐานข้อมูลหรือการเรียกใช้เครื่องมือเฉพาะ
ฉันก็เคยทำอะไรคล้ายกันในบริษัท
ฉันแก้ให้เซสชัน SSH รองรับการวางรูปภาพได้
ถ้าตรวจพบพาธไฟล์ในเครื่อง ก็จะอัปโหลดขึ้นเซิร์ฟเวอร์อัตโนมัติและส่งอินพุตเดิมต่อไปตามเดิม
ตอนนี้แค่ลากไฟล์จาก Finder ก็อัปขึ้นเซิร์ฟเวอร์อัตโนมัติแล้ว การซิงก์แบบโปร่งใสน่าประทับใจมาก
วิธีเอาชื่อบรันช์ไปแฮชเป็นพอร์ตมีโอกาสชนกันประมาณ 14%
ถ้ามี 6 บรันช์กับช่องพอร์ต 99 ช่อง จะเรียกว่า “ไม่มีการชนกัน” ก็คงเป็นการแฮชที่ไม่มีประสิทธิภาพ
อีกทางเลือกคือเปิด VM จาก exe.dev
เห็นว่ารองรับการเข้าถึงผ่านมือถือเป็นพื้นฐานอยู่แล้ว
ฉันเคยใช้แค่บนโน้ตบุ๊ก แต่พบว่าเอเจนต์เขียนโค้ดบนเบราว์เซอร์ใช้งานสะดวกกว่าเทอร์มินัล