Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>TermDeckNew to Visual Studio Code? Get it now.
TermDeck

TermDeck

casper

|
37 installs
| (0) | Free
Manage multiple terminals (Claude / Codex sessions) across projects in a single VS Code window.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

TermDeck

在同一個 VSCode 視窗裡跨專案管理多個終端機(Claude / Codex 等 session)——一個專案 × 多個終端機的控制台。

TermDeck 畫面:左側「專案」面板以單行卡片管理各專案的 terminal 群組(最左為 terminal 數徽章),「檔案」面板以專案色點標示檔案,底部狀態列顯示當前 terminal 所屬的專案

Activity Bar 最左側新增一個容器,內含兩個面板:

  • Projects(webview):每個專案是一張單行卡片——最左是 terminal 數徽章、接著專案名稱,hover 顯示 +(開 terminal) 與 ⋯(更多:設色 / 改名 / 移除);卡片有左側色條 + 淡底色,當前專案高亮。底下是該專案的 terminal 群組。
  • Files(原生樹):顯示當前專案的檔案樹,保留 VSCode 原生檔案圖示;點檔開檔,任何資料夾可「在此開 terminal」。把資料夾拖到這裡即可加入為新專案。

切換專案只是聚焦,不會 reload 視窗,所以所有 terminal 全程不中斷。

最新更新

terminal 閒置偵測:claude 這個 terminal 已停止輸出,圓點變空心,旁邊顯示「閒置 1 分 · 測試回應」

  • terminal 活動 / 閒置偵測:一眼看出哪個 terminal 還在跑、哪個已經停下來等你。
    • 工作中:圓點脈動,~ 旁邊輪播狀態文字。Claude Code 會交替顯示 spinner 動詞(如 Warping…)與它自動產生的任務標題;一般指令(如 npm run dev)顯示最後一行輸出。
    • 閒置:安靜 3 秒即轉為閒置,圓點變空心、文字顯示「閒置 1 分 · 任務名稱」(如上圖)。Claude Code 回答完會立即轉為閒置(讀取它在終端機標題放的 ✳ 標記)。
    • 專案的數量徽章只在有 terminal 正在輸出時脈動,徽章靜止 = 該專案的工作都停了。
  • 拖曳排序專案:按住專案卡片的標題列上下拖曳即可調整順序,落點以藍線標示,順序會保存。
  • 拖曳資料夾加入專案(修正):把資料夾從 Finder 或檔案總管拖到 Files 面板即可加入;還沒選專案時 Files 面板也會顯示「把資料夾拖到這裡」提示列,第一次使用就能直接拖。Projects 面板受 VSCode 限制,需按住 Shift 再放開,會依資料夾名稱與內容自動找出它的位置。
  • autoStartClaude 自動啟動的 claude 也能被偵測:改為等 shell integration 就緒後才執行指令。

