รีวิว Warp Terminal: Rust-Based Terminal อีกตัวที่บวก AI

ก่อนหน้านี้เราเคยใช้ Terminal มาหลายตัวมาก ๆ สุดท้าย เราก็ยังกลับไปใช้ Built-in Terminal ที่ติดมากับเครื่องอยู่ดี จนเมื่อหลายเดือนก่อน เพื่อนแนะนำ Terminal ตัวใหม่ล่าอย่าง Warp มา ตอนนี้เราได้ใช้งานจริงจังมา 2-3 เดือนกับงานจริง ๆ แล้ว มันจะทำให้เราใช้งานต่อไปเป็น Terminal หลักในเครื่องของเราได้มั้ย วันนี้เราจะมารีวิวให้อ่านกัน

ความสามารถของ Terminal ยุคใหม่

ในเมื่อ Warp เป็น Terminal ที่เกิดในยุคใหม่ที่เราใช้งาน GUI และ Mouse กันเป็นหลัก ทำให้ตัวมันถูกออกแบบมาให้เราทำงานได้ง่ายกว่า Terminal ปกติเป็นอย่างมาก

เช่น การที่เราสามารถใช้เมาส์คลิกที่บริเวณที่เราต้องการแก้ และทำงานได้เหมือนกับข้อความธรรมดาทั่ว ๆ ไปได้เลย ซึ่ง ถ้าเป็น Terminal ทั่ว ๆ ไป เราจะต้องใช้ลูกศรเลื่อน Cursor ไปเรื่อย ๆ หรือกด Control + A เพื่อขยับไปที่ตำแหน่งแรกสุด ซึ่งมันไม่เป็นมิตรกับการรัน Command ที่ยาวสักเท่าไหร่ เช่น Docker run ที่เราจะต้องเติมพวก Environment Variable จำนวนเยอะ ๆ ยาว ๆ พิมพ์ผิดที มีร้องไห้แน่นอน

หรือกลับกัน หากเราต้องการ การทำงานแบบ Classic เน้นใช้งาน Keyboard เป็นหลัก น้องเขาก็ทำได้ มีตัวเลือกให้เราเลือกได้เช่นกัน ทำให้มันเป็น Terminal ที่เรารู้สึกว่า มันเข้าถึงทั้งคนรุ่นเก่าที่ต้องการความ Retro และคนรุ่นใหม่ที่ต้องการประสิทธิภาพในการทำงานที่รวดเร็วได้

อีกตัวที่เราคิดว่า มือใหม่น่าจะถูกใจมาก ๆ คือ มันมี Smart Completion มาให้เราใช้งานเลย คือ เมื่อเราพิมพ์คำสั่งเข้าไป มันจะสามารถบอกได้เลยว่า คำสั่งที่เรากำลังพิมพ์มันคืออะไร ที่เด็ดเลยคือ มันขึ้นบอกด้วยว่า Argument ของคำสั่งนั้นมีอะไรบ้าง ทำให้เราลดเวลาในการเปิดหา Document ของโปรแกรมนั้น ๆ ไปได้เยอะมาก ๆ แต่มันไม่ได้ทำแบบนี้ได้กับทุกโปรแกรมนะ เขาบอกว่า มันทำได้กับแค่พวกโปรแกรมยอดนิยมที่เราใช้งานกันเยอะ ๆ อย่าง docker, react และ terraform

สร้างมาเพื่อประสิทธิภาพในการทำงานสูง

Terminal เป็นเครื่องมือที่นักพัฒนาอย่างเรา ๆ ใช้งานกันทุกวัน ทำให้มันจำเป็นที่จะต้องเลือกตัวที่สามารถทำงานได้เสถียร ถูกต้อง และรวดเร็วมาก ๆ ซึ่ง Warp นั้นก็ออกแบบมาเพื่อประสิทธิภาพการทำงานที่สูงด้วยเช่นกัน โดยตัวมันถูกเขียนด้วย Rust ทำให้ตัวมันสามารถดึงประสิทธิภาพของ Hardware ได้ดีมาก ๆ มี Overhead ที่ต่ำ รวมไปถึงมีการใช้งาน Graphic Library อย่าง Metal, OpenGL, Vulkan, DirectX และ WGPU ทำให้ตัวมันสามารถแสดงผลได้อย่างรวดเร็ว ไม่กระตุกใด ๆ เลย ถือว่าเป็นเรื่องดีมาก ๆ สำหรับ Terminal โดยเฉพาะ เมื่อเราเอามารันโปรแกรมที่มีความ Interactive บน Terminal หน่อย ๆ ก็ได้ผลจากเรื่องนี้ด้วยเช่นกัน

