unitmux:一個用于在 tmux 中運(yùn)行 Claude Code 和 Codex 的浮動桌面應(yīng)用 - DEV Community

簡介

如果你正在 tmux 中運(yùn)行 Claude Code 或 Codex,你大概經(jīng)歷過這種情況:

你想一邊在編輯器中閱讀代碼,一邊給出指令,但每次都不得不按 Cmd+Tab 切回終端。

AI 詢問"1. 是 / 2. 否"時,你只是為了輸入 1 就得切換回終端。

同時并行運(yùn)行多個 Claude 或 Codex 會話時,很難追蹤每個面板當(dāng)前處于什么狀態(tài)。

這些細(xì)碎的上下文切換不斷累積,反復(fù)打斷你的思路,壓力大得出乎意料。

為了解決這個問題,我開發(fā)了一款名為 unitmux 的桌面應(yīng)用。

什么是 unitmux?

這是一款桌面應(yīng)用,讓你可以通過一個浮動窗口,直接向運(yùn)行在 tmux 中的 Claude Code 或 Codex 發(fā)送指令。

它始終保持置頂顯示,自動檢測 tmux 面板,徹底消除了切換焦點(diǎn)到終端的需要。你可以在不打斷編輯器工作流的情況下向 AI 發(fā)出指令。

除了 claudecodex 之外,它還能檢測運(yùn)行 ai 包裝命令的面板。

一行命令即可安裝:

brew install --cask yugo-ibuki/tap/unitmux

功能特性

一鍵響應(yīng)選項(xiàng)

當(dāng) Claude Code 或 Codex 呈現(xiàn)編號選項(xiàng)時,unitmux 會自動顯示可點(diǎn)擊的按鈕。

你也可以通過 Ctrl+1-Ctrl+9 鍵盤快捷鍵即時響應(yīng),甚至不需要伸手去夠鼠標(biāo)。

僅僅為了輸入一個字符就要切換到終端,這個小煩惱就此消失。

更新:選項(xiàng)檢測現(xiàn)在支持簡單編號列表之外的多種模式:帶標(biāo)記前綴的選項(xiàng)(?、?>、)、冒號分隔的內(nèi)聯(lián)選項(xiàng)(如 1: staging 2: production 3: dev),以及包含完整命令文本的多行標(biāo)簽(如權(quán)限提示)。

它還能智能過濾"How is Claude doing?"等會話評分反饋和 CLI 頁腳,避免出現(xiàn)誤判。

Codex 支持也得到了改進(jìn)。unitmux 能檢測 Codex 風(fēng)格的字母選項(xiàng),并針對 Codex 提示使用獨(dú)立的啟發(fā)式規(guī)則,涵蓋英語和日語選項(xiàng)上下文。

全局快捷鍵:隨時隨地訪問

Cmd+Shift+H 可從任意應(yīng)用切換焦點(diǎn)回 unitmux。

焦點(diǎn)會直接落在文本區(qū)域,你可以立即開始輸入,按 Cmd+Enter 發(fā)送。

在 Chrome 中閱讀文檔的同時向 AI 發(fā)出指令,現(xiàn)在只需幾秒鐘,幾乎無縫銜接。

更新:焦點(diǎn)快捷鍵現(xiàn)在可以在側(cè)邊欄設(shè)置中完全自定義。從其他應(yīng)用觸發(fā)時還會自動展開緊湊模式,讓你立刻進(jìn)入輸入狀態(tài)。

會話狀態(tài)一目了然

面板以標(biāo)簽頁形式列出,彩色圓點(diǎn)指示當(dāng)前狀態(tài):

  • 綠色:等待輸入

  • 橙色:處理中

  • 灰色:等待響應(yīng) / 有選項(xiàng)待處理

每個面板還會顯示工具的小徽標(biāo):

  • CC:Claude Code

  • CX:Codex

并行運(yùn)行多個 Claude 或 Codex 會話時,你再也不用猜"那個面板進(jìn)行到哪一步了?"

使用 Cmd+↑ / Cmd+↓Ctrl+H / Ctrl+L 在面板間切換。

更新:面板現(xiàn)在按 tmux 會話分組顯示在標(biāo)題欄中,當(dāng)你在不同會話中有大量面板時,導(dǎo)航更加便捷。也可通過 Ctrl+Cmd+H / Ctrl+Cmd+L 進(jìn)行跨會話導(dǎo)航。

狀態(tài)檢測已得到優(yōu)化。對于 Claude Code,unitmux 讀取面板標(biāo)題中的空閑標(biāo)記和旋轉(zhuǎn)字符,并解析最近的面板輸出以識別等待提示和選項(xiàng)。Codex 狀態(tài)檢測使用其專屬的啟發(fā)式規(guī)則,例如 Working、ThinkingExecutingenter to send。

