Fresh คือ editor บน terminal ใช้คีย์ลัดเหมือน VS Code และมี Orchestrator ให้ Claude Code กับ Codex แยกกันทำงานในคนละ worktree ได้บนหน้าจอเดียว
Fresh เป็น editor บน terminal ใช้คีย์ลัดเหมือน VS Code เปิดแล้วใช้ได้ทันที Orchestrator ให้ coding agent ทำงานใน git worktree ของตัวเองจากหน้าต่างเดียว

Fresh คือ editor บน terminal ที่เปิดแล้วใช้ได้ทันทีโดยไม่ต้องเรียนก่อน ถ้าคุณเคย ssh เข้าเซิร์ฟเวอร์หรือ VPS เพื่อแก้ไฟล์ .env แค่บรรทัดเดียว แล้วต้องเสียเวลาเกือบสิบนาทีหาวิธีออกจาก Vim หรือเปิด nano แล้วเผลอกด Ctrl+S ตามความเคยชิน ทั้งที่ใน nano ไม่ใช่ปุ่มบันทึก คุณน่าจะเห็นภาพทันทีว่าทำไมของแบบนี้ถึงมีค่า
ที่ผ่านมา text editor บน terminal มักแบ่งเป็นสองขั้วชัดเจน ขั้วแรกคือกลุ่มที่ต้องใช้เวลาเรียนรู้คีย์ลัดนานถึงจะเริ่มใช้งานได้คล่องอย่าง Vim หรือ Neovim ส่วนอีกขั้วคือกลุ่มที่ใช้ง่ายอย่าง nano แต่ก็มีฟีเจอร์จำกัด ทำอะไรซับซ้อนไม่ได้มาก Fresh คือ editor ที่รวมข้อดีของทั้งสองฝั่งเข้าด้วยกัน โปรเจกต์นี้เป็นโอเพนซอร์สที่พัฒนาด้วยภาษา Rust และออกเวอร์ชัน 0.5.0 มาแล้ว จุดเด่นคือใช้ปุ่มลัดมาตรฐานชุดเดียวกับที่คุ้นมือจาก VS Code เปิดมาก็ใช้งานได้ทันทีโดยไม่ต้องเปิดคู่มือท่องคีย์ใหม่ แต่ก็ใส่ฟีเจอร์ระดับ IDE มาให้อย่างครบครัน
นอกจากนี้ ถ้าคุณเริ่มใช้ coding agent อย่าง Claude Code หรือ Codex ทำงานพร้อมกันหลายตัว คุณคงคุ้นเคยกับการเปิด tmux ไว้หลายหน้าต่างจนเริ่มสับสนว่าหน้าต่างไหนรันงานอะไรอยู่ หรือตัวไหนกำลังหยุดรอให้กดยืนยัน Fresh จึงมีระบบ Orchestrator เข้ามาช่วยจัดการ ให้เราสั่งรัน agent แต่ละตัวแยกตาม git worktree ได้ในหน้าต่างเดียว พร้อมแสดงสถานะชัดเจนว่าแต่ละช่องกำลังทำงานอยู่บน branch ไหน
Fresh เปิดแล้วใช้ได้เลย ไม่มีโหมดให้ต้องจำ

จุดขายแรกที่ระบุไว้ใน README ของ Fresh (โปรเจกต์ sinelaw/fresh บน GitHub) คือเปิดขึ้นมาแล้วใช้งานได้ทันทีโดยไม่ต้องตั้งค่าใดๆ ปุ่มลัดเป็นชุดมาตรฐานที่คุ้นมือจาก VS Code และ Sublime Text รองรับการคลิกเมาส์ทั่วหน้าจอ มีแถบเมนูด้านบน และมี Command Palette ที่แค่กด Ctrl+P ก็พิมพ์ค้นหาคำสั่งที่ต้องการได้ทันที
จุดที่ต่างจาก Vim จริงๆ คือไม่มีการแยกโหมด ใน Vim เราต้องคอยจำว่าตอนนี้อยู่ในโหมดพิมพ์หรือโหมดสั่งการ ปุ่มที่กดจึงจะทำงานถูกต้อง แต่ใน Fresh ทุกอย่างตรงไปตรงมา อยากพิมพ์ก็พิมพ์ อยากบันทึกก็กด Ctrl+S เหมือนโปรแกรมทั่วไปที่เราใช้ในชีวิตประจำวัน