ถามว่า ทำไมเราจะต้องใช้ Terminal ที่เรียกพลังของ GPU ออกมาทำงานมากขนาดนี้ มันจะมีผลเมื่อเราเรียกใช้งานโปรแกรมที่มันมีการ Output ออกมาจำนวนเยอะ ๆ เร็ว ๆ หากเป็น Terminal ตัวอื่น มันจะกิน CPU หนักมาก จนบางครั้ง ถ้าเรารันโปรแกรมที่ใช้ CPU หนัก ๆ ด้วยแล้ว ยิ่งทำให้การแสดงผลมันกระตุก และ โปรแกรมก็รันช้ากันเข้าไปใหญ่อีก เลยทำให้ การใช้งาน GPU ได้นั้น เข้ามาแก้ปัญหานี้ได้เป็นอย่างดีเลยทีเดียว

เท่าที่เราทดลองใช้งานมา เรารู้สึกว่า มันก็ไม่ได้เร็วต่างจาก Terminal ที่ใช้งานบน macOS เท่าไหร่ เพราะสุดท้าย เวลาที่เราต้องรอส่วนใหญ่มาก ๆ มันจะเป็นการรันของโปรแกรมตัวนั้น ๆ อยู่นั่นเอง แต่ก็ถือว่าเป็นเรื่องดีที่ ณ วันนี้ เรามี Terminal App ที่ใช้งาน GPU กันไม่มากก็น้อยแล้ว

Reinvent the wheel with "Block"

ไอเดียนึงของ Warp ที่เรารู้สึกว่า มัน Reinvent the wheel ของการใช้งาน Terminal มาก ๆ คือ การที่ Response หรือ Result ของแต่ละ Command มันจะออกมาในรูปแบบของ Block

เราสามารถที่จะทำงานกับแต่ละ Block เพิ่มได้อีก เช่น เราสามารถ Copy ผลของ Command นั้นได้โดยตรง จากเดิมที่เราจะต้องเอาเมาส์ไปไล่ลากคลุมผลลัพธ์ที่เราต้องการ หรือกระทั่งการแชร์ Block นั้น ๆ ให้กับคนอื่นได้ด้วย มันใช้ในเคสอารมณ์แบบ เราติด Error อะไรบางอย่าง และเราต้องการความช่วยเหลือ เราก็แค่กด Share Block เราก็จะได้ Link อันนึงมา แล้วส่งให้กับคนที่เราจะถามได้เลย เมื่อเขากดเข้าไป เขาก็จะพบกับ Block ที่เรากดแชร์ให้ ทำให้การแก้ไขปัญหาต่าง ๆ มันทำได้ง่ายกว่าเดิมมาก ๆ เป็นส่วนที่เราคิดว่า มันดีมากจริง ๆ

เช่นสมมุติว่า เราทำงานแล้ว เราเกิดติดปัญหาขึ้นมา เราสามารถที่จะแชร์ Block แล้วส่งให้กับ QA Team เพื่อให้ Team นั้นสามารถแก้ไขปัญหาได้รวดเร็วขึ้นกว่าเดิมมาก ๆ เป็นจุดที่เราชอบจริง ๆ

Collaborate with Team

ใครมันจะคิดว่า เราต้องการความสามารถในการทำงานกับทีมบน Terminal ได้ สำหรับใน Warp เขาเปิดตัวมาใน Feature ที่ชื่อว่า Warp Drive โดยภายในนั้นมันจะมี Feature ย่อย ๆ อยู่หลายตัวเลย

ตัวแรกมันคือ การ Collaboration ร่วมกับทีมของเราตรง ๆ คือ ให้คนอื่นเข้ามา Join Terminal Session ของเราได้ตรง ๆ เขาเรียกว่า Session Sharing ส่วนตัวเราไม่เคยใช้ Feature นี้เลย Usecase ของมันน่าจะเป็นเรื่องของการทำ Pair Coding และ ฟิล ๆ เหมือนช่วยกันแก้ปัญหา อย่างการทำ Incident Response