unitmux 還能檢測運(yùn)行 ai 包裝命令的面板,以及 claudecodex。

彈窗中的 Git 操作

Ctrl+G 可打開 Git 操作彈窗。

它只涵蓋簡單操作,但在個人開發(fā)早期階段需要頻繁提交時,能夠流暢地完成這些操作確實(shí)是一大優(yōu)勢。

你可以:

  • 暫存所有更改

  • 用 Space 選擇單個文件

  • 用 Enter 暫存選中的文件

  • 輸入提交信息并按 Enter

  • Ctrl+P 推送

彈窗支持 vim 風(fēng)格的導(dǎo)航,使用 j / k。

在 AI 完成一塊工作后立即提交,無需切回終端,這種體驗(yàn)令人暗暗滿足。

更新:Git 彈窗現(xiàn)在在標(biāo)題欄顯示當(dāng)前分支名稱,并展示詳細(xì)的 Git 狀態(tài):已修改文件、未追蹤文件、已刪除文件等。它還會在每次操作后自動刷新面板詳情,并顯示 2 秒后自動消失的成功/錯誤反饋。

Git Diff 查看器

Ctrl+F 可打開 Git diff 查看器。

這與 Git 操作彈窗是分開的。Git 彈窗用于暫存、提交和推送,diff 查看器則用于快速檢查變更內(nèi)容。

它支持:

  • 未暫存 / 已暫存 diff 切換

  • 文件側(cè)邊欄

  • 目錄折疊

  • 可折疊的文件區(qū)塊

  • Hunk 導(dǎo)航

  • Vim 風(fēng)格滾動

常用快捷鍵:

  • j / k:滾動

  • d / u:半頁滾動

  • g / G:跳到頂部 / 底部

  • ]c / [c:下一個 / 上一個 hunk

  • s:切換已暫存 / 未暫存

  • q:關(guān)閉

這讓你無需切回終端運(yùn)行 git diff 就能輕松審查 AI 生成的變更。

半透明窗口疊加在編輯器上

你可以通過滑塊將窗口不透明度調(diào)整為 50% 到 100%。

結(jié)合"始終置頂"功能,你可以透過窗口看到編輯器中的代碼,同時向 AI 發(fā)出指令。

你可以在閱讀代碼的同時關(guān)注 Claude 或 Codex 的活動狀態(tài)。

配合 Cmd+Shift+H,你可以將焦點(diǎn)切換到應(yīng)用,編寫提示或選擇選項(xiàng),全程無需動鼠標(biāo)。

查看當(dāng)前會話內(nèi)容

Ctrl+P 讓你無需查看終端就能檢查會話對話內(nèi)容。

當(dāng)你只想看看之前問了什么問題,或者瞥一眼最后的回答時,這個功能讓你快速查看后即可投入下一個提示。

Agent 運(yùn)行時會產(chǎn)生大量日志輸出,但你真正想看的通常只是最終結(jié)論。能夠快速查看你關(guān)心的部分,然后立刻進(jìn)入下一個提示,這才是真正的價(jià)值所在。

更新:預(yù)覽疊加層現(xiàn)在有兩種模式。

第一次按 Ctrl+P 顯示靜態(tài)快照。在疊加層打開時再次按 Ctrl+P 可切換到實(shí)時流式模式,該模式每 500ms 輪詢一次面板內(nèi)容,并顯示 LIVE 徽標(biāo)。

預(yù)覽內(nèi)部支持 Vim 風(fēng)格導(dǎo)航:

  • j / k:逐行滾動

  • d / u:半頁滾動

  • g / G:跳到頂部 / 底部

在可用時,unitmux 還會以 ~/.claude 下的 Claude JSONL 對話歷史補(bǔ)充 tmux 面板輸出,使更早的對話上下文更易于查閱。

圖片附件

可通過 + 按鈕附加圖片,或?qū)D片拖放到窗口上。

縮略圖會在 unitmux 中顯示,圖片路徑通過括號粘貼的方式發(fā)送給 AI CLI,以便 CLI 將其識別為圖片輸入。

這在你想就截圖、UI 狀態(tài)、圖表或本地圖片文件進(jìn)行提問,而不想手動在終端中輸入路徑時非常實(shí)用。

緊湊模式

Ctrl+W 可將窗口收縮為約 70px 高度的最小化狀態(tài)欄。

當(dāng)你希望 unitmux 保持可見但又不占用太多屏幕空間時,這個功能非常有用。

展開時會恢復(fù)之前的窗口大小和位置。快捷鍵可自定義。

會話詳情疊加層

Ctrl+D 顯示所選面板的詳細(xì)信息:

  • 模型名稱

  • 會話 ID

  • Git 分支

  • Git 狀態(tài)

  • 工作目錄

  • 面板尺寸

  • 啟動命令

  • PID / tty

還包含一個帶確認(rèn)對話框的關(guān)閉按鈕,用于終止面板。

