ការបកប្រែនេះត្រូវបានបង្កើតដោយ Claude។ ប្រសិនបើអ្នកមានការកែលម្អ សូមបង្កើត PR។
Terminal សម្រាប់ macOS ផ្អែកលើ Ghostty ដែលមាន tab បញ្ឈរ និងការជូនដំណឹងសម្រាប់ AI coding agents
English | 日本語 | Tiếng Việt | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | ភាសាខ្មែរ | Українська
▶ វីដេអូបង្ហាញពីដំណើរការ (Demo) · ទស្សនវិជ្ជារបស់ cmux (The Zen of cmux)
| ផ្ទាំង (Panes) នឹងមានរង្វង់ពណ៌ខៀវ ហើយ tabs នឹងភ្លឺឡើង នៅពេល coding agents ត្រូវការការយកចិត្តទុកដាក់របស់អ្នក |
|
| មើលការជូនដំណឹងដែលកំពុងរង់ចាំទាំងអស់នៅកន្លែងតែមួយ លោតទៅកាន់សារមិនទាន់អានថ្មីបំផុត |
|
| បំបែកកម្មវិធីរុករកនៅក្បែរ terminal របស់អ្នកជាមួយ scriptable API ដែលបានយកចេញពី agent-browser |
|
| របារចំហៀងបង្ហាញ git branch, ស្ថានភាព/លេខ PR, ថតការងារ, port ដែលកំពុងស្តាប់ និងអត្ថបទជូនដំណឹងចុងក្រោយ។ បំបែកទាំងផ្ដេក និងបញ្ឈរ។ |
|
cmux ssh user@remote បង្កើត workspace សម្រាប់ម៉ាស៊ីនពីចម្ងាយ។ ផ្ទាំងកម្មវិធីរុករកត្រូវបានដឹកនាំតាមបណ្តាញពីចម្ងាយ ដូច្នេះ localhost ដំណើរការបានភ្លាមៗ។ អូសរូបភាពចូលក្នុង session ពីចម្ងាយដើម្បីផ្ទុកឡើងតាមរយៈ scp។
|
|
cmux claude-teams ដំណើរការមុខងារ teammate mode របស់ Claude Code ដោយគ្រាន់តែប្រើពាក្យបញ្ជាតែមួយ។ សមាជិកក្រុមនឹងបង្ហាញជា split ដើមកំណើតដែលមាន metadata នៅលើរបារចំហៀង និងការជូនដំណឹង។ មិនត្រូវការ tmux ទេ។
|
|
- ការនាំចូលកម្មវិធីរុករក (Browser import) — នាំចូល cookies, ប្រវត្តិ និង sessions ពី Chrome, Firefox, Arc និងកម្មវិធីរុករកជាង 20 ផ្សេងទៀត ដើម្បីឱ្យផ្ទាំងកម្មវិធីរុករកចាប់ផ្ដើមដោយមានការផ្ទៀងផ្ទាត់រួចរាល់
- ពាក្យបញ្ជាផ្ទាល់ខ្លួន (Custom commands) — កំណត់សកម្មភាពជាក់លាក់សម្រាប់គម្រោងនៅក្នុង
cmux.jsonដែលអាចដំណើរការពី command palette - អាចសរសេរ Script បាន (Scriptable) — CLI និង socket API ដើម្បីបង្កើត workspaces, បំបែក panes, បញ្ជូន keystrokes, និងធ្វើស្វ័យប្រវត្តិកម្មកម្មវិធីរុករក (browser)
- កម្មវិធីដើមរបស់ macOS (Native macOS app) — បង្កើតឡើងដោយប្រើ Swift និង AppKit មិនមែន Electron ទេ។ ចាប់ផ្តើមលឿន, ស៊ីមេម៉ូរី (memory) តិច។
- ត្រូវគ្នាជាមួយ Ghostty (Ghostty compatible) — អានការកំណត់
~/.config/ghostty/configដែលអ្នកមានស្រាប់សម្រាប់ theme, font, និងពណ៌ - បង្កើនល្បឿនដោយ GPU (GPU-accelerated) — ដំណើរការដោយ libghostty ដើម្បីការបង្ហាញរូបភាពរលូនល្អ (smooth rendering)
បើកឯកសារ .dmg ហើយអូស cmux បញ្ចូលទៅក្នុងថត Applications របស់អ្នក។ cmux ធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិតាមរយៈ Sparkle ដូច្នេះអ្នកគ្រាន់តែទាញយកវាតែម្តងគត់។
brew tap manaflow-ai/cmux
brew install --cask cmuxដើម្បីធ្វើបច្ចុប្បន្នភាពនៅពេលក្រោយ៖
brew upgrade --cask cmuxនៅពេលបើកដំណើរការជាលើកដំបូង macOS អាចនឹងសុំឱ្យអ្នកបញ្ជាក់ការបើកកម្មវិធីពីអ្នកអភិវឌ្ឍន៍ដែលបានកំណត់អត្តសញ្ញាណ។ ចុច Open ដើម្បីបន្ត។
ខ្ញុំបើកដំណើរការ Claude Code និង Codex ច្រើនក្នុងពេលតែមួយ។ ខ្ញុំធ្លាប់ប្រើ Ghostty ជាមួយ split panes ជាច្រើន ហើយពឹងផ្អែកលើការជូនដំណឹងដើមរបស់ macOS ដើម្បីដឹងថានៅពេលណាដែល agent ត្រូវការខ្ញុំ។ ប៉ុន្តែខ្លឹមសារជូនដំណឹងរបស់ Claude Code តែងតែសរសេរត្រឹម "Claude វាកំពុងរង់ចាំការបញ្ចូលព័ត៌មានពីអ្នក" ដោយគ្មានបរិបទ (context) ហើយនៅពេលដែលបើក tab ច្រើនពេក ខ្ញុំសឹងតែមិនអាចអានចំណងជើងបានទៀតផង។
ខ្ញុំបានសាកល្បងប្រើ coding orchestrators មួយចំនួន ប៉ុន្តែភាគច្រើននៃពួកវាគឺជាកម្មវិធី Electron/Tauri ហើយដំណើរការ (performance) របស់វារំខានដល់ខ្ញុំ។ ម្យ៉ាងទៀត ខ្ញុំចូលចិត្តប្រើ terminal ជាង ពីព្រោះ GUI orchestrators តែងតែកំណត់លំហូរការងារ (workflow) របស់អ្នក។ ដូច្នេះ ខ្ញុំបានបង្កើត cmux ជាកម្មវិធីដើមសម្រាប់ macOS នៅក្នុង Swift/AppKit។ វាប្រើប្រាស់ libghostty សម្រាប់ការបង្ហាញ terminal និងអាន config របស់ Ghostty ដែលអ្នកមានស្រាប់សម្រាប់ themes, fonts និងពណ៌។
ការបន្ថែមដ៏សំខាន់គឺរបារចំហៀង (sidebar) និងប្រព័ន្ធជូនដំណឹង។ របារចំហៀងមាន tab បញ្ឈរដែលបង្ហាញពី git branch, ស្ថានភាព/លេខ PR, ថតការងារ, port ដែលកំពុងស្តាប់ និងអត្ថបទជូនដំណឹងចុងក្រោយសម្រាប់ workspace នីមួយៗ។ ប្រព័ន្ធជូនដំណឹងចាប់យក terminal sequences (OSC 9/99/777) និងមាន CLI (cmux notify) ដែលអ្នកអាចភ្ជាប់ទៅកាន់ agent hooks សម្រាប់ Claude Code, OpenCode ជាដើម។ នៅពេល agent កំពុងរង់ចាំ ផ្ទាំង (pane) របស់វានឹងមានរង្វង់ពណ៌ខៀវ ហើយ tab នឹងភ្លឺឡើងនៅលើរបារចំហៀង ដូច្នេះខ្ញុំអាចដឹងថាមួយណាដែលត្រូវការខ្ញុំនៅទូទាំង splits និង tabs ទាំងអស់។ ចុច Cmd+Shift+U ដើម្បីលោតទៅកាន់សារមិនទាន់អានថ្មីបំផុត។
កម្មវិធីរុករកក្នុងកម្មវិធី (in-app browser) មាន scriptable API ដែលបានយកចេញពី agent-browser។ Agents អាចថតចម្លង (snapshot) ដើមឈើភាពងាយស្រួល (accessibility tree), យក element refs, ចុច (click), បំពេញទម្រង់បែបបទ (fill forms) និងវាយតម្លៃ (evaluate) JS។ អ្នកអាចបំបែកផ្ទាំងកម្មវិធីរុករកនៅក្បែរ terminal របស់អ្នក ហើយឱ្យ Claude Code ប្រាស្រ័យទាក់ទងដោយផ្ទាល់ជាមួយ dev server របស់អ្នក។
អ្វីៗទាំងអស់អាចសរសេរ script បានតាមរយៈ CLI និង socket API — បង្កើត workspaces/tabs, បំបែក panes, បញ្ជូន keystrokes, បើក URLs នៅក្នុងកម្មវិធីរុករក។
cmux មិនបង្ខំអំពីរបៀបដែលអ្នកអភិវឌ្ឍន៍ប្រើប្រាស់ឧបករណ៍របស់ពួកគេទេ។ វាគឺជា terminal និងកម្មវិធីរុករកដែលមាន CLI ហើយអ្វីៗផ្សេងទៀតគឺអាស្រ័យលើអ្នក។
cmux គឺជាមូលដ្ឋានគ្រឹះ (primitive) មិនមែនជាដំណោះស្រាយពេញលេញទេ។ វាផ្តល់ឱ្យអ្នកនូវ terminal, កម្មវិធីរុករក, ការជូនដំណឹង, workspaces, splits, tabs និង CLI ដើម្បីគ្រប់គ្រងអ្វីៗទាំងអស់នេះ។ cmux មិនបង្ខំអ្នកឱ្យប្រើវិធីសាស្ត្រណាមួយដែលវាបានកំណត់ទុកមុនក្នុងការប្រើប្រាស់ coding agents នោះទេ។ អ្វីដែលអ្នកបង្កើតជាមួយមូលដ្ឋានគ្រឹះទាំងនេះ គឺជារបស់អ្នក។
អ្នកអភិវឌ្ឍន៍ដ៏ល្អបំផុតតែងតែបង្កើតឧបករណ៍ដោយខ្លួនឯង។ មិនទាន់មាននរណាម្នាក់រកឃើញវិធីល្អបំផុតក្នុងការធ្វើការជាមួយ agents នៅឡើយទេ ហើយក្រុមដែលបង្កើតផលិតផលបិទជិត (closed products) ក៏ច្បាស់ជាមិនទាន់រកឃើញដូចគ្នា។ អ្នកអភិវឌ្ឍន៍ដែលយល់ច្បាស់ពី codebases របស់ពួកគេ នឹងរកឃើញវាមុនគេ។
ផ្តល់ឱ្យអ្នកអភិវឌ្ឍន៍មួយលាននាក់នូវមូលដ្ឋានគ្រឹះដែលអាចផ្សំបញ្ចូលគ្នាបាន នោះពួកគេរួមគ្នានឹងស្វែងរកលំហូរការងារដែលមានប្រសិទ្ធភាពបំផុត លឿនជាងក្រុមការងារផលិតផលណាមួយអាចរចនាពីលើចុះក្រោម (top-down) ទៅទៀត។
សម្រាប់ព័ត៌មានបន្ថែមអំពីរបៀបកំណត់រចនាសម្ព័ន្ធ cmux, សូមចូលទៅកាន់ឯកសាររបស់យើង។
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ N | បង្កើត workspace ថ្មី |
| ⌘ 1–8 | លោតទៅ workspace ទី 1–8 |
| ⌘ 9 | លោតទៅ workspace ចុងក្រោយ |
| ⌃ ⌘ ] | workspace បន្ទាប់ |
| ⌃ ⌘ [ | workspace មុន |
| ⌘ ⇧ W | បិទ workspace |
| ⌘ ⇧ R | ប្តូរឈ្មោះ workspace |
| ⌘ B | បិទ/បើក របារចំហៀង |
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ T | បង្កើត surface ថ្មី |
| ⌘ ⇧ ] | surface បន្ទាប់ |
| ⌘ ⇧ [ | surface មុន |
| ⌃ Tab | surface បន្ទាប់ |
| ⌃ ⇧ Tab | surface មុន |
| ⌃ 1–8 | លោតទៅ surface ទី 1–8 |
| ⌃ 9 | លោតទៅ surface ចុងក្រោយ |
| ⌘ W | បិទ surface |
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ D | បំបែកទៅស្តាំ |
| ⌘ ⇧ D | បំបែកចុះក្រោម |
| ⌥ ⌘ ← → ↑ ↓ | ផ្ដោតលើ pane តាមទិសដៅ |
| ⌘ ⇧ H | បញ្ចេញពន្លឺលើ panel ដែលកំពុងផ្ដោត |
ផ្លូវកាត់ឧបករណ៍អ្នកអភិវឌ្ឍន៍កម្មវិធីរុករក (Browser developer-tool shortcuts) ប្រើតាមលំនាំដើមរបស់ Safari ហើយអាចប្ដូរតាមបំណងបាននៅក្នុង Settings → Keyboard Shortcuts។
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ ⇧ L | បើកកម្មវិធីរុករកក្នុងលក្ខណៈបំបែក (split) |
| ⌘ L | ផ្ដោតលើរបារអាសយដ្ឋាន |
| ⌘ [ | ថយក្រោយ |
| ⌘ ] | ទៅមុខ |
| ⌘ R | ផ្ទុកទំព័រឡើងវិញ |
| ⌥ ⌘ I | បិទ/បើក ឧបករណ៍អ្នកអភិវឌ្ឍន៍ (លំនាំដើម Safari) |
| ⌥ ⌘ C | បង្ហាញ JavaScript Console (លំនាំដើម Safari) |
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ I | បង្ហាញផ្ទាំងជូនដំណឹង |
| ⌘ ⇧ U | លោតទៅសារមិនទាន់អានថ្មីបំផុត |
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ F | ស្វែងរក |
| ⌘ G / ⌘ ⇧ G | ស្វែងរកបន្ទាប់ / មុន |
| ⌘ ⇧ F | លាក់របារស្វែងរក |
| ⌘ E | ប្រើអត្ថបទដែលបានជ្រើសរើសដើម្បីស្វែងរក |
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ K | សម្អាត scrollback |
| ⌘ C | ចម្លង (ជាមួយនឹងការជ្រើសរើស) |
| ⌘ V | ដាក់បញ្ចូល (Paste) |
| ⌘ + / ⌘ - | បង្កើន / បន្ថយ ទំហំអក្សរ |
| ⌘ 0 | កំណត់ទំហំអក្សរឡើងវិញ |
| ផ្លូវកាត់ (Shortcut) | សកម្មភាព (Action) |
|---|---|
| ⌘ ⇧ N | បង្កើតវីនដូថ្មី |
| ⌘ , | ការកំណត់ (Settings) |
| ⌘ ⇧ , | ផ្ទុកការកំណត់ឡើងវិញ (Reload configuration) |
| ⌘ Q | ចាកចេញ |
cmux NIGHTLY គឺជាកម្មវិធីដាច់ដោយឡែកមួយដែលមាន bundle ID ផ្ទាល់ខ្លួន ដូច្នេះវាអាចដំណើរការទន្ទឹមគ្នាជាមួយនឹងកំណែធម្មតា (stable version)។ វាត្រូវបានបង្កើតឡើងដោយស្វ័យប្រវត្តិពី commit main ចុងក្រោយបង្អស់ និងធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិតាមរយៈ Sparkle feed របស់វាផ្ទាល់។
នៅពេលអ្នកបិទ cmux វានឹងរក្សាទុក session បច្ចុប្បន្ន។ ពេលបើកឡើងវិញ cmux នឹងស្ដារស្ថានភាពដែលកម្មវិធីគ្រប់គ្រង៖
- ប្លង់ Window/workspace/pane
- ថតការងារ (Working directories)
- Terminal scrollback (ប្រឹងប្រែងឱ្យអស់លទ្ធភាព)
- ប្រវត្តិរុករក និង URL របស់កម្មវិធីរុករក
cmux មិន checkpoint ស្ថានភាព live process ណាមួយដោយស្វ័យប្រវត្តិទេ។ tmux, vim, shell និងកម្មវិធី terminal ដែលមិនទាន់គាំទ្រ នឹងបើកឡើងវិញជាទម្រង់ terminal ធម្មតា។
session របស់ agent ដែលគាំទ្រ អាច resume បាននៅពេល hooks បានរក្សាទុក native session ID៖
cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencodeអ្នកប្រើប្រាស់កម្រិតខ្ពស់ និង integration អាចភ្ជាប់ command resume ផ្ទាល់ខ្លួនទៅ terminal surface បច្ចុប្បន្ន។ វាមានប្រយោជន៍សម្រាប់ឧបករណ៍ដែលមានស្ថានភាពរក្សាទុករបស់ខ្លួន ដូចជា tmux session ឬ custom agent CLI៖
cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint workbinding នេះនៅតែភ្ជាប់ទៅ cmux surface។ binding ដែលបង្កើតដោយ public CLI ឬ socket ត្រូវបានរក្សាទុកសម្រាប់ពិនិត្យ និង resume ដោយដៃ។ cmux ដំណើរការ resume binding ដោយស្វ័យប្រវត្តិ តែ binding ដែលវាសម្គាល់ថា trusted ប៉ុណ្ណោះ ដូចជា tmux binding ដែលរកឃើញពី live process។ environment key ដែលមានភាពរសើប ដូចជា token, password, secret និង API key នឹងត្រូវបានដកចេញ មុនពេលរក្សាទុក resume binding។
វិធីក្នុងការចូលរួម៖
- តាមដានពួកយើងនៅលើ X សម្រាប់ការធ្វើបច្ចុប្បន្នភាពនានា @manaflowai, @lawrencecchen, និង @austinywang
- ចូលរួមការសន្ទនានៅលើ Discord
- បង្កើត និងចូលរួមក្នុង GitHub issues និង discussions
- ប្រាប់ពួកយើងអំពីអ្វីដែលអ្នកកំពុងបង្កើតជាមួយ cmux
cmux គឺឥតគិតថ្លៃ ជាកូដបើកចំហ (open source) និងតែងតែបែបនេះជារៀងរហូត។ ប្រសិនបើអ្នកចង់គាំទ្រដល់ការអភិវឌ្ឍន៍ និងទទួលបានសិទ្ធិប្រើប្រាស់មុខងារថ្មីៗមុនគេ (early access)៖
ទទួលបានកំណែអ្នកស្ថាបនិក (Get Founder's Edition)
- ការស្នើសុំមុខងារ/ការជួសជុលកំហុសត្រូវបានផ្តល់អាទិភាព
- សិទ្ធិប្រើប្រាស់មុនគេ៖ cmux AI ដែលផ្តល់ឱ្យអ្នកនូវបរិបទ (context) លើរាល់ workspace, tab និង panel
- សិទ្ធិប្រើប្រាស់មុនគេ៖ កម្មវិធី iOS ដែលមាន terminal ធ្វើសមកាលកម្ម (synced) រវាងកុំព្យូទ័រ និងទូរស័ព្ទ
- សិទ្ធិប្រើប្រាស់មុនគេ៖ Cloud VMs
- សិទ្ធិប្រើប្រាស់មុនគេ៖ មុខងារសំឡេង (Voice mode)
- iMessage/WhatsApp ផ្ទាល់ខ្លួនរបស់ខ្ញុំ
cmux គឺជាកម្មវិធីប្រភពបើកចំហក្រោម GPL-3.0-or-later។
ប្រសិនបើស្ថាប័នរបស់អ្នកមិនអាចអនុលោមតាម GPL បាន អាជ្ញាប័ណ្ណពាណិជ្ជកម្មមានផ្តល់ជូន។ ទាក់ទង founders@manaflow.com សម្រាប់ព័ត៌មានលម្អិត។