บางครั้งคำสั่งที่เราใช้งานมันยาวมาก ๆ แต่มันเป็นคำสั่งที่เรา และคนในทีมของเราต้องใช้บ่อย ๆ เราสามารถทำเป็น Workflow เก็บเอาไว้ได้ โดยเราสามารถกำหนดชื่อ และรายละเอียดของมันว่ามันทำอะไรบ้าง รวมไปถึง Parameter ต่าง ๆ เอาไว้ได้ด้วย เช่นเราบอกว่า เราจะต้องมีคำสั่งสำหรับ Spin Web Server Container ขึ้นมาใหม่ เราสามารถทำเป็น Workflow เอาไว้ และอาจจะตั้ง Parameter เป็น Exposed Port ที่อาจจะแตกต่างกันในแต่ละ Container ก็ได้เช่นกัน

และอีกตัวที่เราคิดว่า น่าสนใจมาก ๆ คือ Notebook ใช่แล้วครับ เราสามารถทำเหมือนกับเป็น Notebook เก็บพวก Protocol ต่าง ๆ เอาไว้ได้ด้วย เช่นเรามี Protocol สำหรับการทำ Incident Response รูปแบบต่าง ๆ เราก็สามารถทำออกมาเป็น Notebook แยกตามเรื่องเอาไว้เลย จากนั้นภายใน Notebook เราสามารถเขียนคำอธิบายต่าง ๆ ลงไปผ่าน Markdown Format ความเจ๋งคือ ภายใน Snippet เราสามารถกดเพื่อ Run บน Terminal ของเราได้เลย โดยไม่ต้องนั่งคลุมดำแล้ว Copy และแปะบน Terminal อีกที ถือว่าเป็นการ Integrate ระหว่าง Notebook และ Terminal ได้ง่ายมาก ๆ

Integrated with AI

Product สมัยใหม่ มันจะขาด AI ไปได้ยังไงละ แน่นอนว่า Warp น้องเขามีการ Integrate AI เข้ามาให้เราใช้งานได้เช่นกัน เราเชื่อว่า หลาย ๆ คนน่าจะมีอาการประมาณว่า ถ้าเราจะทำอันนี้ เราจะต้องใช้คำสั่งอะไรนะ หรือใช้ Argument อะไรนะ ถ้าเป็นเมื่อก่อน เราจะต้องกลับไปเปิด Document ของโปรแกรมนั้น ๆ แต่ Warp เขาเก่งกว่านั้น เขา Integrate AI เข้ามาให้เราทำงานได้ง่ายกว่าเดิมมาก

เราสามารถกด Cmd + I เพื่อเปิดการใช้งาน Agent Mode โดยใน Mode นี้ อารมณ์มันคือ การสลับหันไปถาม AI ว่าเราจะทำยังไงกันดีนะ โดย ณ วันนี้ เราสามารถเขียน Prompt เข้าไปถาม Model ยอดนิยมได้หมดเลย เช่น Claude 3.7 sonnet, gpt-4o, gemini 2.0 flash และ deepseek-r1 โดยที่ ณ วันที่เขียน เรายังไม่สามารถ Bring your own model มาทำงานได้นะ เขาเปิดความสามารถนี้ไว้ให้เฉพาะองค์กรที่กดเป็น Enterprise Plan เท่านั้น โดยให้เหตุผลว่า เขาอยากจะมั่นใจว่า Model ที่นำมาใช้จะตอบคำถามต่าง ๆ ได้อย่างถูกต้อง หากเป็น Enterprise Plan เขาสามารถช่วยกับบริษัทในการปรับจูนให้ใช้งานกับ Warp ได้อย่างราบลื่น

เท่าที่เราลองใช้งาน มันดันฉลาดด้วยนะ มันไม่ได้แค่ว่าเป็นการสลับหน้าเพื่อโยนคำถามให้ LLM แล้วโยนกลับมานะ เช่นด้านบน เราบอกว่า เราอยากจะลดขนาดรูปภายใน Folder ./images ให้ด้านที่ยาวที่สุดมีขนาด 2,048 px สำหรับการใช้งานบน Social Media แต่สิ่งที่มันตอบมาคือ มันบอกว่า Folder ./images มันไม่มีอยู่จริง ให้เราสร้าง Folder นี้ขึ้นมาจริง ๆ และเอารูปภาพตัวอย่างใส่เข้าไปหน่อย ไม่ก็ มันจะพยายามหาไฟล์รูปสักอันในเครื่อง