創(chuàng)建新會話

unitmux 可以從 UI 創(chuàng)建新的 Claude 或 Codex 會話。

有兩種工作流:

  • Ctrl+N:快速向當(dāng)前 tmux 會話添加一個 Claude 會話

  • Ctrl+Shift+N:打開對話框以創(chuàng)建新的 tmux 會話,或向現(xiàn)有會話添加 Claude/Codex 窗口

在對話框中,你可以選擇目標(biāo) tmux 會話,并在 claudecodex 之間進(jìn)行選擇。

Shell 模式

Ctrl+B 可切換 Shell 模式。

在 Shell 模式下,unitmux 將輸入發(fā)送到專用的 unitmux-shell tmux 窗口,而非所選的 AI 面板。

Shell 面板按需創(chuàng)建,使用你的默認(rèn) Shell。如果它被手動關(guān)閉,unitmux 會在下次發(fā)送或預(yù)覽時重新創(chuàng)建它。

預(yù)覽和實(shí)時流式功能同樣適用于 Shell 輸出。

當(dāng)你想在 AI 會話附近運(yùn)行快速命令而無需切回終端時,這個功能十分順手。

側(cè)邊欄設(shè)置面板

可從標(biāo)題欄訪問專用設(shè)置面板,提供以下選項(xiàng):

  • 始終置頂開關(guān)

  • 不透明度滑塊

  • 主題切換:深色 / 淺色

  • 發(fā)送鍵配置:EnterCmd+Enter

  • Vim 模式開關(guān)

  • 字體大小控制

  • 緊湊、預(yù)覽、詳情、Git、diff 和焦點(diǎn)的可自定義快捷鍵

  • 選項(xiàng)修飾符:CtrlCmd

  • Slash 命令管理器

Slash 命令與 Skills 集成

在輸入?yún)^(qū)域輸入 / 可篩選并從已注冊的命令中進(jìn)行選擇。

用戶自定義的斜杠命令可在側(cè)邊欄中進(jìn)行管理。你可以創(chuàng)建、編輯和刪除可復(fù)用的命令,例如 /fix、/review/test。

此外,unitmux 還會自動發(fā)現(xiàn)以下來源中的 skill 命令:

  • ~/.claude/skills/

  • 所選項(xiàng)目中的 .claude/skills/

它會解析 SKILL.md 文件以獲取名稱和描述,并將其作為只讀的斜杠命令候選項(xiàng)展示。

輸入歷史

最近 10 條不重復(fù)的輸入記錄會被保存。

在文本輸入框中使用 / 進(jìn)行導(dǎo)航。

向上導(dǎo)航時,當(dāng)前草稿內(nèi)容會被保留,返回時自動恢復(fù)。

Vim 模式

啟用后,unitmux 會在你的文本前發(fā)送 Escape 然后是 i,以進(jìn)入插入模式。

這在你使用 Claude CLI 的 vim 編輯器模式時不小心將面板留在普通模式下時非常有用。

在響應(yīng)選擇項(xiàng)時會跳過此操作,因?yàn)閱蝹€數(shù)字選項(xiàng)可以直接使用。

幫助覆蓋層

Ctrl+, 可打開一個快速參考面板,按類別整理了所有鍵盤快捷鍵。

它支持與其他覆蓋層相同的 vim 風(fēng)格滾動操作。

安裝與首次啟動

brew install --cask yugo-ibuki/tap/unitmux

如果你希望通過 DMG 安裝,請從 Releases 頁面下載。

如果首次啟動時出現(xiàn) Gatekeeper 警告,請前往:

系統(tǒng)設(shè)置 → 隱私與安全性 → 仍要打開

結(jié)語

我為那些在 tmux 中使用 AI 編程助手、并希望簡化"終端窗口太多"這一困境的人構(gòu)建了這款工具。

核心設(shè)計(jì)理念是"簡單,再簡單"。

無需多余的鼠標(biāo)操作。所有功能均圍繞類 Vim 快捷鍵設(shè)計(jì),使用起來自然流暢。

unitmux 并不試圖取代 tmux 或成為一個完整的終端管理器,而是專注于讓提示詞輸入和 Agent 監(jiān)控盡可能省力。

tmux 依然是底層基礎(chǔ),unitmux 只是剝離了圍繞它的上下文切換。

歡迎反饋與 PR。

?? https://github.com/yugo-ibuki/unitmux

點(diǎn)個 star 會給我很大的動力!

注意事項(xiàng)

Mac 是主要支持的平臺。

Linux 構(gòu)建版本存在,但 Linux 支持尚未經(jīng)過充分驗(yàn)證,請知悉。

此外,由于我主要使用 Claude Code,Codex 的支持可能仍存在不足之處。

如需進(jìn)一步操作,你可以考慮屏蔽該用戶和/或舉報(bào)濫用行為

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容