> การแปลนี้สร้างโดย Claude หากมีข้อเสนอแนะในการปรับปรุง กรุณาเปิด PR

English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe

cmux

เทอร์มินัล macOS ที่ใช้ Ghostty พร้อมแท็บแนวตั้งและการแจ้งเตือนสำหรับเอเจนต์เขียนโค้ด AI

ดาวน์โหลด cmux สำหรับ macOS

ภาพหน้าจอ cmux

## คุณสมบัติ - **แท็บแนวตั้ง** — แถบด้านข้างแสดง git branch, ไดเรกทอรีทำงาน, พอร์ตที่กำลังฟัง และข้อความแจ้งเตือนล่าสุด - **วงแหวนแจ้งเตือน** — แผงจะมีวงแหวนสีน้ำเงินและแท็บจะสว่างขึ้นเมื่อเอเจนต์ AI (Claude Code, OpenCode) ต้องการความสนใจของคุณ - **แผงแจ้งเตือน** — ดูการแจ้งเตือนที่รอดำเนินการทั้งหมดในที่เดียว ข้ามไปยังรายการที่ยังไม่ได้อ่านล่าสุด - **แผงแบ่ง** — แบ่งแนวนอนและแนวตั้ง - **เบราว์เซอร์ในแอป** — แบ่งเบราว์เซอร์ข้างเทอร์มินัลพร้อม API ที่เขียนสคริปต์ได้ ย้ายมาจาก [agent-browser](https://github.com/vercel-labs/agent-browser) - **เขียนสคริปต์ได้** — CLI และ socket API สำหรับสร้างเวิร์กสเปซ แบ่งแผง ส่งการกดแป้นพิมพ์ และควบคุมเบราว์เซอร์อัตโนมัติ - **แอป macOS ดั้งเดิม** — สร้างด้วย Swift และ AppKit ไม่ใช่ Electron เริ่มต้นเร็ว ใช้หน่วยความจำน้อย - **เข้ากันได้กับ Ghostty** — อ่านการตั้งค่าที่มีอยู่ของคุณจาก `~/.config/ghostty/config` สำหรับธีม ฟอนต์ และสี - **เร่งความเร็วด้วย GPU** — ขับเคลื่อนโดย libghostty สำหรับการแสดงผลที่ลื่นไหล ## การติดตั้ง ### DMG (แนะนำ) ดาวน์โหลด cmux สำหรับ macOS เปิดไฟล์ `.dmg` แล้วลาก cmux ไปยังโฟลเดอร์แอปพลิเคชัน cmux อัปเดตอัตโนมัติผ่าน Sparkle คุณจึงต้องดาวน์โหลดเพียงครั้งเดียว ### Homebrew ```bash brew tap manaflow-ai/cmux brew install --cask cmux ``` สำหรับอัปเดตในภายหลัง: ```bash brew upgrade --cask cmux ``` เมื่อเปิดใช้งานครั้งแรก macOS อาจขอให้คุณยืนยันการเปิดแอปจากนักพัฒนาที่ได้รับการระบุตัวตน คลิก **เปิด** เพื่อดำเนินการต่อ ## ทำไมต้อง cmux? ผมรันเซสชัน Claude Code และ Codex จำนวนมากพร้อมกัน ผมใช้ Ghostty กับแผงแบ่งหลายอัน และพึ่งพาการแจ้งเตือนดั้งเดิมของ macOS เพื่อรู้ว่าเมื่อไหร่ที่เอเจนต์ต้องการผม แต่ข้อความแจ้งเตือนของ Claude Code มีแค่ "Claude is waiting for your input" โดยไม่มีบริบท และเมื่อเปิดแท็บมากพอ ผมไม่สามารถอ่านชื่อแท็บได้เลย ผมลองใช้ออร์เคสเตรเตอร์สำหรับเขียนโค้ดบางตัว แต่ส่วนใหญ่เป็นแอป Electron/Tauri และประสิทธิภาพทำให้ผมรำคาญ ผมยังชอบเทอร์มินัลมากกว่าเพราะออร์เคสเตรเตอร์ GUI บังคับให้คุณใช้เวิร์กโฟลว์ของมัน ผมจึงสร้าง cmux เป็นแอป macOS ดั้งเดิมด้วย Swift/AppKit มันใช้ libghostty สำหรับการแสดงผลเทอร์มินัลและอ่านการตั้งค่า Ghostty ที่มีอยู่ของคุณสำหรับธีม ฟอนต์ และสี สิ่งที่เพิ่มเติมหลักคือแถบด้านข้างและระบบแจ้งเตือน แถบด้านข้างมีแท็บแนวตั้งที่แสดง git branch, ไดเรกทอรีทำงาน, พอร์ตที่กำลังฟัง และข้อความแจ้งเตือนล่าสุดสำหรับแต่ละเวิร์กสเปซ ระบบแจ้งเตือนจับลำดับเทอร์มินัล (OSC 9/99/777) และมี CLI (`cmux notify`) ที่คุณสามารถเชื่อมต่อกับ hook ของเอเจนต์สำหรับ Claude Code, OpenCode เป็นต้น เมื่อเอเจนต์กำลังรอ แผงของมันจะมีวงแหวนสีน้ำเงินและแท็บจะสว่างขึ้นในแถบด้านข้าง เพื่อให้ผมบอกได้ว่าอันไหนต้องการผมข้ามแผงแบ่งและแท็บต่าง ๆ Cmd+Shift+U ข้ามไปยังรายการที่ยังไม่ได้อ่านล่าสุด เบราว์เซอร์ในแอปมี API ที่เขียนสคริปต์ได้ ย้ายมาจาก [agent-browser](https://github.com/vercel-labs/agent-browser) เอเจนต์สามารถจับภาพ accessibility tree, รับ element refs, คลิก, กรอกฟอร์ม และรัน JS ได้ คุณสามารถแบ่งแผงเบราว์เซอร์ข้างเทอร์มินัลและให้ Claude Code โต้ตอบกับเซิร์ฟเวอร์สำหรับพัฒนาของคุณโดยตรง ทุกอย่างเขียนสคริปต์ได้ผ่าน CLI และ socket API — สร้างเวิร์กสเปซ/แท็บ แบ่งแผง ส่งการกดแป้นพิมพ์ เปิด URL ในเบราว์เซอร์ ## ปุ่มลัด ### เวิร์กสเปซ | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ N | เวิร์กสเปซใหม่ | | ⌘ 1–8 | ข้ามไปเวิร์กสเปซ 1–8 | | ⌘ 9 | ข้ามไปเวิร์กสเปซสุดท้าย | | ⌃ ⌘ ] | เวิร์กสเปซถัดไป | | ⌃ ⌘ [ | เวิร์กสเปซก่อนหน้า | | ⌘ ⇧ W | ปิดเวิร์กสเปซ | | ⌘ B | สลับแถบด้านข้าง | ### Surfaces | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ T | Surface ใหม่ | | ⌘ ⇧ ] | Surface ถัดไป | | ⌘ ⇧ [ | Surface ก่อนหน้า | | ⌃ Tab | Surface ถัดไป | | ⌃ ⇧ Tab | Surface ก่อนหน้า | | ⌃ 1–8 | ข้ามไป surface 1–8 | | ⌃ 9 | ข้ามไป surface สุดท้าย | | ⌘ W | ปิด surface | ### แผงแบ่ง | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ D | แบ่งไปทางขวา | | ⌘ ⇧ D | แบ่งลงล่าง | | ⌥ ⌘ ← → ↑ ↓ | โฟกัสแผงตามทิศทาง | | ⌘ ⇧ H | กะพริบแผงที่โฟกัส | ### เบราว์เซอร์ | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ ⇧ L | เปิดเบราว์เซอร์ในแผงแบ่ง | | ⌘ L | โฟกัสแถบที่อยู่ | | ⌘ [ | ย้อนกลับ | | ⌘ ] | ไปข้างหน้า | | ⌘ R | โหลดหน้าใหม่ | | ⌥ ⌘ I | เปิดเครื่องมือสำหรับนักพัฒนา | ### การแจ้งเตือน | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ I | แสดงแผงแจ้งเตือน | | ⌘ ⇧ U | ข้ามไปยังรายการที่ยังไม่ได้อ่านล่าสุด | ### ค้นหา | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ F | ค้นหา | | ⌘ G / ⌘ ⇧ G | ค้นหาถัดไป / ก่อนหน้า | | ⌘ ⇧ F | ซ่อนแถบค้นหา | | ⌘ E | ใช้ส่วนที่เลือกสำหรับค้นหา | ### เทอร์มินัล | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ K | ล้างประวัติการเลื่อน | | ⌘ C | คัดลอก (เมื่อเลือกข้อความ) | | ⌘ V | วาง | | ⌘ + / ⌘ - | เพิ่ม / ลดขนาดฟอนต์ | | ⌘ 0 | รีเซ็ตขนาดฟอนต์ | ### หน้าต่าง | ปุ่มลัด | การทำงาน | |----------|--------| | ⌘ ⇧ N | หน้าต่างใหม่ | | ⌘ , | การตั้งค่า | | ⌘ ⇧ , | โหลดการตั้งค่าใหม่ | | ⌘ Q | ออก | ## สัญญาอนุญาต โปรเจกต์นี้อยู่ภายใต้สัญญาอนุญาต GNU Affero General Public License v3.0 หรือใหม่กว่า (`AGPL-3.0-or-later`) ดู `LICENSE` สำหรับข้อความฉบับเต็ม