跳到正文
DEV Community· Fred 🍓·· 3 小時前AI 評分54

VibeDesk 2.0 發佈六項功能,並修正 1.9 中 GPU 程序 CPU 用量達單核心 131 % 的問題

VibeDesk 2.0 is out – every feature request shipped, and why 1.9 burned 131 % of a CPU core

AI 導讀

VibeDesk 發佈 2.0,交付六項功能請求,並修正 1.9 中 GPU 程序的 CPU 用量曾達單核心 131 % 的效能問題。六項功能包括工作階段摘要及一鍵提交、從 Git 視窗建立 PR、系統匣狀態與審批、項目預算、等待時間顯示和工作階段交接;另加入互動桌布、Gemini CLI 和 Codex beta、播放資料夾中的自選音樂、項目範本及第二屏幕 beta。

正文

VibeDesk is a free, open-source Windows desktop for Claude Code: several sessions side by side, a coloured dot that tells you which one is waiting for you, permission prompts as one-click cards (on your PC or your phone) and a project "brain" Claude reads and writes over MCP. It runs your own Claude Code CLI – nothing is proxied.

Today 2.0 is out. Two things I want to share: what's in it, and a performance bug that is worth knowing about if you build anything with Electron, backdrop-filter or a WebGL background.

Every open wish is in

Since 1.9 I've only collected feature requests as GitHub issues and shipped them in one bigger release instead of a stream of small ones. All six open requests made it:

  • Session wrap-up – when Claude changed files in a turn, you get Claude's summary, every changed file with line counts and a suggested commit message. One click commits.
  • Pull requests from the Git window – Claude drafts title and description from your commits; VibeDesk creates the branch, pushes and opens the PR through the GitHub CLI.
  • Tray status – a dot in the notification area shows the most urgent session, and approvals can be answered from the tray menu.
  • Budget per project – cost or tokens per day or week, with a quiet heads-up at 75 % and 100 %. Claude is never stopped.
  • "waiting · 3 min" – how long a session has been waiting, on the session, in the tray and on your phone. (This one came from a comment on my last post here – thank you.)
  • Hand-off between sessions – when one session sends another a task, a short summary and the changed files come along. (Also from the comments here.)

Plus: living scenes (Claude writes an interactive wallpaper for you), Gemini CLI and Codex as a beta, your own music from a folder, project templates and a second-screen beta.

The bug: 131 % of a core for a terminal spinner

A user (me, honestly) said: "After running VibeDesk for a while it gets really slow." My first guess was a memory leak. I was wrong.

I measured the installed 1.9 with one Claude Code session working in the terminal. Windows said the GPU process used 131 % of a CPU core and the renderer 30 %. Nothing was leaking: main process ~110 MB, renderer heap ~20 MB, flat. The laptop simply got hot and throttled after a while – that was the "slow after a while".

To find the cause I started a second, isolated instance with Playwright's _electron, a copy of the real settings and its own user-data folder. Then I started a real Claude Code session in it and measured CPU per process with the Windows counters while Claude streamed a long answer. Three things added up:

1. A smooth infinite CSS animation forces 60 fps compositing. The "Claude is working" glow on the terminal was animation: claude-glow 2.8s ease-in-out infinite. It doesn't matter how small or cheap the animated property looks – every frame is a new compositor frame, and every frame re-ran the large backdrop-filter: blur() of the glass windows. With steps(5) the glow changes about twice a second, and the compositor rests in between. (Already fixed in a 2.0 build; it was most of the 131 %.)

2. The WebGL rain kept rendering at 0 % rain. The background shader was throttled to 15–30 fps, but nobody told it that at intensity 0 the image doesn't depend on time. Now rain === 0 means "draw one still frame and stop the loop".

3. backdrop-filter is re-computed whenever anything inside the glass element changes. A terminal that receives ~10 writes per second means ~10 re-blurs per second of a window-sized area at device pixel ratio 2. In energy-saver mode the windows now use a nearly opaque background instead of live blur.

Measured the same way, with a real Claude session working:

GPU process Renderer
1.9 131 % 30 %
2.0 (glow fix) ~26 % ~14 %
+ still frame at 0 % rain ~20 % ~12 %
+ no live blur in energy saver ~11 % ~11 %

Two measuring traps that cost me time:

  • app.getAppMetrics()[i].cpu.percentCPUUsage in Electron is divided by the number of logical cores. On my 8-core laptop "16 %" meant 128 % of one core. Diffing Get-Process CPU seconds was the honest number.
  • Chromium stops requestAnimationFrame for occluded windows. If your test window is behind another one, everything looks free. I had to call setAlwaysOnTop(true), maximize() and focus() on the test window.

Try it

Windows 10/11, your own Claude Code plan or API key. The installer isn't signed yet, so SmartScreen will ask – "More info → Run anyway".

Not affiliated with Anthropic.

來源:DEV Community · dev.to