แล้วมันพีคกว่านั้นอีกคือ มันเจอไฟล์ภาพจริง ๆ แล้วมันไปหา ImageMagick แล้วบอกว่า มันมีการติดตั้งไว้แล้ว โดยมันจะทำการสร้าง Folder images ขึ้นมา แล้วเอาภาพตัวอย่างที่หาเจอใส่เข้าไป และทำการ Resize รูปภาพ เอาจริง ๆ เลยนะ มันเก่งกว่าที่เราคิดเยอะมากจริง ๆ

หรือกระทั่งงานง่าย ๆ เช่น เราทำงานอยู่แล้ว เราต้องการ Commit Source Code ของเรา แทนที่เราจะต้องจำคำสั่ง git ได้ (ซึ่งแกควรจะจำได้อยู่แล้วปะ ใช้กันทุกวัน) เราสามารถปรับเป็น Agent Mode แล้วบอกว่า "Commit all of current files in this workspace and choose the commit message based on changes" มันให้คำสั่งสำหรับการ Stage File และ Commit ออกมา พร้อมกับ Commit Message ที่ดูใกล้เคียงกับที่เราจะเขียนเลย

โดยรวม เราคิดว่าการ Integrate AI เข้ามาทำให้เราทำงานได้เร็วมากกว่าเดิมมาก ๆ โดยเฉพาะกับคนที่อาจจะยังใช้งาน Command Line ไม่คล่อง แต่ส่วนตัวเรา ใช้งาน Command Line เป็นหลักอยู่แล้ว เรารู้อยู่แล้ว่า เรากำลังจะทำอะไร และ เรามีขั้นตอนในการวินิฉัยปัญหาด้วยตัวเองได้อยู่แล้ว ทำให้เราจะไม่ได้ใช้ Feature พวกนี้เยอะสักเท่าไหร่ด้วย

นอกจากนั้น การใช้งาน AI Feature ทั้งหลายมันมาพร้อมกับราคาที่เราต้องจ่ายด้วยเช่นกัน โดยในตัวฟรี เราสามารถอัด Request ได้เพียง 150 ครั้งต่อเดือนเท่านั้น และถ้าเราจ่ายเดือนละ 15 USD เราสามารถใช้ได้ 1,000 ครั้งต่อเดือน และ ถ้าเาอยากใช้งานได้แบบ ไม่จำกัดเลย เราจะต้องสมัครแบบ Team ที่จ่ายเดือนละ 22 USD เลยทีเดียว

สรุป

โดยสรุป เราคิดว่า มันเป็นอีกหนึ่ง Terminal Emulator ที่น่าสนใจมาก ๆ มีการ Integrate AI เข้ามาได้น่าสนใจมาก ๆ หลังจากเราใช้งานอย่างต่อเนื่องไปเดือนนึง เรากดเข้าไปดู AI Usage ของเรา และพบว่า เราแทบไม่ได้ใช้งานมันเลย มีแค่ที่เราใช้รีวิวให้ดูเท่านั้น ทำให้เราคิดว่า โอเค มันน่าสนใจ แต่กลายเป็นว่า มันไม่ได้ว้าวมากพอที่จะทำให้เราปรับ Workflow การทำงานเข้าหามันได้เลย สุดท้าย เราก็ใช้งาน Feature อย่างการแก้ไขคำสั่งด้วยการใช้เมาส์เลือกจุดที่ต้องการได้แค่นั้น ดีที่ว่าส่วนที่เราใช้งานบ่อย ๆ มันสามารถใช้ได้ฟรีแบบไม่จำกัด ทำให้เราก็ยังโอเคที่จะเก็บมันไว้ แต่สุดท้าย เราก็ยังแอบชอบ Terminal บน macOS ปกติที่เราทำ Theme มากกว่า ก็นะมันคือมุมมองของคนที่ไม่ถนัดการใช้ IDE จริงจังเลย เน้นกึ่ง ๆ การทำงาน Manual อยู่ ทุกวันนี้ ไม่ tmux + vim ก็ Visual Studio Code เองนะ