ถ้ามีแค่นี้ ก็คงไม่ต่างจาก nano ที่หน้าตาทันสมัยขึ้น แต่สิ่งที่ทำให้ Fresh กลายเป็น IDE เต็มตัวคือฟีเจอร์ต่อไปนี้:
- LSP มาตรฐาน Language Server Protocol: เข้าใจโครงสร้างของภาษาโปรแกรม ทำให้กระโดดไปยังจุดประกาศฟังก์ชันด้วยคำสั่ง Go to Definition, เปลี่ยนชื่อตัวแปรพร้อมกันทั้งโปรเจกต์ด้วย Rename Symbol และแสดงจุดที่โค้ดมีข้อผิดพลาดได้ในตัว
- Multi-cursor: วางเคอร์เซอร์หลายตำแหน่งเพื่อแก้ไขข้อความหลายจุดพร้อมกันได้เหมือน VS Code
- Split Panes: แบ่งหน้าจอเพื่อเปิดดูและแก้ไขหลายไฟล์เทียบกันได้อย่างสะดวก
- Terminal ในตัว: มี terminal ให้รันคำสั่งได้ทันทีโดยไม่ต้องสลับหน้าต่างหรือออกจากโปรแกรม
- เครื่องมือ Git ในตัว: รองรับทั้ง
git grepสำหรับค้นหาโค้ดทั้ง repo,git logสำหรับดูประวัติ และgit blameเพื่อดูว่าใครเป็นคนแก้ไขบรรทัดนั้น - ระบบ Plugin ด้วย TypeScript: เขียนปลั๊กอินส่วนขยายด้วยภาษา TypeScript แล้วรันแบบ sandbox แยกจากตัว editor โดยใช้ QuickJS ซึ่งเป็นระบบรัน JavaScript ขนาดเล็ก
ในประเด็นนี้ README ชูว่าไม่มีโหมดและไม่ต้องเรียนก่อนใช้ ในมุมของเรา นี่เป็นการเลือกคนละทางกับ editor สาย Vim ที่ให้คุณฝึกจนชินมือก่อนแล้วค่อยได้ความเร็วกลับมา ส่วน Fresh ตัดขั้นตอนการเรียนรู้ออกไปเลย จะเลือกทางไหนก็ขึ้นอยู่กับคุณ ถ้าคุณทำงานอยู่ใน terminal วันละหลายชั่วโมง การฝึก editor สายนั้นอาจคุ้ม แต่ถ้าคุณแค่ ssh เข้าไปแก้ไฟล์ config เดือนละไม่กี่ครั้ง editor ที่เปิดแล้วใช้ได้ทันทีก็ประหยัดเวลากว่ามาก
วิธีติดตั้งที่ง่ายและเร็วที่สุด
สำหรับ Linux วิธีติดตั้งที่ง่ายที่สุดคือรันสคริปต์คำสั่งนี้เพียงบรรทัดเดียว:
curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | shคำสั่งนี้ไม่ต้องใช้สิทธิ์ผู้ดูแลระบบอย่าง root เพราะตัวโปรแกรมจะติดตั้งลงในโฟลเดอร์ของผู้ใช้โดยตรง และยังรองรับการอัปเดตเวอร์ชันใหม่ในตัว ไม่ว่าจะสั่งผ่านคำสั่ง fresh --cmd update หรือกดยืนยันเมื่อตัว editor แจ้งเตือนขึ้นมา ข้อนี้สำคัญมากสำหรับคนที่ใช้ VPS หรือเซิร์ฟเวอร์ที่เราไม่มีสิทธิ์ root เพราะสามารถติดตั้งเองได้ทันทีโดยไม่ต้องขอสิทธิ์จากใคร
ถ้ายังไม่อยากติดตั้งลงเครื่อง แต่ต้องการทดลองใช้งานก่อน สามารถรันผ่าน npx ได้ทันที:
npx @fresh-editor/fresh-editorส่วนระบบปฏิบัติการอื่นก็มีตัวช่วยติดตั้งเช่นกัน บน macOS ติดตั้งผ่าน Homebrew ด้วยคำสั่ง brew install fresh-editor ส่วนบน Windows ติดตั้งผ่าน winget ด้วยคำสั่ง winget install fresh-editor
นอกจากนี้ยังมีแพ็กเกจระบบให้เลือกใช้ อย่างไฟล์ .deb, .rpm, AUR และ Nix แต่ทีมผู้พัฒนาตั้งใจให้เป็นทางเลือกรอง เพราะการติดตั้งผ่านระบบเหล่านี้ต้องใช้สิทธิ์ root และหลังจากนั้นตัวจัดการแพ็กเกจของ OS จะเป็นตัวคุมการอัปเดตแทน ถ้าอยากให้ Fresh อัปเดตตัวเองได้ ให้ใช้สคริปต์ curl ด้านบน
จัดการไฟล์ขนาดหลาย GB ได้สบาย ไม่ใช่แค่ nano เวอร์ชันอัปเกรด