功能

  • 專案 = 色塊卡片:跨視窗持久化(存在 globalState),背景色塊 + 分隔線快速辨識;每個專案一個顏色。
  • terminal 群組:每個專案的 terminal 集中在卡片內,一鍵開啟 / 聚焦 / 關閉。
    • 顯示執行中的指令:跑 claude / codex 等時,卡片內該 terminal 標籤顯示指令名稱;結束後還原。需 VSCode shell integration 啟用(bash/zsh/pwsh/fish 預設開)。
    • 活動 / 閒置偵測:讀取指令的輸出串流判斷它還有沒有在動——有輸出時圓點脈動、旁邊輪播狀態文字(Claude Code 會交替顯示 spinner 動詞與任務標題,一般指令顯示最後一行輸出);安靜 3 秒即視為閒置,圓點變空心並顯示「閒置 5 分 · 任務名稱」,一眼看出哪個工作已經停下來等你。專案的數量徽章只在有 terminal 正在輸出時脈動。Claude Code 另外以終端機標題的 ✳ 判斷閒置,更即時。
    • 分頁色帶:原生終端機分頁名稱前帶該專案的 emoji 色圓點(如 🔵 my-app: src)+ 圖示染色,標示所屬群組。
  • 拖曳排序:按住專案卡片的標題列上下拖曳即可調整專案順序(落點以藍線標示),順序會持久保存。
  • 拖曳加入專案:把資料夾拖到 Files 面板即可新增為專案(Finder 與檔案總管都支援,隨時可拖)。也可拖到 Projects 面板,但需按住 Shift 再放開(VSCode 限制),放開後依資料夾名稱與內容找出它的位置,找到多個時讓你選、找不到則開資料夾選擇視窗。
  • 檔案瀏覽:Files 面板是當前專案的檔案樹,點檔開檔;任何資料夾 hover 可「在此開 terminal」(cwd 設在該子目錄)。
  • 切換即聚焦:點專案卡片會帶出最近一個 terminal、Files 面板也切到該專案(不會搶焦點跳到檔案總管)。預設不改動 workspace(避免空視窗首次開啟時 reload 導致 terminal 被重置);需要原生 Explorer / Git 時可用 projectSwitch.addToWorkspace 開啟,把專案掛進 multi-root workspace。
  • 啟用的 terminal 強調:目前聚焦的 terminal 在卡片內會高亮(左側色條 + 不透明),其餘淡化,方便辨識。
  • 介面:卡片動作用 codicon SVG 圖示(非 emoji);關閉鈕固定靠右。
  • 自選顏色:設定專案顏色(卡片動作按鈕或指令),六色調色盤 🔴🟠🟡🟢🔵🟣,或改回「自動」依名稱配色。
  • 檔案以色圓點標示(不染文字):每個專案底下的檔案會在右側顯示該專案的 emoji 色圓點(Files 樹、原生 Explorer、編輯器分頁都會),一眼分辨檔案屬於哪個專案,但不改變檔名文字顏色。
    • 編輯器分頁要看到圓點,需開啟設定 workbench.editor.decorations.badges: true(預設開啟)。
  • 與原生終端機列表連動:在原生終端機分頁點到某個 terminal,Project 面板會自動高亮它所屬的專案(VSCode 無法把原生分頁分組成資料夾,故以命名 + 顏色 + 連動整合)。
  • 狀態列指示器:底部狀態列顯示當前 terminal 所屬專案的彩色晶片「🔵 專案名 · claude」,跟著聚焦的 terminal 即時切換(終端機內容區由 xterm 渲染、無法加色帶,故以狀態列指示)。
  • 多語系:介面支援英文與繁體中文,依 VSCode 顯示語言自動切換。
  • 可設定行為:
    • projectSwitch.onProjectClick — focusOrStartSession(預設)/ focusOnly / alwaysNewSession
    • projectSwitch.addToWorkspace — 開專案時是否把資料夾加進 workspace(預設 false:保持乾淨、不 reload;開啟可取得原生 Explorer / Git / 全域搜尋)
    • projectSwitch.autoStartClaude — 開 terminal 時是否自動執行 Claude(預設 false,只開乾淨 terminal)
    • projectSwitch.claudeCommand — 自動執行時的指令(預設 claude,可改 claude --resume 等)

開發 / 試用

npm install
npm run watch     # esbuild 監看;或 npm run build 做一次性建置

在 VSCode 開啟本資料夾後按 F5 啟動 Extension Development Host,左側即會出現 Projects 面板。

型別檢查:npm run compile。打包:npm run package(產生 .vsix,可用 code --install-extension *.vsix 安裝)。

架構說明

Projects 面板用 webview 自繪(背景色塊、分隔線、terminal 群組是原生 TreeView 做不到的);Files 面板維持原生 TreeView(保留檔案圖示主題與專案染色),並掛了拖放控制器接受資料夾 drop 來新增專案。兩者透過 message / 共用 actions 串接。介面字串以 VSCode l10n(執行期)與 package.nls(貢獻點)做英/繁雙語。

已知限制:

  • VSCode 不允許改「已開啟」terminal 的原生分頁顏色,故換色時面板即時更新、但已開的原生分頁維持原色(新開的才用新色)。
  • VSCode 在拖曳進行中會封鎖側欄 webview 接收拖放事件(按住 Shift 才放行),且新版 webview 取不到拖入資料夾的路徑;因此 Projects 面板需按住 Shift,並以名稱 + 內容比對找出資料夾。原生 Files 面板不受影響,是建議的拖放位置。
  • 活動 / 閒置偵測依賴 shell integration:terminal 剛開、整合尚未就緒的前幾秒內手動輸入的指令抓不到;「閒置」的定義是 3 秒沒有輸出,長時間不印東西的 build 步驟也會暫時顯示閒置。

未納入(future):claude --resume 自動還原、以 Claude Code hooks 精確區分「完成」與「等待授權」。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft