148 lines
12 KiB
Markdown
148 lines
12 KiB
Markdown
> การแปลนี้สร้างโดย Claude หากมีข้อเสนอแนะในการปรับปรุง กรุณาเปิด PR
|
||
|
||
<p align="center">
|
||
<a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ko.md">한국어</a> | <a href="README.de.md">Deutsch</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.it.md">Italiano</a> | <a href="README.da.md">Dansk</a> | <a href="README.ja.md">日本語</a> | <a href="README.pl.md">Polski</a> | <a href="README.ru.md">Русский</a> | <a href="README.bs.md">Bosanski</a> | <a href="README.ar.md">العربية</a> | <a href="README.no.md">Norsk</a> | <a href="README.pt-BR.md">Português (Brasil)</a> | ไทย | <a href="README.tr.md">Türkçe</a>
|
||
</p>
|
||
|
||
<h1 align="center">cmux</h1>
|
||
<p align="center">เทอร์มินัล macOS ที่ใช้ Ghostty พร้อมแท็บแนวตั้งและการแจ้งเตือนสำหรับเอเจนต์เขียนโค้ด AI</p>
|
||
|
||
<p align="center">
|
||
<a href="https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg">
|
||
<img src="./docs/assets/macos-badge.png" alt="ดาวน์โหลด cmux สำหรับ macOS" width="180" />
|
||
</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<img src="./docs/assets/screenshot.png" alt="ภาพหน้าจอ cmux" width="900" />
|
||
</p>
|
||
|
||
## คุณสมบัติ
|
||
|
||
- **แท็บแนวตั้ง** — แถบด้านข้างแสดง 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 (แนะนำ)
|
||
|
||
<a href="https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg">
|
||
<img src="./docs/assets/macos-badge.png" alt="ดาวน์โหลด cmux สำหรับ macOS" width="180" />
|
||
</a>
|
||
|
||
เปิดไฟล์ `.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 | ปิดเวิร์กสเปซ |
|
||
|
||
### Surfaces
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ T | Surface ใหม่ |
|
||
| ⌘ ⇧ [ | Surface ก่อนหน้า |
|
||
| ⌃ ⇧ Tab | Surface ก่อนหน้า |
|
||
| ⌃ 1–8 | ข้ามไป surface 1–8 |
|
||
| ⌃ 9 | ข้ามไป surface สุดท้าย |
|
||
| ⌘ W | ปิด surface |
|
||
|
||
### แผงแบ่ง
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ D | แบ่งไปทางขวา |
|
||
| ⌘ ⇧ D | แบ่งลงล่าง |
|
||
| ⌥ ⌘ ← → ↑ ↓ | โฟกัสแผงตามทิศทาง |
|
||
|
||
### เบราว์เซอร์
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ ⇧ B | เปิดเบราว์เซอร์ในแผงแบ่ง |
|
||
| ⌘ L | โฟกัสแถบที่อยู่ |
|
||
| ⌘ ] | ไปข้างหน้า |
|
||
| ⌘ R | โหลดหน้าใหม่ |
|
||
| ⌥ ⌘ I | เปิดเครื่องมือสำหรับนักพัฒนา |
|
||
|
||
### การแจ้งเตือน
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ ⇧ I | แสดงแผงแจ้งเตือน |
|
||
| ⌘ ⇧ U | ข้ามไปยังรายการที่ยังไม่ได้อ่านล่าสุด |
|
||
|
||
### ค้นหา
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ F | ค้นหา |
|
||
| ⌘ G / ⌘ ⇧ G | ค้นหาถัดไป / ก่อนหน้า |
|
||
| ⌘ ⇧ F | ซ่อนแถบค้นหา |
|
||
| ⌘ E | ใช้ส่วนที่เลือกสำหรับค้นหา |
|
||
|
||
### เทอร์มินัล
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ K | ล้างประวัติการเลื่อน |
|
||
| ⌘ C | คัดลอก (เมื่อเลือกข้อความ) |
|
||
| ⌘ V | วาง |
|
||
| ⌘ + / ⌘ - | เพิ่ม / ลดขนาดฟอนต์ |
|
||
| ⌘ 0 | รีเซ็ตขนาดฟอนต์ |
|
||
|
||
### หน้าต่าง
|
||
|
||
| ปุ่มลัด | การทำงาน |
|
||
|----------|--------|
|
||
| ⌘ ⇧ N | หน้าต่างใหม่ |
|
||
| ⌘ , | การตั้งค่า |
|
||
| ⌘ ⇧ R | โหลดการตั้งค่าใหม่ |
|
||
| ⌘ Q | ออก |
|
||
|
||
## สัญญาอนุญาต
|
||
|
||
โปรเจกต์นี้อยู่ภายใต้สัญญาอนุญาต GNU Affero General Public License v3.0 หรือใหม่กว่า (`AGPL-3.0-or-later`)
|
||
|
||
ดู `LICENSE` สำหรับข้อความฉบับเต็ม
|