อีกหนึ่งจุดเด่นสำคัญที่ทำให้ Fresh แตกต่างจาก editor ทั่วไปบน terminal คือการจัดการไฟล์ขนาดใหญ่มาก ตามที่ระบุไว้ใน README ตัวโปรแกรมเปิดไฟล์ขนาดหลาย GB ได้โดยแทบไม่กินแรมเพิ่มขึ้น และยังตอบสนองขณะพิมพ์ได้ลื่นไหลเท่าเดิมไม่ว่าไฟล์จะใหญ่แค่ไหนก็ตาม สำหรับคนที่สนใจเบื้องหลังการทำงาน ผู้พัฒนาได้เขียนอธิบายสถาปัตยกรรมไว้อย่างละเอียดในบทความ How Fresh Loads Huge Files Fast
ในเวอร์ชัน 0.5.0 ทีมงานขยับเรื่องนี้ไปอีกขั้น โดยเฉพาะการจัดการกับ "ไฟล์ที่มีบรรทัดเดียวยาวมากๆ" เช่น ไฟล์ JSON หรือไฟล์ที่บีบอัดโค้ดจนไม่มีการขึ้นบรรทัดใหม่เลย ซึ่งในทางเทคนิค การเปิดไฟล์ขนาดใหญ่ที่มีหลายบรรทัด กับไฟล์ที่มีบรรทัดเดียวยาวมากๆ นั้นเป็นคนละปัญหากัน ก่อนหน้านี้ Fresh จัดการไฟล์ใหญ่หลายบรรทัดได้ดีอยู่แล้ว แต่ถ้าเจอไฟล์บรรทัดเดียวยาว 19 MB การกดแป้นพิมพ์เพียงครั้งเดียวอาจทำให้โปรแกรมต้องอ่านข้อมูลซ้ำถึงราว 14 MB พอมาถึงเวอร์ชัน 0.5.0 ทีมพัฒนาได้ปรับปรุงให้ประมวลผลเฉพาะข้อมูลบนหน้าจอที่แสดงผลอยู่เท่านั้น ข้อมูลที่ต้องอ่านต่อการกดแป้นพิมพ์จึงลดลงเหลือเพียงประมาณ 180 KB ตามตัวเลขทดสอบใน release notes
ถ้าคุณเคยเจอปัญหาเปิดไฟล์ log ขนาดใหญ่บนเซิร์ฟเวอร์แล้ว editor ค้างจนต้องปิด terminal ทิ้ง จุดนี้คือเหตุผลสำคัญที่คุณควรลองใช้ Fresh ดูสักครั้ง
Orchestrator แยก workspace ของแต่ละ git worktree ไว้ในหน้าต่างเดียว
โดยปกติแล้ว git worktree คือฟีเจอร์ของ Git ที่ช่วยให้เราแตกโฟลเดอร์ทำงานออกมาได้หลายชุดจาก repo เดียวกัน โดยแต่ละชุดจะแยกการทำงานอยู่คนละ branch อย่างอิสระ เพื่อให้ agent แต่ละตัวแก้โค้ดพร้อมกันได้โดยไม่ชนกัน สำหรับใครที่ยังไม่เคยใช้ เราเคยเขียนอธิบาย วิธีใช้ git worktree กับ AI coding agent ไว้แล้ว
แต่ปัญหาที่มักเจอเมื่อใช้ worktree คือ พอเรามีโฟลเดอร์ทำงาน 3-4 ชุด เราก็ต้องเปิดทั้ง terminal และ editor แยกตามไปด้วย นานเข้าเราก็เริ่มสับสนจนจำไม่ได้ว่า agent ตัวไหนทำงานเสร็จแล้ว หรือตัวไหนกำลังหยุดรอคำตอบจากเราอยู่ ระบบ Orchestrator ของ Fresh เข้ามาแก้ปัญหานี้โดยรวมทั้งหมดไว้ในโปรแกรมเดียว ตามเอกสารของโปรเจกต์ ทุก worktree จะนับเป็น 1 workspace ที่มีแท็บ, การแบ่งหน้าจอ, terminal และ scrollback history แยกเป็นของตัวเอง
บริเวณฝั่งซ้ายของหน้าจอจะมีแถบ Dock แสดงรายชื่อ workspace ทั้งหมด พร้อมระบุชื่อ branch, สรุปสถานะ git และสถานะ Pull Request อย่างชัดเจน เราสามารถสลับไปมาระหว่าง workspace ได้ทันทีเพียงแค่กดปุ่มลูกศรขึ้นลง โดยไม่ต้องปิดหรือโหลดหน้าจอใหม่ ส่วน agent ใน workspace อื่นๆ ที่เราไม่ได้เปิดดูก็ยังคงทำงานต่อไปเรื่อยๆ เมื่อเราสลับกลับมา ทุกอย่างก็ยังคงอยู่ในสภาพเดิม แต่งานคืบหน้าไปเรียบร้อยแล้ว

ตัวอย่างจากเอกสารของ Fresh แสดงให้เห็นการเปิด repo เดียวกันไว้ 3 ชุดสำหรับ 3 งาน ได้แก่ fix/auth-bypass, perf/db-pool และ feat/rate-limit ควบคู่ไปกับ branch main อีกหนึ่งชุดสำหรับรีวิวภาพรวม ซึ่งแต่ละงานก็จะมีแท็บไฟล์โค้ดและช่องรัน agent ของตัวเองประกบคู่อยู่ข้างกัน
การเรียกใช้ agent ทำได้สะดวกผ่าน Command Palette แค่กด Ctrl+P แล้วเลือกคำสั่ง Run Agent… เราจะเลือกสั่งรัน claude, codex, opencode, aider หรือคำสั่งอื่นที่ต้องการก็ได้ และสามารถเลือกได้ว่าจะรันใน workspace ปัจจุบัน หรือจะเปิดขึ้นมาใน workspace ใหม่ นอกจากนี้ คำสั่ง New Workspace ยังมีระบบช่วยสร้าง git worktree ให้อัตโนมัติ เพียงแค่ติ๊กเลือก Create a new git worktree แล้วตั้งชื่อ branch จากนั้นเลือกได้ว่าจะเปิดเข้าใช้งานทันทีด้วยคำสั่ง Create & Visit หรือสั่งสร้างไว้เบื้องหลังด้วยคำสั่ง Create in Background เพื่อไม่ให้หน้าจอ editor ต้องค้างรอ
นี่คือความแตกต่างอย่างชัดเจนเมื่อเทียบกับการเปิด tmux หลายหน้าต่าง เพราะใน tmux เราจะเห็นแค่ช่อง terminal สีดำที่หน้าตาเหมือนกันไปหมด แต่ Orchestrator ของ Fresh รู้ว่าแต่ละช่องผูกอยู่กับ branch ใด และมี agent ตัวไหนกำลังทำงานอยู่ ก่อนหน้านี้เราเคยเขียนถึง Otty ที่แก้ปัญหานี้จากฝั่ง terminal ส่วน Fresh เลือกแก้ปัญหานี้จากมุมมองของ editor นอกจากนี้ในเอกสารยังระบุด้วยว่า สำหรับ agent ที่รองรับการคุยต่อจากเดิม เมื่อเราปิดโปรแกรม Fresh แล้วเปิดขึ้นมาใหม่ ตัว agent จะกลับมาทำงานและคุยต่อจากจุดเดิมได้ทันที โดยที่เราไม่ต้องเสียเวลาอธิบายงานใหม่ตั้งแต่ต้น
ฟีเจอร์ใหม่ที่น่าสนใจในเวอร์ชัน 0.5.0
แม้บันทึกการเปลี่ยนแปลงของเวอร์ชัน 0.5.0 จะมีรายละเอียดค่อนข้างยาว แต่มี 4 ฟีเจอร์หลักที่ส่งผลต่อการใช้งานทั่วไปอย่างเห็นได้ชัด:
- Review Diff คือฟังก์ชันตรวจดูความต่างของโค้ดที่เปิดโปรเจกต์ขนาดใหญ่ได้เร็วขึ้นมาก: การเปิดตรวจสอบความเปลี่ยนแปลงของโค้ดในโปรเจกต์ที่มีไฟล์เกิน 500 ไฟล์ ลดเวลาลงเหลือเพียงราว 2 วินาที จากเดิมที่ต้องใช้เวลากว่า 16 วินาที ตามตัวเลขทดสอบของทีมพัฒนา
- Markdown Table of Contents ในแถบข้าง: แถบสำรวจไฟล์ Explorer ด้านข้างถูกปรับปรุงให้แบ่งเป็นหมวดหมู่ที่พับเก็บได้ และส่วนแรกที่เพิ่มเข้ามาคือสารบัญของไฟล์ Markdown ที่กำลังเปิดอยู่
- Search Preview เปิดพรีวิวไฟล์จริง: ผลการค้นหาจะเปิดเป็นแท็บพรีวิวที่มีการไฮไลต์สีตาม syntax ของโค้ด มีเลขบรรทัด และเลื่อนดูเนื้อหาได้จริง ไม่ได้แสดงเป็นเพียงข้อความดิบเหมือนเดิม
- หน้า Welcome แบบโต้ตอบได้: มีแท็บหน้าต้อนรับเปิดขึ้นมาเบื้องหลังตอนเริ่มโปรแกรม ซึ่งทีมงานระบุว่าเนื้อหายังอยู่ในช่วงพัฒนาเพิ่มเติม
อย่างไรก็ดี สิ่งสำคัญที่ทีมพัฒนาแจ้งเตือนไว้ตรงหัวบันทึกของเวอร์ชันนี้คือ ปรับโครงสร้างโค้ดภายในครั้งใหญ่ ทีมหวังว่าจะไม่กระทบการใช้งาน และขอให้เปิด issue บน GitHub ถ้าเจออะไรพัง เราจึงแนะนำให้ทดลองอัปเดตใช้งานทีละเครื่องก่อน ถ้าใช้งานไปสัก 2-3 วันแล้วไม่พบปัญหา ค่อยทยอยอัปเดตให้กับเครื่องอื่นๆ ในทีมต่อไป
2 เรื่องสำคัญที่ควรรู้ก่อนติดตั้ง
1. ระบบตรวจสอบอัปเดตและการส่งสถิติ Telemetry เปิดไว้เป็นค่าเริ่มต้น
ตามที่ระบุไว้ในหมวด Privacy ของ README ตัวโปรแกรม Fresh จะตรวจสอบเวอร์ชันใหม่วันละหนึ่งครั้ง พร้อมทั้งส่งข้อมูล telemetry แบบไม่ระบุตัวตนกลับไปยังผู้พัฒนา โดยข้อมูลที่ส่งมีเพียง 3 อย่าง ได้แก่ เวอร์ชันของ Fresh ที่ใช้งาน, ระบบปฏิบัติการพร้อมสถาปัตยกรรมของเครื่อง และชนิดของ terminal ที่ใช้งาน
ทั้งนี้ ใน README ระบุไว้อย่างชัดเจนว่าจะไม่เก็บข้อมูลส่วนตัว และไม่เก็บเนื้อหาไฟล์ของคุณ
ถ้าคุณไม่ต้องการให้ระบบส่งข้อมูลนี้ สามารถปิดได้ 2 วิธี ทั้งสองวิธีจะปิดระบบเช็คอัปเดตและ telemetry พร้อมกัน:
- รันโปรแกรมพร้อม flag
--no-upgrade-check - ตั้งค่าในไฟล์ config ด้วย
check_for_updates: false
จุดที่ควรรู้คือ ทั้งสองตัวเลือกนี้ผูกการทำงานไว้ด้วยกัน การปิด telemetry จะทำให้ระบบหยุดแจ้งเตือนเมื่อมีเวอร์ชันใหม่ออกมาด้วย และหลังจากนั้นถ้าต้องการอัปเดตเวอร์ชัน จะต้องสั่งอัปเดตเองผ่านคำสั่ง fresh --cmd update
2. เวอร์ชัน 0.5.0 คือรอบอัปเดต ไม่ใช่การเปิดตัวโปรเจกต์
ก่อนหน้านี้มีเวอร์ชัน 0.3.0 และ 0.4.0 ออกมาก่อนแล้ว และ repo บน GitHub มีดาวเกือบเก้าพัน หรือราว 8.8k ในตอนที่เราดู ส่วนใบอนุญาตเป็นแบบ GPL-2.0
ลองได้ทันที ไม่ต้องติดตั้ง
ถ้าอยากลองสัมผัสด้วยตัวเอง แค่เปิด terminal ขึ้นมาแล้วพิมพ์คำสั่งนี้ได้เลย โดยไม่ต้องติดตั้งอะไรลงเครื่อง:
npx @fresh-editor/fresh-editorจากนั้นเปิดไฟล์อะไรก็ได้ที่มีอยู่ในเครื่อง กด Ctrl+P แล้วดูว่าคุณต้องเปิดคู่มือไหม ถ้าไม่ต้อง ครั้งหน้าที่ ssh เข้าเซิร์ฟเวอร์ คุณก็รู้แล้วว่าจะลงอะไร
editor ที่ดีบน terminal ไม่ได้วัดกันที่จำคีย์ได้ครบ แต่อยู่ที่เปิดแล้วแก้บรรทัดที่ต้องการได้เลยโดยไม่ต้องจำอะไรล่วงหน้า
ที่มา:
- บทความ GitHub - sinelaw/fresh: Terminal based IDE & text editor: easy, powerful and fast จาก sinelaw/fresh (GitHub)
- บทความ Release fresh-editor 0.5.0 · sinelaw/fresh จาก sinelaw/fresh (GitHub)
- บทความ One Editor, Every Worktree | Fresh จาก getfresh.dev
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
สร้าง Claude Skill แบบไม่ต้องรู้โค้ด คู่มือสร้าง Claude Skill ของคุณเองด้วยการคุยกับ Claude Code เป็นภาษาไทย
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
สร้าง AI Automation Pipeline ทุกแบบ ด้วย Agents และ Skills

ปูจากพื้นฐาน prompt, context และ cost ไปจนปั้น Skill สั่ง Agent กับ Sub-agent แล้วต่อทุกอย่างเป็น pipeline อัตโนมัติที่ออกแบบเองได้ ดูฟรี 7 บทก่อนตัดสินใจ


