Orch term — เทอร์มินัลเดสก์ท็อปแบบ all-in-one สำหรับประสานงาน AI coding agent หลายตัวในหน้าต่างเดียว
(zendy00.github.io)เป็นแอปเดสก์ท็อปที่รวมเทอร์มินัล, code editor, browser และ Git ไว้ในหน้าต่างเดียว และบนหน้าต่างนั้นสามารถรันและประสานงาน AI coding agent หลายตัว (เช่น Claude Code, Codex, Gemini CLI) ได้พร้อมกัน รองรับ Windows และ macOS
ทำไมถึงสร้างมันขึ้นมา
พอเริ่มพัฒนาด้วย AI agent ก็รู้สึกอึดอัดกับการที่ในหนึ่งเทอร์มินัลผูก agent ได้แค่ตัวเดียว ระหว่างที่ agent กำลังทำงาน ถ้าจะดูโค้ดก็ต้องสลับไป editor ถ้าจะดูผลลัพธ์บนหน้าจอก็ต้องเปิด browser และถ้าจะดูการเปลี่ยนแปลงก็ต้องไปใช้เครื่องมือ Git แยกต่างหาก เลยตัดสินใจสร้างสภาพแวดล้อมที่รวมทุกอย่างไว้ในหน้าต่างเดียว และต่อยอดไปถึงการรัน agent หลายตัวใน workspace ที่แยกกัน แล้วประสานงานทั้งหมดจากหน้าจอเดียว
All-in-one workspace
- แบ่งหน้าจอได้อย่างอิสระ (binary split tree) และจัดวางแท็บเทอร์มินัล, editor และ browser แบบผสมกันในแต่ละช่อง
- สลับชุดงานด้วย "Space"
- code editor ในตัว (รองรับหลาย encoding และรูปแบบขึ้นบรรทัดใหม่), ค้นหาทั้งโปรเจกต์ด้วย ripgrep (Ctrl+Shift+F)
- แผง Source Control: commit log, graph, blame, diff, push/pull
- browser ในแอปที่ทำงานบน native child webview ไม่ใช่ iframe
- บอร์ดงานราย Space (คัมบัง: สิ่งที่ต้องทำ·เสร็จแล้ว) — จัดระเบียบ todo ตามหน่วยงาน
สิ่งที่ต้องทำ (TODO) — ให้คนและ AI จัดการร่วมกัน
- แต่ละ Space มีบอร์ดงานแบบคัมบังสำหรับจัดระเบียบงานได้โดยตรง
- AI agent ภายในแอปสามารถอ่านและเขียนบอร์ดงานเดียวกันได้โดยตรงผ่าน MCP — agent สามารถอัปเดตสถานะความคืบหน้าของงานตัวเองลงใน todo และคนก็เห็นสิ่งนั้นได้ตรง ๆ เพื่อนำไปประสานงานต่อ
- กล่าวคือ รายการสิ่งที่ต้องทำจะกลายเป็นบอร์ดงานร่วมกันของทั้งคนและ agent
การ orchestration แบบ multi-agent
- เปิด worker agent แต่ละตัวใน git worktree ที่แยกจากกันเพื่อทำงานแบบขนาน
- ถ้า worker ตัวหนึ่งติดปัญหา ก็สามารถมอบหมายให้ worker อีกตัวทำต่อและส่งผลลัพธ์กลับมาได้
- mirroring browser ในแอปให้ดูร่วมกับ agent
AI gateway
- เปิดให้ AI agent ภายในแอปใช้งานผ่าน local HTTP API (รูปแบบเข้ากันได้กับ OpenAI) — script และเครื่องมือภายนอกสามารถเรียกใช้ agent เดิมได้โดยตรง
- request/response ทั้งหมดถูกบันทึกเป็น audit log แยกตามวันที่
เทคโนโลยีที่ใช้
Tauri 2 (Rust backend) + TypeScript·Vite, เทอร์มินัลใช้ xterm.js (WebGL renderer), ที่เก็บข้อมูลใช้ SQLite และมีระบบ auto update ในตัว
สิ่งที่ยากระหว่างพัฒนา
- ทำ browser ในแอปด้วย Tauri native child webview (unstable) — มีทั้งกับดักที่ synchronous command ทำให้ main thread deadlock และ focus bug ที่ทำให้หลังกลับมาที่หน้าต่างแล้วคีย์บอร์ดพิมพ์ไม่เข้า (สุดท้ายต้อง patch
wryเอง) - บั๊กด้าน input ในสภาพแวดล้อม conpty เช่น การพิมพ์ IME ภาษาเกาหลีและอีโมจิ รวมถึงปัญหาพิมพ์ซ้ำเมื่อกลับมาจาก alt+tab
- การรองรับทั้ง Windows และ macOS — ต้อง gate ทุกเงื่อนไขแยกให้ดีเพื่อไม่ให้แก้ OS หนึ่งแล้วอีก OS พัง
ดาวน์โหลด / ทดลองใช้
- แนะนำและดาวน์โหลด: https://zendy00.github.io/orch-term-pages/
- ดาวน์โหลด: https://zendy00.github.io/orch-term-pages/download.html (ตัวติดตั้ง Windows/MSI, macOS DMG·ติดตั้งบรรทัดเดียว)
- ตอนนี้ยังไม่ได้ code signing จึงอาจมีคำเตือนจาก Windows SmartScreen และ macOS Gatekeeper
4 ความคิดเห็น
สิ่งที่เศร้าเสมอคือ ทำไมต้องเป็นลำดับ Windows -> Mac -> Linux หรือไม่ก็ไม่มี Linux ไปเลย T_T
พอทำคนเดียว ความสามารถก็ยังไปไม่ถึงขั้นนั้นครับ ^^
https://github.com/horang-labs/tessera
รองรับ Linux
อ๊ะ! มีเครื่องมือดี ๆ อยู่แล้วสินะครับ ผมทำขึ้นมาเพราะหาอยู่ ถ้ารู้ล่วงหน้าก็คงดี ^^;;